Subject: bug#61302: 29.0.60; rust-ts-mode does not show function-invocation on field-properties

From: Randy Taylor <[email-masked]>
Date: Mon, 06 Feb 2023 01:50:38 +0000

On Sun, Feb 5, 2023, at 22:52, Jostein Kjønigsen wrote:
>>
>> On Sun, Feb 5, 2023, at 22:30, Randy Taylor wrote:
>>>
>>> That's expected (at least to me) because it's a property. The same applies to c-ts-mode and go-ts-mode as well.
>> I mean… yea it’s a property, but it’s clearly a function-valued property, and you’re calling it.
>>
>> Even simpler: If you store a function reference in a plain variable and call that variable, is that a variable or a function you’re calling? ;)
>>
>> As for consistency, csharp-ts-mode, js-ts-mode, typescript-ts-mode (and tsx-ts-mode) all does the exact opposite: functions always takes precedence over properties.
>>
>> In fact, they mostly highlight declarations of properties only, not regular access, which kind avoids the duality-problem we’re seeing in rust-ts-mode in this particular case.
>>
>> Would it be an option/goal to try to align these other modes with a such a model which is somewhat more clearly defined to make it simpler to resolve cases like this?

When I introduced font-lock-property-face, I intended for it to be used to highlight all properties.

Clearly that's not what most people had in mind, and it seems that many would prefer property functions (for lack of better term) be highlighted as functions.
I can live with that, and yes, all the modes should be consistent so Rust, Go, C/C++ and any anything else should be fixed up to abide.
I'll fix Go up sometime next week unless someone beats me to it.

Perhaps in the future we can introduce more fine-grained options for properties if it's desired.

>
>Also worth noting, there are clearly highly tailored treesitter-queries to fontify these exact property-access based function-invocations. They are not getting fontified by luck or wide/general matchers elsewhere.
>
>Someone somewhere wanted these to be fontified, and had patches accepted for that exact purpose.
>
>To say that it is expected for them not to be used would then imply the queries should not be there in the first place.

I don't know what this has to do with what I said.
My intention was to highlight all properties, and I picked the easiest query to do that.

>
>I’m not saying which side is right, but if we are to chose one, we should strive to do so consistently :)
>
>—>Jostein