summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/syntax.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/syntax.el')
-rw-r--r--lisp/emacs-lisp/syntax.el13
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