<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pearl/tests/test-pearl-default-view.el, branch main</title>
<subtitle>Pearl Edits and Reflects Linear — manage Linear.app issues as org-mode in Emacs
</subtitle>
<id>https://git.cjennings.net/pearl/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/pearl/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/pearl/'/>
<updated>2026-06-02T17:59:54+00:00</updated>
<entry>
<title>feat(views): set-default-view command</title>
<updated>2026-06-02T17:59:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-02T17:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/pearl/commit/?id=1a34cb26cbaec7af31a0d93a8f1c563eb5e45be5'/>
<id>urn:sha1:1a34cb26cbaec7af31a0d93a8f1c563eb5e45be5</id>
<content type='text'>
Phase 2 of the default-view spec: the command that sets the default that phase 1 reads. It's the v D slot the keybinding work reserved (the binding itself lands in phase 3).

From a buffer that's showing a local view, pearl-set-default-view offers that view as the default. Otherwise it prompts over the local-view names with a my-open-issues sentinel on top that clears the default. Quitting leaves it unchanged.

pearl--persist-default-view writes through customize-save-variable so the choice survives a restart. In accounts mode it updates the active account's :default-view and preserves the account's other plist keys, the same metadata-preserving rewrite local-view edits use. In legacy mode it writes the global pearl-default-view.

Eight tests: persist scope-targeting and key preservation in both modes, plus the offer, prompt, clear, and cancel paths. Suite 801 to 809, compile and lint clean.
</content>
</entry>
<entry>
<title>feat(views): default-view resolver and open command</title>
<updated>2026-06-02T17:56:09+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-02T17:56:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/pearl/commit/?id=42f3a75651ed8d2f8e601c654e482dc85363bb83'/>
<id>urn:sha1:42f3a75651ed8d2f8e601c654e482dc85363bb83</id>
<content type='text'>
Phase 1 of the default-view spec. I added the data and dispatch; keymap and the setter come in later phases.

pearl-default-view (defcustom) holds the legacy-mode default: nil for my open issues, or a local-view name. In accounts mode the per-account :default-view key wins instead, so pearl--resolve-account now carries :default-view in its context plist and pearl--resolve-default-view reads from the active account, falling back to the global only in legacy mode.

pearl-open-default-view dispatches the resolved default: nil runs pearl-list-issues, a known local-view name runs pearl-run-local-view, and a name that's since been deleted falls back to pearl-list-issues with a message instead of erroring. pearl-list-issues keeps its contract — it's still literal my-open-issues, the keymap rebind is phase 3.

Nine tests cover the resolver in both modes and the three dispatch paths. Suite 792 to 801, compile and lint clean.
</content>
</entry>
</feed>
