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

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

[elpa] master 5d10b5d 133/177: Add yas-longest-key-from-whitespace


From: João Távora
Subject: [elpa] master 5d10b5d 133/177: Add yas-longest-key-from-whitespace
Date: Sat, 28 Mar 2015 15:41:26 +0000

branch: master
commit 5d10b5dfee3ee3d1c5c199e8c9acfb9c9b26172c
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Add yas-longest-key-from-whitespace
    
    Example yas-key-syntaxes function.
    
    * yasnippet.el (yas-longest-key-from-whitespace): new function.
    * yasnippet-tests.el (complicated-yas-key-syntaxes): test it.
---
 yasnippet-tests.el |    4 +++-
 yasnippet.el       |   13 +++++++++++++
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/yasnippet-tests.el b/yasnippet-tests.el
index 12ca615..d090c51 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -349,7 +349,9 @@ TODO: correct this bug!"
                               ("xxx 'quote" . "xxx OKquoteOK"))))
        (let ((yas-key-syntaxes '(yas-shortest-key-until-whitespace))
              (yas--foobarbaz t) (yas--barbaz t))
-         (yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK"))))))))
+         (yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK")))
+         (setq yas-key-syntaxes '(yas-longest-key-from-whitespace))
+         (yas-should-expand '(("foo-barbaz" . "OKfoo-barbazOK"))))))))
 
 
 ;;; Loading
diff --git a/yasnippet.el b/yasnippet.el
index 93eceb2..dcf6bf0 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -2746,6 +2746,19 @@ element of `yas-key-syntaxes'."
   (when (/= (skip-chars-backward "^[:space:]\n" (1- (point))) 0)
     'again))
 
+(defun yas-longest-key-from-whitespace (start-point)
+  "Go back to nearest whitespace, then go forward and return `again' until at 
START-POINT.
+
+A newline will be considered whitespace even if the mode syntax
+marks it as something else (typically comment ender). Use as
+element of `yas-key-syntaxes'."
+  (if (= (point) start-point)
+      (yas-try-key-from-whitespace start-point)
+    (forward-char))
+  (unless (= original (1+ (point)))
+    'again))
+
+
 
 ;;; User convenience functions, for using in snippet definitions
 



reply via email to

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