[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22983: syntax-ppss returns wrong result.
From: |
Dmitry Gutov |
Subject: |
bug#22983: syntax-ppss returns wrong result. |
Date: |
Fri, 18 Mar 2016 02:49:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 |
On 03/11/2016 05:15 PM, Alan Mackenzie wrote:
This patch should make ppss-0 and ppss-1 match:
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index e20a210..c1b9d84 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -371,6 +371,11 @@ syntax-ppss-max-span
We try to make sure that cache entries are at least this far apart
from each other, to avoid keeping too much useless info.")
+(defvar syntax-ppss-dont-widen nil
+ "If non-nil, `syntax-ppss' will work on the non-widened buffer.
+The code that uses this should create local bindings for
+`syntax-ppss-cache' and `syntax-ppss-last' too.")
+
(defvar syntax-begin-function nil
"Function to move back outside of any comment/string/paren.
This function should move the cursor back to some syntactically safe
@@ -423,12 +428,21 @@ syntax-ppss
in the returned list (counting from 0) cannot be relied upon.
Point is at POS when this function returns.
+IF `syntax-ppss-dont-widen' is nil, the buffer is temporarily
+widened.
+
It is necessary to call `syntax-ppss-flush-cache' explicitly if
this function is called while `before-change-functions' is
temporarily let-bound, or if the buffer is modified without
running the hook."
;; Default values.
(unless pos (setq pos (point)))
+ (save-restriction
+ (unless syntax-ppss-dont-widen
+ (widen))
+ (syntax-pps--at pos)))
+
+(defun syntax-ppss--at (pos)
(syntax-propertize pos)
;;
(let ((old-ppss (cdr syntax-ppss-last))
- bug#22983: syntax-ppss returns wrong result., (continued)
- bug#22983: syntax-ppss returns wrong result., Alan Mackenzie, 2016/03/11
- bug#22983: syntax-ppss returns wrong result., Dmitry Gutov, 2016/03/11
- bug#22983: syntax-ppss returns wrong result., Stefan Monnier, 2016/03/13
- bug#22983: syntax-ppss returns wrong result., Alan Mackenzie, 2016/03/13
- bug#22983: syntax-ppss returns wrong result., Dmitry Gutov, 2016/03/13
- bug#22983: syntax-ppss returns wrong result., Drew Adams, 2016/03/13
- bug#22983: syntax-ppss returns wrong result., Stefan Monnier, 2016/03/13
- bug#22983: syntax-ppss returns wrong result., Stefan Monnier, 2016/03/13
bug#22983: syntax-ppss returns wrong result., Andreas Röhler, 2016/03/13
bug#22983: syntax-ppss returns wrong result.,
Dmitry Gutov <=
bug#22983: syntax-ppss returns wrong result., Vitalie Spinu, 2016/03/19
bug#22983: syntax-ppss returns wrong result., Vitalie Spinu, 2016/03/19