<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-music-config-playlist-commands.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-14T06:23:43+00:00</updated>
<entry>
<title>test(music-config): cover playlist commands + random-aware navigation</title>
<updated>2026-05-14T06:23:43+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-14T06:23:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1799d7c09c02755d16815c5a0768aa7bc19a6716'/>
<id>urn:sha1:1799d7c09c02755d16815c5a0768aa7bc19a6716</id>
<content type='text'>
Second pass on music-config. The first batch covered assertion guards, the M3U picker, EMMS lazy setup, and the smaller commands. This batch covers the remaining interactive playlist commands and the random-history navigation pair:

- `cj/music-playlist-load`: loads the selected file via `emms-play-playlist`, errors when the chosen file isn't on disk.
- `cj/music-playlist-reload`: replays the buffer-local playlist file, errors when none is associated.
- `cj/music-playlist-edit`: opens the M3U file in another window when the buffer is clean.
- `cj/music-next`: delegates to `emms-next` or `emms-random` based on `emms-random-playlist`.
- `cj/music-previous`: emms-previous when not random; with random + history pops the top, finds it in the playlist, selects + starts; with random + no history messages; with random and a missing track, messages.
- `cj/music--consume-track`: no-op when consume-mode is off, kills the selected track when on.

EMMS primitives (`emms-playlist-clear`, `emms-play-playlist`, `emms-stop`, `emms-random`, `emms-next`, `emms-previous`, `emms-start`, `emms-playlist-select`, `emms-playlist-mode-kill-track`) are stubbed throughout.
</content>
</entry>
</feed>
