unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#41195: 27.0.91; Using syntax-ppss-flush-cache in syntax-propertize-function infloops
@ 2020-05-11 23:32 Dmitry Gutov
  2020-05-12 20:55 ` Stefan Monnier
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Gutov @ 2020-05-11 23:32 UTC (permalink / raw)
  To: 41195

In theory, syntax-propertize-function implementations shouldn't change
buffer syntax the way that would affect the current syntax-ppss cache.
Or if they do, they should clear the cache accordingly.

Unfortunately, using syntax-ppss-flush-cache for that purpose doesn't
work: it makes Emacs infloop.

To reproduce, apply this patch:

diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 5ec3e94275..efe38049ab 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -2362,6 +2362,7 @@ js-syntax-propertize
                             (eval-when-compile (append "=({[,:;" 
'(nil))))))
             (put-text-property (match-beginning 1) (match-end 1)
                                'syntax-table (string-to-syntax "\"/"))
+           (syntax-ppss-flush-cache (match-beginning 0))
             (js-syntax-propertize-regexp end)))))
      ("\`\(#\)!" (1 "< b"))
      ("<" (0 (ignore

and then edit a file with js-mode containing

   a = /xyz/





^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-05-12 21:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-11 23:32 bug#41195: 27.0.91; Using syntax-ppss-flush-cache in syntax-propertize-function infloops Dmitry Gutov
2020-05-12 20:55 ` Stefan Monnier
2020-05-12 21:05   ` Dmitry Gutov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).