branch: externals/greader
commit 59cbaa98a51f9b28b0362cc0f9a5e771e0c39e63
Author: Michelangelo Rodriguez <[email protected]>
Commit: Michelangelo Rodriguez <[email protected]>
greader: refactor keymap definitions; add time-based seek bindings
* greader.el (greader-prefix-keymap, greader-mode-map)
(greader-reading-map, greader--tired-intercept-map)
(greader-queue-mode-map): Change from defvar+let block to defvar
with make-sparse-keymap followed by top-level define-key calls.
This keeps minor-mode-map-alist in sync when any keymap defvar is
re-evaluated during development, because define-key modifies the
existing keymap object in place rather than replacing it.
(greader-reading-map): Bind C-<left>/C-<right> to the new
greader-move-by-seconds-backward/forward commands, and
M-<left>/M-<right> to greader-move-by-minutes-backward/forward.
---
greader.el | 72 +++++++++++++++++++++++++++++---------------------------------
1 file changed, 34 insertions(+), 38 deletions(-)
diff --git a/greader.el b/greader.el
index 432897318c..152dd6a128 100644
--- a/greader.el
+++ b/greader.el
@@ -268,33 +268,31 @@ if set to t, when you call function `greader-read', that
function sets a
:type 'string
:group 'greader)
-(defvar greader-prefix-keymap
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "s") #'greader-tired-mode)
- (define-key map (kbd "r") #'isearch-backward)
- (define-key map (kbd "SPC") #'greader-read)
- (define-key map (kbd "l") #'greader-set-language)
- (define-key map (kbd "t") #'greader-timer-mode)
- (define-key map (kbd "f") #'greader-get-attributes)
- (define-key map (kbd "b") #'greader-change-backend)
- (define-key map (kbd "c") #'greader-compile-at-point)
- map))
-
-(defvar greader-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd greader-keymap-prefix) greader-prefix-keymap)
- map))
-
-(defvar greader-reading-map
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "SPC") #'greader-stop)
- (define-key map (kbd "p") #'greader-toggle-punctuation)
- (define-key map (kbd ".") #'greader-stop-with-timer)
- (define-key map (kbd "+") #'greader-inc-rate)
- (define-key map (kbd "-") #'greader-dec-rate)
- (define-key map (kbd "<left>") #'greader-backward)
- (define-key map (kbd "<right>") #'greader-forward)
- map))
+(defvar greader-prefix-keymap (make-sparse-keymap))
+(define-key greader-prefix-keymap (kbd "s") #'greader-tired-mode)
+(define-key greader-prefix-keymap (kbd "r") #'isearch-backward)
+(define-key greader-prefix-keymap (kbd "SPC") #'greader-read)
+(define-key greader-prefix-keymap (kbd "l") #'greader-set-language)
+(define-key greader-prefix-keymap (kbd "t") #'greader-timer-mode)
+(define-key greader-prefix-keymap (kbd "f") #'greader-get-attributes)
+(define-key greader-prefix-keymap (kbd "b") #'greader-change-backend)
+(define-key greader-prefix-keymap (kbd "c") #'greader-compile-at-point)
+
+(defvar greader-mode-map (make-sparse-keymap))
+(define-key greader-mode-map (kbd greader-keymap-prefix) greader-prefix-keymap)
+
+(defvar greader-reading-map (make-sparse-keymap))
+(define-key greader-reading-map (kbd "SPC") #'greader-stop)
+(define-key greader-reading-map (kbd "p") #'greader-toggle-punctuation)
+(define-key greader-reading-map (kbd ".") #'greader-stop-with-timer)
+(define-key greader-reading-map (kbd "+") #'greader-inc-rate)
+(define-key greader-reading-map (kbd "-") #'greader-dec-rate)
+(define-key greader-reading-map (kbd "<left>") #'greader-backward)
+(define-key greader-reading-map (kbd "<right>") #'greader-forward)
+(define-key greader-reading-map (kbd "C-<left>")
#'greader-move-by-seconds-backward)
+(define-key greader-reading-map (kbd "C-<right>")
#'greader-move-by-seconds-forward)
+(define-key greader-reading-map (kbd "M-<left>")
#'greader-move-by-minutes-backward)
+(define-key greader-reading-map (kbd "M-<right>")
#'greader-move-by-minutes-forward)
(defvar greader-queue-mode)
;;;###autoload
@@ -939,13 +937,11 @@ Enabling this mode implicitly enables
`greader-timer-mode'."
(unless greader-timer-enabled-interactively
(greader-timer-mode -1))))
-(defvar greader--tired-intercept-map
- (let ((map (make-sparse-keymap)))
- (define-key map [t] #'greader--tired-wakeup)
- map)
+(defvar greader--tired-intercept-map (make-sparse-keymap)
"Keymap used by `greader--tired-intercept-mode'.
Binds every key to `greader--tired-wakeup', swallowing the original
command so that only reading is resumed.")
+(define-key greader--tired-intercept-map [t] #'greader--tired-wakeup)
(define-minor-mode greader--tired-intercept-mode
"Transient buffer-local mode that intercepts any key to resume greader.
@@ -1551,13 +1547,13 @@ else."
(greader-queue-read)))
;; this is the keymap for greader-queue-mode.
-(defvar-keymap greader-queue-mode-map
- :doc "greader-queue-mode map."
- "C-r RET" #'greader-queue-add-element
- "C-r SPC" #'greader-queue-read
- "C-r <left>" #'greader-queue-backward
- "C-r <right>" #'greader-queue-forward
- "C-r ." #'greader-queue-stop)
+(defvar greader-queue-mode-map (make-sparse-keymap)
+ "Keymap for `greader-queue-mode'.")
+(define-key greader-queue-mode-map (kbd "C-r RET")
#'greader-queue-add-element)
+(define-key greader-queue-mode-map (kbd "C-r SPC") #'greader-queue-read)
+(define-key greader-queue-mode-map (kbd "C-r <left>")
#'greader-queue-backward)
+(define-key greader-queue-mode-map (kbd "C-r <right>") #'greader-queue-forward)
+(define-key greader-queue-mode-map (kbd "C-r .") #'greader-queue-stop)
(defvar-local greader-greader-mode-was-active nil
"This variable becomes t if `greader-mode' is active when
`greader-queue-mode' is enabled.