branch: master
commit be2f815c43deb74e0f809ed47debc4aa2e67ea1e
Author: João Távora <joaotav...@gmail.com>
Commit: João Távora <joaotav...@gmail.com>

    Closes #508: Ensure original point when evaluating conditions
    
    * yasnippet.el (yas--templates-for-key-at-point): Call
    `yas--fetch', and hence condition system, with point in the
    original position.
---
 yasnippet.el |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/yasnippet.el b/yasnippet.el
index c25d78d..f26cc3f 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -1257,11 +1257,13 @@ Returns (TEMPLATES START END). This function respects
                  (setq methods (cdr methods))))
               (t
                (yas--warning "Warning invalid element %s in 
`yas-key-syntaxes'" method)))
-        (setq templates
-              (mapcan #'(lambda (table)
-                          (yas--fetch table (buffer-substring-no-properties 
(point)
-                                                                            
original)))
-                      (yas--get-snippet-tables))))
+        (let ((possible-key (buffer-substring-no-properties (point) original)))
+          (save-excursion
+            (goto-char original)
+            (setq templates
+                  (mapcan #'(lambda (table)
+                              (yas--fetch table possible-key))
+                          (yas--get-snippet-tables))))))
       (when templates
         (list templates (point) original)))))
 

Reply via email to