|
From: | Dmitry Gutov |
Subject: | bug#47566: 28.0.50; diff-hl should use `repeat-mode' ... and not `smartrep' |
Date: | Sun, 4 Apr 2021 01:08:55 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
Hi! On 02.04.2021 08:40, Ramesh Nedunchezian wrote:
FWIW, `smartrep' is not part of GNU Emacs or GNU ELPA but available elsewhere. (I install it via MELPA) Now, that `repeat-mode' is part of GNU Emacs, I think this dependency on `smartrep' can be removed.
I'd be happy to migrate away from smartrep, as soon as the functionality is equal, and all supported Emacs versions have repeat-mode.
FWIW, this is what I have in my `.emacs'. (progn (defvar diff-hl--repeat-map (let ((map (make-sparse-keymap))) map)) (message "Installed %s" 'diff-hl--repeat-map) (cl-loop for (cmd . key) in '((diff-hl-diff-goto-hunk . "=") (diff-hl-revert-hunk . "n") (diff-hl-previous-hunk . "[") (diff-hl-next-hunk . "]")) do (define-key diff-hl--repeat-map key cmd) (put cmd 'repeat-map 'diff-hl--repeat-map)))
Try this alternative too, seems shorter: (map-keymap (lambda (_key cmd) (put cmd 'repeat-map 'diff-hl-command-map)) diff-hl-command-map)But either version (together with enabling repeat-mode) seems to break diff-hl-revert-hunk: as soon as it reaches the the y-or-n prompt, and I try to answer 'n', it enters the repeat loop again, instead of sending the result to the command.
[Prev in Thread] | Current Thread | [Next in Thread] |