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: Eli Zaretskii
Subject: bug#62333: 30.0.50; Issue with tree-sitter syntax tree during certain changes
Date: Mon, 03 Apr 2023 15:31:20 +0300

> From: Yuan Fu <casouri@gmail.com>
> Date: Sun, 2 Apr 2023 15:08:01 -0700
> Cc: Dmitry Gutov <dgutov@yandex.ru>,
>  Wilhelm Kirschbaum <wkirschbaum@gmail.com>,
>  Gregory Heytings <gregory@heytings.org>,
>  62333@debbugs.gnu.org
> 
> >> I think the distinction lies between “I want to narrow to this defun and 
> >> work on it without distraction” vs “treat this region as an isolated 
> >> buffer”. The former used by users, the latter used by lisp programs like 
> >> Info and mmm-mode. The former still considers the visible region part of 
> >> the whole buffer, just temporarily narrowed for convenience, the latter 
> >> wants to make everything thinks the visible region _is_ the whole buffer.
> > 
> > Users can do both, for whatever reasons.
> 
> Yeah, but it might be beneficial for lisp programs to be able to distinguish 
> between the two types of narrowing, and act differently.

I think we've found that to be impossible in practice.

> >> It might be good for tree-sitter or other parsers to be exempt from (but 
> >> still acknowledges) the first kind of narrowing. This way the parser can 
> >> avoid unnecessary re-parse, and always provide the optimal information. We 
> >> just need to modify tree-sitter functions to check for this narrowing and 
> >> don’t return anything beyond the boundaries. It’s probably going to be a 
> >> lot of hair, but should be doable, I think?
> > 
> > I don't see why it would be a lot of hair.  If a parser always has the
> > regions on which it is supposed to work, then a Lisp program using a
> > parser can simply widen the buffer when it needs to be sure a
> > narrowing doesn't get in the way.
> 
> Yes, the current situation is straightforward. I’m just saying that 
> supporting what I described would require some work (let tree-sitter be able 
> to peek outside the visible region but still pretend to respect narrowing).

I don't understand where you see difficulties with that.  We have
already several features that widen the buffer momentarily, for
whatever reasons.  As long as the narrowing is restored after doing
whatever it needed to widen for, there's no reason to "pretend"
anything.





reply via email to

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