bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#47566: 28.0.50; diff-hl should use `repeat-mode' ... and not `smartr


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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]