diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-01 17:53:53 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-01 17:53:53 -0500 |
| commit | ad1e0b8c33f909814b69458eb34cc792f032e844 (patch) | |
| tree | 0db98b0d5ef8f50eb71b132d2928f0583b270176 /pearl.el | |
| parent | 6206fde5acfd48f9eba2ab231c1fe1d32717c98e (diff) | |
| download | pearl-ad1e0b8c33f909814b69458eb34cc792f032e844.tar.gz pearl-ad1e0b8c33f909814b69458eb34cc792f032e844.zip | |
feat(views): reshape the keymap and transient around the view noun
I put the view operations under the verb a user would reach for. Create, edit, and delete local views are c v, e v, and k v. The fetch group gains run-local-view at f l and keeps run-linear-view at f v, with publish at f u and save-locally reserved at f d. Since f p already runs issues by project, publish and save-locally take u and d, which read as up and down and mirror the copy-up and copy-down lifecycle.
The transient now has a Views column grouping create, edit, run-local, run-linear, publish, and delete, separate from the source-fetching commands. I updated the spec's keymap to the implemented letters so the two stay in sync.
Phase 3 of the views spec. Keymap tests assert the new bindings. Suite, compile, and lint are green.
Diffstat (limited to 'pearl.el')
| -rw-r--r-- | pearl.el | 40 |
1 files changed, 24 insertions, 16 deletions
@@ -6277,19 +6277,22 @@ body stay." ("c" "create comment" pearl-create-comment)] ["Delete" ("k" "delete issue" pearl-delete-current-issue) - ("K" "delete comment" pearl-delete-current-comment) - ("q" "delete local view" pearl-delete-local-view)]] + ("K" "delete comment" pearl-delete-current-comment)]] ["Workspace" ["Fetch" ("P" "pick source" pearl-pick-source) ("l" "my open issues" pearl-list-issues) ("p" "by project" pearl-list-issues-by-project) - ("f" "build a filter" pearl-list-issues-filtered) - ("v" "custom view" pearl-run-linear-view) - ("Q" "local view" pearl-run-local-view) - ("S" "sync local view" pearl-publish-local-view) - ("U" "upload current source" pearl-publish-current-view)] - ["View" + ("f" "build a filter" pearl-list-issues-filtered)] + ["Views" + ("V" "create local view" pearl-create-local-view) + ("y" "edit local view" pearl-edit-local-view) + ("Q" "run local view" pearl-run-local-view) + ("v" "run Linear view" pearl-run-linear-view) + ("u" "publish local view" pearl-publish-local-view) + ("U" "publish current view" pearl-publish-current-view) + ("X" "delete local view" pearl-delete-local-view)] + ["Buffer" ("g" "refresh view" pearl-refresh-current-view) ("r" "refresh issue" pearl-refresh-current-issue) ("b" "open view in Linear" pearl-open-current-view-in-linear) @@ -6328,14 +6331,17 @@ body stay." (define-key map "o" (cons "my open issues" #'pearl-list-issues)) (define-key map "p" (cons "by project" #'pearl-list-issues-by-project)) (define-key map "f" (cons "build a filter" #'pearl-list-issues-filtered)) - (define-key map "v" (cons "custom view" #'pearl-run-linear-view)) - (define-key map "q" (cons "local view" #'pearl-run-local-view)) - (define-key map "S" (cons "sync local view to Linear" - #'pearl-publish-local-view)) - (define-key map "P" (cons "publish current source to Linear" - #'pearl-publish-current-view)) + (define-key map "v" (cons "run Linear view" #'pearl-run-linear-view)) + (define-key map "l" (cons "run local view" #'pearl-run-local-view)) + (define-key map "u" (cons "publish local view" #'pearl-publish-local-view)) + (define-key map "P" (cons "publish current view" #'pearl-publish-current-view)) map) - "Pearl fetch commands; a sub-keymap of `pearl-prefix-map'.") + "Pearl fetch commands; a sub-keymap of `pearl-prefix-map'. +The view-movement keys are `l' run local view, `v' run Linear view, `u' +publish a local view up to Linear, and `d' save a Linear view locally +\(added with copy-down). `p' stays `by project', so publish takes `u' +\(up) and save-locally takes `d' (down), mirroring the copy-up/copy-down +lifecycle.") (defvar pearl-edit-map (let ((map (make-sparse-keymap))) @@ -6344,6 +6350,7 @@ body stay." (define-key map "a" (cons "edit assignee" #'pearl-edit-assignee)) (define-key map "l" (cons "edit labels" #'pearl-edit-labels)) (define-key map "c" (cons "edit comment" #'pearl-edit-current-comment)) + (define-key map "v" (cons "edit local view" #'pearl-edit-local-view)) map) "Pearl edit commands; a sub-keymap of `pearl-prefix-map'.") @@ -6351,6 +6358,7 @@ body stay." (let ((map (make-sparse-keymap))) (define-key map "t" (cons "create issue" #'pearl-create-issue)) (define-key map "c" (cons "create comment" #'pearl-create-comment)) + (define-key map "v" (cons "create local view" #'pearl-create-local-view)) map) "Pearl create commands; a sub-keymap of `pearl-prefix-map'.") @@ -6358,7 +6366,7 @@ body stay." (let ((map (make-sparse-keymap))) (define-key map "t" (cons "delete issue" #'pearl-delete-current-issue)) (define-key map "c" (cons "delete comment" #'pearl-delete-current-comment)) - (define-key map "q" (cons "delete local view" #'pearl-delete-local-view)) + (define-key map "v" (cons "delete local view" #'pearl-delete-local-view)) map) "Pearl delete commands; a sub-keymap of `pearl-prefix-map'.") |
