]> code.delx.au - gnu-emacs-elpa/commitdiff
inhibit change hooks during (insert content)
authorNoam Postavsky <npostavs@users.sourceforge.net>
Mon, 14 Oct 2013 05:05:29 +0000 (01:05 -0400)
committerNoam Postavsky <npostavs@users.sourceforge.net>
Mon, 14 Oct 2013 05:05:29 +0000 (01:05 -0400)
`yas-expand-snippet' narrows to a 0 size region before doing (insert
content), this confuses cc-mode's before-change-functions that
invalidate some cached information. Binding `inhibit-modification-hooks'
to `t' prevents calling these functions.

Fixes #404.

yasnippet.el

index f1bba52596947b49f9a773e33f864f9320cfac8f..8fb14b4978f11e83993f4143dbf7a731e2cbc5da 100644 (file)
@@ -3523,9 +3523,11 @@ considered when expanding the snippet."
                  (setq snippet
                        (if expand-env
                            (eval `(let* ,expand-env
-                                    (insert content)
+                                    (let ((inhibit-modification-hooks t))
+                                      (insert content))
                                     (yas--snippet-create (point-min))))
-                         (insert content)
+                         (let ((inhibit-modification-hooks t))
+                           (insert content))
                          (yas--snippet-create (point-min)))))))
 
            ;; stacked-expansion: This checks for stacked expansion, save the