aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-02 18:09:48 -0500
committerCraig Jennings <c@cjennings.net>2026-06-02 18:09:48 -0500
commit9a145f30ff49a0141f342ea775e8f1a5b5899ae6 (patch)
tree598d69f3c8d8c85b60dff48b81fcf0c826e94823
parentaf89859dc2ff772f9acf2d5b784e587e4d0243cc (diff)
downloadpearl-9a145f30ff49a0141f342ea775e8f1a5b5899ae6.tar.gz
pearl-9a145f30ff49a0141f342ea775e8f1a5b5899ae6.zip
feat(keys): friendlier which-key labels for the prefix sub-maps
The C-; L sub-prefixes were labelled +fetch / +views / +edit / +create / +delete / +open / +copy / +workspace, the which-key submenu idiom but terse. They now read fetch... / views... / edit... / create... and so on: drop the +, add an ellipsis so the label reads as "do this, then pick what." Leaf commands and the direct hot keys are unchanged. These labels are the (LABEL . COMMAND) menu-item strings baked into pearl-prefix-map, so which-key, describe-prefix, and which-key-less lookups all pick them up with no which-key dependency. Pure label strings, no behavior change. The keymap-label test moved to the new wording.
-rw-r--r--pearl.el16
-rw-r--r--tests/test-pearl-keymap.el6
2 files changed, 11 insertions, 11 deletions
diff --git a/pearl.el b/pearl.el
index a6d7438..58e5bd3 100644
--- a/pearl.el
+++ b/pearl.el
@@ -6867,14 +6867,14 @@ diagnostics.")
(define-key map "d" (cons "edit description" #'pearl-edit-description))
(define-key map "m" (cons "menu" #'pearl-menu))
;; Category sub-maps -- two keys; each prefix names an action verb or noun.
- (define-key map "f" (cons "+fetch" pearl-fetch-map))
- (define-key map "v" (cons "+views" pearl-views-map))
- (define-key map "e" (cons "+edit" pearl-edit-map))
- (define-key map "c" (cons "+create" pearl-create-map))
- (define-key map "k" (cons "+delete" pearl-delete-map))
- (define-key map "o" (cons "+open" pearl-open-map))
- (define-key map "y" (cons "+copy" pearl-copy-map))
- (define-key map "w" (cons "+workspace" pearl-workspace-map))
+ (define-key map "f" (cons "fetch..." pearl-fetch-map))
+ (define-key map "v" (cons "views..." pearl-views-map))
+ (define-key map "e" (cons "edit..." pearl-edit-map))
+ (define-key map "c" (cons "create..." pearl-create-map))
+ (define-key map "k" (cons "delete..." pearl-delete-map))
+ (define-key map "o" (cons "open..." pearl-open-map))
+ (define-key map "y" (cons "copy..." pearl-copy-map))
+ (define-key map "w" (cons "workspace..." pearl-workspace-map))
map)
"Pearl command prefix keymap.
Hot-path commands are bound directly; the rest live under sub-maps
diff --git a/tests/test-pearl-keymap.el b/tests/test-pearl-keymap.el
index 9650652..49dbd31 100644
--- a/tests/test-pearl-keymap.el
+++ b/tests/test-pearl-keymap.el
@@ -167,9 +167,9 @@ literal my-open-issues fetch stays at f o (they are no longer the same command).
(test-pearl-keymap--label-of pearl-views-map 'pearl-set-default-view)))
(should (string= "switch account"
(test-pearl-keymap--label-of pearl-workspace-map 'pearl-switch-account)))
- (should (string= "+edit" (test-pearl-keymap--label-of pearl-prefix-map pearl-edit-map)))
- (should (string= "+views" (test-pearl-keymap--label-of pearl-prefix-map pearl-views-map)))
- (should (string= "+workspace"
+ (should (string= "edit..." (test-pearl-keymap--label-of pearl-prefix-map pearl-edit-map)))
+ (should (string= "views..." (test-pearl-keymap--label-of pearl-prefix-map pearl-views-map)))
+ (should (string= "workspace..."
(test-pearl-keymap--label-of pearl-prefix-map pearl-workspace-map))))
(ert-deftest test-pearl-prefix-map-not-bound-at-load ()