aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-27 23:30:08 -0500
committerCraig Jennings <c@cjennings.net>2026-05-27 23:30:08 -0500
commit3c41d3b6fcfb3bfa3cff627535685b9ecfe82a00 (patch)
tree40d050a21856f4a3f19205a02401e5e1177480a9
parentdcfecf3e4f46c920eb77ca9b3169d0719fa0b9fd (diff)
downloadpearl-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.el10
-rw-r--r--tests/test-pearl-output.el5
2 files changed, 8 insertions, 7 deletions
diff --git a/pearl.el b/pearl.el
index ee01af1..27d56ac 100644
--- a/pearl.el
+++ b/pearl.el
@@ -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."