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"