emacs-devel
[Top][All Lists]
Advanced

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

Re: treesit indentation "blinking"


From: Yuan Fu
Subject: Re: treesit indentation "blinking"
Date: Wed, 22 Mar 2023 18:02:02 -0700


> On Mar 22, 2023, at 5:07 PM, Daniel Colascione <dancol@dancol.org> wrote:
> 
> 
> 
> On March 22, 2023 20:00:23 Yuan Fu <casouri@gmail.com> wrote:
> 
>>> On Mar 22, 2023, at 1:49 PM, Daniel Colascione <dancol@dancol.org> wrote:
>>> 
>>> Is there a general-purpose through which we can avoid line indentation
>>> oscillating as the user types when the AST is temporarily invalid,
>>> e.g. after '(' or '{'? I'm checking out the C++ tree-sitter mode, and
>>> one of the more disconcerting things is the current line's indentation
>>> changing rapidly as I type. Is it feasible to create ERROR recovery
>>> indentation rules for every conceivable situation?
>>> 
>> 
>> Yes, but in reality, I think all we need is a couple special case for the 
>> unmatched ( and {’s. Can you think of other cases of blinking indentations?
>> 
>> Yuan
> 
> But TS reacts to missing closing brackets by clarifying the whole nearby 
> expression as ERROR. It's not, as would be more useful, saying "here's a 
> stray (, and everything else is normal and parsed as if that ( were absent”

We can just look at the buffer text directly: if there’s an ERROR and the 
previous char (after skipping whitespace chars) is ( or {, we know what to do.

Yuan




reply via email to

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