diff options
-rw-r--r-- | etc/NEWS | 2 | ||||
-rw-r--r-- | lisp/emacs-lisp/syntax.el | 6 | ||||
-rw-r--r-- | lisp/font-lock.el | 3 |
3 files changed, 9 insertions, 2 deletions
@@ -73,6 +73,8 @@ different group ID. * Lisp Changes in Emacs 25.2 +** New var syntax-ppss-table to control the syntax-table used in syntax-ppss + ** Autoload files can be generated without timestamps, by setting `autoload-timestamps' to nil. diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index e20a210de71..c221a017f51 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -416,6 +416,9 @@ point (where the PPSS is equivalent to nil).") (error nil))) syntax-ppss-stats)) +(defvar-local syntax-ppss-table nil + "Syntax-table to use during `syntax-ppss', if any.") + (defun syntax-ppss (&optional pos) "Parse-Partial-Sexp State at POS, defaulting to point. The returned value is the same as that of `parse-partial-sexp' @@ -431,6 +434,7 @@ running the hook." (unless pos (setq pos (point))) (syntax-propertize pos) ;; + (with-syntax-table (or syntax-ppss-table (syntax-table)) (let ((old-ppss (cdr syntax-ppss-last)) (old-pos (car syntax-ppss-last)) (ppss nil) @@ -567,7 +571,7 @@ running the hook." ;; we may end up calling parse-partial-sexp with a position before ;; point-min. In that case, just parse from point-min assuming ;; a nil state. - (parse-partial-sexp (point-min) pos))))) + (parse-partial-sexp (point-min) pos)))))) ;; Debugging functions diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 3c1f01d5886..c79835dda49 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1564,6 +1564,7 @@ START should be at the beginning of a line." "Put proper face on each string and comment between START and END. START should be at the beginning of a line." (syntax-propertize end) ; Apply any needed syntax-table properties. + (with-syntax-table (or syntax-ppss-table (syntax-table)) (let ((comment-end-regexp (or font-lock-comment-end-skip (regexp-quote @@ -1598,7 +1599,7 @@ START should be at the beginning of a line." font-lock-comment-delimiter-face)))) (< (point) end)) (setq state (parse-partial-sexp (point) end nil nil state - 'syntax-table))))) + 'syntax-table)))))) ;;; End of Syntactic fontification functions. |