Subject: bug#59660: 29.0.50; typescript-ts-mode consistently fontifies method-names incorrectly

From: Theodor Thornhill <[email-masked]>
Date: Tue, 29 Nov 2022 16:10:06 +0100

Jostein Kjønigsen <[email-masked]> writes:

> Cc: [email-masked], [email-masked]
>>> From: Yuan Fu <[email-masked]>
>>> Date: Mon, 28 Nov 2022 15:06:30 -0800
>>>
>>> Maybe you can remove the :override flag for the property_identifier rule, so it doesn’t shadow the function rule? Would that work better?
> I plan to test that as quickly as I time permits. If we can make both 
> behaviours work, that would obviously be the best.
>> This could be a personal preference, perhaps?  It isn't clear to me that
>> only one of the two is definitely correct.  So maybe we need a user option
>> for which one overrides which?
>
> I honestly think this is reasonably clear.
>
> "Properties" with getters and setters are at this point in time almost 
> entirely unused in EcmaScript/TypeScript space. They are optional and 
> have complicated syntax, and don't play well with JSON serialization 
> (and thus can't be used in REST APIs).
>
> You however cannot write a program without defining or invoking 
> methods/functions. So not having method-fontification working correctly 
> will literally impact **all** TypeScript-users.

Could you give me a code example, Jostein?  I'm just interested in a
repro, because I can't reproduce it with the typescript-ts-mode.

I tried using this from [0]:
```
class Greeter {
  greeting: string;

  constructor(message: string) {
    this.greeting = message;
  }

  greet() {
    return "Hello, " + this.greeting;
  }
}
```

On my end I get no property-face, just function-name-face.  Both on
constructor and greet.  I'm not saying I disagree with you, but what am
I missing?

Theo

[0]: https://www.typescriptlang.org/docs/handbook/classes.html