From 0975e7de0c7bfdc6f65bb64537d4eff1aeb09a7e Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 28 May 2026 09:36:06 -0500 Subject: feat(view-sync): pearl-publish-current-source convenience wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is Phase 5 of docs/saved-query-sync-spec.org (ยง New: pearl-publish-current-source). When I'm reading a local saved query rendered in pearl and decide it should be a Linear view, I now have a one-chord publish instead of the M-x round-trip through pearl-sync-saved-query-to-linear with the name lookup. The new command reads the active buffer's #+LINEAR-SOURCE header and dispatches to pearl-sync-saved-query-to-linear with the name pre-filled when the source is a :type filter that matches an entry in pearl-saved-queries. Other shapes refuse with a clear message: no source header at all, the source is already a :type view (no publish needed), the type isn't filter, the source has no usable name (transient ad-hoc filter, or whitespace-only name), or the recorded name doesn't match any local saved query. I bound the command under C-; L f P in pearl-fetch-map. The transient gets ("U" "upload current source") in the Fetch group because P is taken in the transient's flat namespace, and the verb-prefix shape revisit task tracks reshaping that. 7 new tests cover each refusal branch and the dispatch path, including a regression for the whitespace-only :name case the pre-commit review surfaced. The prior check used string-empty-p, which let " " fall through to the no-matching-saved-query branch with a visibly-blank name in the error message. string-blank-p routes it to the cleaner no-name branch. The keymap and transient menu tests gained coverage for the new binding. 660 ert tests total green. make compile and make lint clean. --- tests/test-pearl-keymap.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests/test-pearl-keymap.el') diff --git a/tests/test-pearl-keymap.el b/tests/test-pearl-keymap.el index b1b5e23..1ae0d3d 100644 --- a/tests/test-pearl-keymap.el +++ b/tests/test-pearl-keymap.el @@ -74,7 +74,9 @@ The lowercase `c' is no longer a direct command -- it is the create prefix." (should (eq 'pearl-run-view (lookup-key pearl-prefix-map (kbd "f v")))) (should (eq 'pearl-run-saved-query (lookup-key pearl-prefix-map (kbd "f q")))) (should (eq 'pearl-sync-saved-query-to-linear - (lookup-key pearl-prefix-map (kbd "f S"))))) + (lookup-key pearl-prefix-map (kbd "f S")))) + (should (eq 'pearl-publish-current-source + (lookup-key pearl-prefix-map (kbd "f P"))))) (ert-deftest test-pearl-prefix-map-edit-group () "The edit group resolves each field-edit command." -- cgit v1.2.3