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

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

[elpa] master bceb65b 16/42: Make backspace/DEL clear field (#957)


From: Noam Postavsky
Subject: [elpa] master bceb65b 16/42: Make backspace/DEL clear field (#957)
Date: Sun, 22 Dec 2019 17:37:58 -0500 (EST)

branch: master
commit bceb65ba292f9d5800fd9aaa261ddb9863ff22a6
Author: James Nguyen <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Make backspace/DEL clear field (#957)
    
    * yasnippet.el (yas-clear-field): New command.
    (yas-maybe-clear-field): New conditional binding value.
    (yas-keymap): Bind it to DEL.
---
 yasnippet.el | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/yasnippet.el b/yasnippet.el
index a04372a..0ae0c2c 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -402,7 +402,15 @@ It must be set to nil before loading yasnippet to take 
effect."
   "A conditional key definition.
 This can be used as a key definition in keymaps to bind a key to
 `yas-skip-and-clear-field' only when at the beginning of an
-unmodified snippey field.")
+unmodified snippet field.")
+
+(defconst yas-maybe-clear-field
+    '(menu-item "" yas-clear-field
+                :filter yas--maybe-clear-field-filter)
+    "A conditional key definition.
+This can be used as a key definition in keymaps to bind a key to
+`yas-clear-field' only when at the beginning of an
+unmodified snippet field.")
 
 (defvar yas-keymap  (let ((map (make-sparse-keymap)))
                       (define-key map [(tab)]       
'yas-next-field-or-maybe-expand)
@@ -411,6 +419,7 @@ unmodified snippey field.")
                       (define-key map [backtab]     'yas-prev-field)
                       (define-key map (kbd "C-g")   'yas-abort-snippet)
                       (define-key map (kbd "C-d")   
yas-maybe-skip-and-clear-field)
+                      (define-key map (kbd "DEL")   yas-maybe-clear-field)
                       map)
   "The active keymap while a snippet expansion is in progress.")
 
@@ -3678,6 +3687,11 @@ Use as a `:filter' argument for a conditional 
keybinding."
   (yas--skip-and-clear (or field (yas-current-field)))
   (yas-next-field 1))
 
+(defun yas-clear-field (&optional field)
+  "Clears unmodified FIELD if at field start."
+  (interactive)
+  (yas--skip-and-clear (or field (yas-current-field))))
+
 (defun yas-skip-and-clear-or-delete-char (&optional field)
   "Clears unmodified field if at field start, skips to next tab.
 



reply via email to

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