emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master c2e2a4a 083/110: avy.el (avy--read-candidates): Custom key


From: Oleh Krehel
Subject: [elpa] master c2e2a4a 083/110: avy.el (avy--read-candidates): Custom keys for deleting last read char
Date: Sat, 11 May 2019 10:15:49 -0400 (EDT)

branch: master
commit c2e2a4a3f2064b1efc9794447a7f4a64b52b4a0d
Author: Jiangbin Zhao <address@hidden>
Commit: Oleh Krehel <address@hidden>

    avy.el (avy--read-candidates): Custom keys for deleting last read char
    
    Add a defcustom for list of events that delete last read char, with
    the default being '(8 127) which represents C-h and DEL.
    
    Fixes #251
---
 avy.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/avy.el b/avy.el
index 50f0214..fc21ac0 100644
--- a/avy.el
+++ b/avy.el
@@ -248,6 +248,12 @@ Typically, these modes don't use the text representation."
   "In case there is only one candidate jumps directly to it."
   :type 'boolean)
 
+(defcustom avy-del-last-char-by '(8 127)
+  "List of event types, i.e. key presses, that delete the last
+character read.  The default represents `C-h' and `DEL'.  See
+`event-convert-list'."
+  :type 'list)
+
 (defvar avy-ring (make-ring 20)
   "Hold the window and point history.")
 
@@ -1882,8 +1888,9 @@ newline."
 (defun avy--read-candidates (&optional re-builder)
   "Read as many chars as possible and return their occurrences.
 At least one char must be read, and then repeatedly one next char
-may be read if it is entered before `avy-timeout-seconds'.  `C-h'
-or `DEL' deletes the last char entered, and `RET' exits with the
+may be read if it is entered before `avy-timeout-seconds'.  Any
+key defined in `avy-del-last-char-by' (by default `C-h' and `DEL')
+deletes the last char entered, and `RET' exits with the
 currently read string immediately instead of waiting for another
 char for `avy-timeout-seconds'.
 The format of the result is the same as that of `avy--regex-candidates'.
@@ -1917,7 +1924,7 @@ Otherwise, the whole regex is highlighted."
                     (setq break t)
                   (setq str (concat str (list ?\n)))))
                ;; Handle C-h, DEL
-               ((memq char '(8 127))
+               ((memq char avy-del-last-char-by)
                 (let ((l (length str)))
                   (when (>= l 1)
                     (setq str (substring str 0 (1- l))))))



reply via email to

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