> What problems do you see with the current approach that would require
more fine-grained user control?

The main issue for me is removing the `error` feature from any mode
that adds it with `:override t`. I find the override font-locking is jarring - in some
Languages half the buffer can switch in and out of parse errors when you
do something as simple as removing a closing paren.

Also, allowing users to rearrange features at different levels seems like a bonus.

> And why do you think a defvar is the proper way of providing such control?

You're right, I don't think it's the best way - it's just what I've been doing in
treesit modes I've written till now.

On Sat, Apr 13, 2024 at 12:40 AM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Noah Peart <noah.v.peart@gmail.com>
> Date: Sat, 13 Apr 2024 00:32:59 -0700
> Cc: 70361@debbugs.gnu.org
>
> On a somewhat related note, I was wondering why the treesit modes in emacs
> define their `treesit-font-lock-feature-list`s in the mode definitions.
>
> Wouldn't it be more user-friendly to `defvar` the feature list?

AFAIR, we do that in the mode's settings because the translation of
general categories into mode-specific settings is not easy, and
because we want users to control that via the fontification level, not
below that.

What problems do you see with the current approach that would require
more fine-grained user control?  And why do you think a defvar is the
proper way of providing such control?