mirror of
https://github.com/abo-abo/avy.git
synced 2025-10-14 05:43:04 +00:00
Fix De Bruijn "No catch for tag" error
When using avy-goto-line and typing a line number with avy-style de-bruijn, you would get an error after entering your line number and pressing RET: No catch for tag: done, exit I believe this is because avy-read is wrapped with (catch 'done ...) but avy-read-de-bruijn doesn't catch done. This adds the catch to avy-read-de-bruijn.
This commit is contained in:
parent
f341c2f18f
commit
4a23a0d63e
51
avy.el
51
avy.el
@ -390,31 +390,32 @@ multiple DISPLAY-FN invokations."
|
|||||||
;; possible that the path-len must be incremented, e.g., if we're matching
|
;; possible that the path-len must be incremented, e.g., if we're matching
|
||||||
;; for x and a buffer contains xaxbxcx only every second subsequence is
|
;; for x and a buffer contains xaxbxcx only every second subsequence is
|
||||||
;; usable for the four matches.
|
;; usable for the four matches.
|
||||||
(let* ((path-len (ceiling (log (length lst) (length keys))))
|
(catch 'done
|
||||||
(alist (avy--path-alist-1 lst path-len keys)))
|
(let* ((path-len (ceiling (log (length lst) (length keys))))
|
||||||
(while (not alist)
|
(alist (avy--path-alist-1 lst path-len keys)))
|
||||||
(cl-incf path-len)
|
(while (not alist)
|
||||||
(setq alist (avy--path-alist-1 lst path-len keys)))
|
(cl-incf path-len)
|
||||||
(let* ((len (length (caar alist)))
|
(setq alist (avy--path-alist-1 lst path-len keys)))
|
||||||
(i 0))
|
(let* ((len (length (caar alist)))
|
||||||
(setq avy-current-path "")
|
(i 0))
|
||||||
(while (< i len)
|
(setq avy-current-path "")
|
||||||
(dolist (x (reverse alist))
|
(while (< i len)
|
||||||
(avy--overlay-at-full (reverse (car x)) (cdr x)))
|
(dolist (x (reverse alist))
|
||||||
(let ((char (funcall avy-translate-char-function (read-key))))
|
(avy--overlay-at-full (reverse (car x)) (cdr x)))
|
||||||
(avy--remove-leading-chars)
|
(let ((char (funcall avy-translate-char-function (read-key))))
|
||||||
(setq alist
|
(avy--remove-leading-chars)
|
||||||
(delq nil
|
(setq alist
|
||||||
(mapcar (lambda (x)
|
(delq nil
|
||||||
(when (eq (caar x) char)
|
(mapcar (lambda (x)
|
||||||
(cons (cdr (car x)) (cdr x))))
|
(when (eq (caar x) char)
|
||||||
alist)))
|
(cons (cdr (car x)) (cdr x))))
|
||||||
(setq avy-current-path
|
alist)))
|
||||||
(concat avy-current-path (string (avy--key-to-char char))))
|
(setq avy-current-path
|
||||||
(cl-incf i)
|
(concat avy-current-path (string (avy--key-to-char char))))
|
||||||
(unless alist
|
(cl-incf i)
|
||||||
(funcall avy-handler-function char))))
|
(unless alist
|
||||||
(cdar alist))))
|
(funcall avy-handler-function char))))
|
||||||
|
(cdar alist)))))
|
||||||
|
|
||||||
;;** Rest
|
;;** Rest
|
||||||
(defun avy-window-list ()
|
(defun avy-window-list ()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user