Subject: Re: bug#69625: 30.0.50; [PATCH] rust-ts-mode doesn't fontify some enum

From: Randy Taylor <[email-masked]>
Date: Sat, 16 Mar 2024 01:37:34 +0000

On Thursday, March 14th, 2024 at 21:52, Dmitry Gutov <[email-masked]> wrote:
> 
> 
> On 09/03/2024 05:50, Randy Taylor wrote:
> 
> > VariantA gets highlighted as a type and not a function at level 3 because that
> > level doesn't support functions, but does support types. Maybe that could be
> > considered a bug in that it shouldn't be highlighted at all for level 3?
> 
> 
> Probably.
> 
> > I'm not sure how worth it would be to do something about that though, or how
> > easy.
> 
> 
> Same. I haven't looked into it.
> 
> > For VariantC, our (and tree-sitter's) best guess is that it's a variable.
> > We can't really know it's a type without guessing - like assuming a capitalized
> > identifier is a type, and I don't think that's something we can assume. People
> > can have capitalized functions and variables even if that goes against Rust's
> > usual style. Perhaps as a compromise we could introduce a variable (or something)
> > that lets the user specify that all capitalized identifiers should be treated as
> > types? Maybe it even makes sense to default it to that behaviour since I believe
> > most Rust code follows that style.
> 
> 
> We do have some rules already that are based off whether an identifier
> is capitalized. I.e. some for use_as_clause, and another for
> highlighting an identifier with font-lock-constant-face if it's
> ALL_CAPS. So it might be logical to carry on with that approach.
> 
> If the style is consistent enough across the ecosystem, of course.
> 

Indeed, but those rules (minus the ALL_CAPS one) don't apply to all
identifiers but rather specific kinds (most if not all applying to
use declarations).

> We could add a variable too, but that'd make the rules more complex so
> it would be helpful to understand first whether there are users who
> would benefit.

Agreed. This is the first I've heard it mentioned.