bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#62333: 30.0.50; Issue with tree-sitter syntax tree during certain ch


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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]