diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/syntax.el | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index a1b70b18693..6106720f7a5 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -291,6 +291,14 @@ END) suitable for `syntax-propertize-function'." ;; (message "Needs to syntax-propertize from %s to %s" ;; syntax-propertize--done pos) (set (make-local-variable 'parse-sexp-lookup-properties) t) + (when (< syntax-propertize--done (point-min)) + ;; *Usually* syntax-propertize is called via syntax-ppss which + ;; takes care of adding syntax-ppss-flush-cache to b-c-f, but this + ;; is not *always* the case, so since we share a single "flush" function + ;; between syntax-ppss and syntax-propertize, we also have to make + ;; sure the flush function is installed here (bug#29767). + (add-hook 'before-change-functions + #'syntax-ppss-flush-cache t t)) (save-excursion (with-silent-modifications (make-local-variable 'syntax-propertize--done) ;Just in case! |