diff options
Diffstat (limited to 'lisp/emacs-lisp/syntax.el')
-rw-r--r-- | lisp/emacs-lisp/syntax.el | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index e20a210de71..ae682ecf73a 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -272,9 +272,10 @@ Note: back-references in REGEXPs do not work." (cond ,@(nreverse branches)))))) (defun syntax-propertize-via-font-lock (keywords) - "Propertize for syntax in START..END using font-lock syntax. + "Propertize for syntax using font-lock syntax. KEYWORDS obeys the format used in `font-lock-syntactic-keywords'. -The return value is a function suitable for `syntax-propertize-function'." +The return value is a function (with two paremeters, START and +END) suitable for `syntax-propertize-function'." (lambda (start end) (with-no-warnings (let ((font-lock-syntactic-keywords keywords)) @@ -283,7 +284,7 @@ The return value is a function suitable for `syntax-propertize-function'." (setq keywords font-lock-syntactic-keywords))))) (defun syntax-propertize (pos) - "Ensure that syntax-table properties are set until POS." + "Ensure that syntax-table properties are set until POS (a buffer point)." (when (< syntax-propertize--done pos) (if (null syntax-propertize-function) (setq syntax-propertize--done (max (point-max) pos)) @@ -416,6 +417,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 +435,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 +572,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 |