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

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

[elpa] master c5fddf8 34/63: Restore syntax-propertize-function before i


From: Noam Postavsky
Subject: [elpa] master c5fddf8 34/63: Restore syntax-propertize-function before indenting snippet
Date: Mon, 17 Jul 2017 22:54:16 -0400 (EDT)

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

    Restore syntax-propertize-function before indenting snippet
    
    * yasnippet.el (yas--snippet-parse-create): Some modes require correct
    syntax-propertizing to indent properly.
---
 yasnippet.el | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/yasnippet.el b/yasnippet.el
index 1e82776..605fbae 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -3688,17 +3688,10 @@ considered when expanding the snippet."
              ;; them mostly to make the undo information
              ;;
              (setq yas--start-column (current-column))
-             (let ((yas--inhibit-overlay-hooks t)
-                   ;; Avoid major-mode's syntax propertizing function,
-                   ;; since we mess with the syntax-table and also
-                   ;; insert things that are not valid in the
-                   ;; major-mode language syntax anyway.
-                   (syntax-propertize-function nil))
+             (let ((yas--inhibit-overlay-hooks t))
                (insert content)
                (setq snippet
-                     (yas--snippet-create expand-env start (point))))
-             ;; Invalidate any syntax-propertizing done while 
`syntax-propertize-function' was nil
-             (syntax-ppss-flush-cache start))
+                     (yas--snippet-create expand-env start (point)))))
 
            ;; stacked-expansion: This checks for stacked expansion, save the
            ;; `yas--previous-active-field' and advance its boundary.
@@ -3948,7 +3941,10 @@ expansion.")
 necessary fields, mirrors and exit points.
 
 Meant to be called in a narrowed buffer, does various passes"
-  (let ((parse-start (point)))
+  (let ((parse-start (point))
+        ;; Avoid major-mode's syntax propertizing function, since we
+        ;; change the syntax-table while calling `scan-sexps'.
+        (syntax-propertize-function nil))
     ;; Reset the yas--dollar-regions
     ;;
     (setq yas--dollar-regions nil)
@@ -4011,7 +4007,10 @@ Meant to be called in a narrowed buffer, does various 
passes"
     ;; indent the best we can
     ;;
     (goto-char parse-start)
-    (yas--indent snippet)))
+    ;; Invalidate any syntax-propertizing done while
+    ;; `syntax-propertize-function' was nil.
+    (syntax-ppss-flush-cache parse-start))
+  (yas--indent snippet))
 
 ;; HACK: Some implementations of `indent-line-function' (called via
 ;; `indent-according-to-mode') delete text before they insert (like



reply via email to

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