* lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var

(syntax-ppss):
* lisp/font-lock.el (font-lock-fontify-syntactically-region): Use it.
This commit is contained in:
Stefan Monnier 2016-01-16 15:06:04 -05:00
parent 56e1097584
commit 8dafacd041
3 changed files with 9 additions and 2 deletions

View file

@ -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