branch: master
commit 70151f4f1e56fdf18d9e2b9dff9dec7a769e0a05
Author: João Távora <[email protected]>
Commit: João Távora <[email protected]>
Closes #525, closes #526: Prevent some keybinding fallback loops
* yasnippet.el (yas--keybinding-beyond-yasnippet): Add docstring.
(yas--fallback): Also let-bind `yas-minor-mode' to nil when
falling back.
---
yasnippet.el | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/yasnippet.el b/yasnippet.el
index 75f0ad4..a64230b 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -2254,6 +2254,12 @@ Common gateway for `yas-expand-from-trigger-key' and
"outside of the `yas-minor-mode-map'.")))
((eq yas-fallback-behavior 'call-other-command)
(let* ((yas-fallback-behavior 'yas--fallback)
+ ;; Also bind `yas-minor-mode' to prevent fallback
+ ;; loops when other extensions use mechanisms similar
+ ;; to `yas--keybinding-beyond-yasnippet'. (github #525
+ ;; and #526)
+ ;;
+ (yas-minor-mode nil)
(beyond-yasnippet (yas--keybinding-beyond-yasnippet)))
(yas--message 4 "Falling back to %s" beyond-yasnippet)
(assert (or (null beyond-yasnippet) (commandp beyond-yasnippet)))
@@ -2263,7 +2269,8 @@ Common gateway for `yas-expand-from-trigger-key' and
((and (listp yas-fallback-behavior)
(cdr yas-fallback-behavior)
(eq 'apply (car yas-fallback-behavior)))
- (let ((yas-fallback-behavior 'yas--fallback))
+ (let ((yas-fallback-behavior 'yas--fallback)
+ (yas-minor-mode nil))
(if (cddr yas-fallback-behavior)
(apply (cadr yas-fallback-behavior)
(cddr yas-fallback-behavior))
@@ -2275,7 +2282,7 @@ Common gateway for `yas-expand-from-trigger-key' and
nil)))
(defun yas--keybinding-beyond-yasnippet ()
- "Return the ??"
+ "Get current keys's binding as if YASsnippet didn't exist."
(let* ((yas-minor-mode nil)
(yas--direct-keymaps nil)
(keys (this-single-command-keys)))