diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-27 23:30:08 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-27 23:30:08 -0500 |
| commit | 3c41d3b6fcfb3bfa3cff627535685b9ecfe82a00 (patch) | |
| tree | 40d050a21856f4a3f19205a02401e5e1177480a9 | |
| parent | dcfecf3e4f46c920eb77ca9b3169d0719fa0b9fd (diff) | |
| download | pearl-3c41d3b6fcfb3bfa3cff627535685b9ecfe82a00.tar.gz pearl-3c41d3b6fcfb3bfa3cff627535685b9ecfe82a00.zip | |
refactor(preamble): tighten buffer affordance comments to keymap form
The four-line preamble enumerated `M-x pearl-save-issue` / `M-x pearl-create-comment` / etc., even though pearl-mode binds the whole verb-prefix keymap under `C-; L` and that's what users actually type after the first session. Replaced with two lines: one for inline edits + save, one for the verb-prefix groups (edit, refresh, menu, pick-source). Reads as a key reference rather than a command list. The build-org-content test now matches the affordance line on "save" instead of the literal `pearl-save-issue` so the next rephrase doesn't trip it.
| -rw-r--r-- | pearl.el | 10 | ||||
| -rw-r--r-- | tests/test-pearl-output.el | 5 |
2 files changed, 8 insertions, 7 deletions
@@ -3051,12 +3051,12 @@ yields the hardcoded default. Pure function, no side effects." (insert (format "#+LINEAR-FILTER: %s\n" (pearl--summarize-filter filter))) (insert (format "#+LINEAR-COUNT: %d\n" (length issues))) (insert (format "#+LINEAR-TRUNCATED: %s\n" (if truncated "yes" "no"))) - ;; Affordance preamble (org comments -- not rendered content). + ;; Affordance preamble (org comments -- not rendered content). Keys + ;; reference the live `pearl-mode' keymap so the cues match what the + ;; user actually types, not the M-x longhand. (insert "#\n") - (insert "# Body = the issue description; edit it, then M-x pearl-save-issue to push.\n") - (insert "# Comments subtree = the thread; add with M-x pearl-create-comment.\n") - (insert "# State/assignee/labels: M-x pearl-edit-state / -assignee / -labels; priority: the org cookie (C-c ,). All push at save.\n") - (insert "# Refresh with M-x pearl-refresh-current-view (whole file) or -current-issue (one).\n") + (insert "# Inline edits (title, body, comments, [#A] cookie) save with C-; L s. C-; L S saves all.\n") + (insert "# State / assignee / labels: C-; L e s / e a / e l. C-; L g refreshes; C-; L m menu; C-; L f s pick source.\n") (insert "\n") ;; Single top-level parent so the issues are sortable as a group diff --git a/tests/test-pearl-output.el b/tests/test-pearl-output.el index a838bfb..e3208e3 100644 --- a/tests/test-pearl-output.el +++ b/tests/test-pearl-output.el @@ -51,8 +51,9 @@ (should (string-match-p "^#\\+title: Linear — My open issues$" out)) (should (string-match-p "^#\\+LINEAR-SOURCE: " out)) (should (string-match-p "^#\\+LINEAR-COUNT: 0$" out)) - ;; affordance preamble is present as org comments, not content - (should (string-match-p "^# .*pearl-save-issue" out)))) + ;; affordance preamble is present as org comments, not content -- match + ;; the save cue loosely so a future rephrase doesn't break the test + (should (string-match-p "^# .*save" out)))) (ert-deftest test-pearl-build-org-content-source-roundtrips () "The serialized source in the header reads back to the original plist." |
