|
From: | Dmitry Gutov |
Subject: | bug#62333: 30.0.50; Issue with tree-sitter syntax tree during certain changes |
Date: | Sun, 26 Mar 2023 00:57:22 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 |
On 25/03/2023 19:40, Eli Zaretskii wrote:
Date: Sat, 25 Mar 2023 19:05:13 +0200 Cc: wkirschbaum@gmail.com, casouri@gmail.com, 62333@debbugs.gnu.org From: Dmitry Gutov <dgutov@yandex.ru> On 25/03/2023 18:24, Eli Zaretskii wrote:From: Dmitry Gutov <dgutov@yandex.ru> Cc: "wkirschbaum@gmail.com" <wkirschbaum@gmail.com>, "casouri@gmail.com" <casouri@gmail.com>, "62333@debbugs.gnu.org" <62333@debbugs.gnu.org> Date: Sat, 25 Mar 2023 19:03:45 +0300 But if the mmm framework narrowed the region to the current mode's block, widening will force tree-sitter to parse the whole buffer. No, because such a mode mode should already make sure this doesn't happen. How?The same way it makes sure a given parser is used only on the portion of the buffer where the corresponding language is used.It uses narrowing.How does that work with features such as font-lock, which do widen?
Using font-lock-dont-widen.We've had this discussion several times over by now. Should it be documented somewhere?
Anyway, isn't this discussion a bit premature, as no TS mode has been used with the mmm framework yet?
There is no reason to assume that: the combinations of modes are just a matter of user configuration. And so far it should be working okay.
Because when they do, I imagine they will need to invent some mechanism that is more reliable than narrowing.
"They" is me. I'd rather the general mechanism keeps working, or we come up with another general mechanism that is a better substitute, before breaking this one.
And anyway, I like I mentioned, this will break this common pattern as well: (save-restriction (narrow-to-region ... some-limit-position) (forward-sexp))I've used it in ruby-syntax-propertize-percent-literal, for example. Except with 'forward-list' rather than 'forward-sexp', but others can use the latter.
[Prev in Thread] | Current Thread | [Next in Thread] |