Subject: bug#59693: 29.0.50; treesitter in base buffer doesn't respond to modifications in indirect buffer correctly

From: Eli Zaretskii <[email-masked]>
Date: Mon, 05 Dec 2022 10:19:15 +0200

On December 5, 2022 5:49:14 AM GMT+02:00, Stefan Monnier <[email-masked]> wrote:
> 
> Don't bother, please.
> Instead, I recommend you disallow the use of tree sitter in indirect
> buffers.  And we should probably try and change `insdel.c` so it always
> runs the `after/before-change-functions` in the base buffer (this should
> fix the worst part of the problems).

Will this "hold water" vis-a-vis the expectations of various features that would like to use tree sitter related capabilities?  Regardless of your opinion on indirect buffers, many 3rd party packages and features use indirect buffers as the backbone of their implementation.  We don't currently have any alternatives to that, AFAIK.  So I'd expect a lot of disappointment if we declare that indirect buffers will not be supported by tree sitter as a matter of design decision.

Changing insdel.c to run stuff in base buffer could be a solution, but I don't feel we can make such changes on the release branch.  But maybe we can do that now only for treesit.c functions.  Yuan, would tgat solve this particular problem?