Subject: Re: bug#61205: 'function' in 3rd element of treesit-font-lock-feature-list

From: Randy Taylor <[email-masked]>
Date: Thu, 02 Feb 2023 03:29:26 +0000

On Wednesday, February 1st, 2023 at 21:44, Dmitry Gutov <[email-masked]> wrote:
> On 02/02/2023 04:34, Randy Taylor wrote:
> 
> > On Tuesday, January 31st, 2023 at 21:08, Dmitry [email-masked] wrote:
> > 
> > > X-Debbugs-Cc: Yuan [email-masked], Randy [email-masked]
> > > 
> > > Some new built-in modes has 'function' feature highlighting thus enabled
> > > by default.
> > > 
> > > rust-ts-mode, go-ts-mode, cmake-mode
> > > 
> > > Should we move it to 4 for consistency with the rest?
> > > 
> > > Previously, we talked about that and concluded that function calls are
> > > usually everywhere and are easy to notice without additional highlighting.
> > > If that's what folks decided on then we should keep everything consistent.
> > 
> > Personally, I find it odd that out of the box default highlighting wouldn't highlight function calls.
> 
> 
> I think that's more useful in some languages, and less in others.

Sure, and people will have different opinions on it too. But I still think out of the box we should be highlighting most things like other editors do. It's easy enough to take out what you don't like.

> 
> I guess we settled on this particular convention to be more consistent
> with existing major modes in Emacs. But I can see how it can be
> appealing, especially in languages with more complex syntax such as Rust.
> 
> Same for 'property'.
> 
> The one feature that I'm fairly certain is currently useless is
> 'variable', because we don't have any variable scope tracking (yet), and
> the grammars don't do it for us. So too many tokens get highlighted with
> font-lock-variable-name-face. Try the current rust-ts-mode, for example:
> almost everything ends up with that face.

If anything that isn't a variable is getting highlighted, then that's a bug. Anything it's catching that isn't a variable can probably be dealt with similar to how token_tree is dealt with.