Subject: bug#61053: 29.0.60; typescript-ts-mode does not correctly highlight function-valued variables. [PATCH]

From: Eli Zaretskii <[email-masked]>
Date: Wed, 25 Jan 2023 15:05:58 +0200

> Cc: Theodor Thornhill <[email-masked]>
> Date: Wed, 25 Jan 2023 10:41:23 +0100
> From: Jostein Kjønigsen <[email-masked]>
> 
> When working with codebases where people define functions by assigned arrow-expressions to local
> variables, typescript-ts-mode (and tsx-ts-mode) currently does not highlight them as function declarations.
> 
> // this works
> function demoFunction() {
> }
> 
> // this doesnt
> const demoFunction = () => {
> };
> 
> We actually have a selector for this, but it is not getting triggered, because of what looks like ordering
> issues.
> 
> We also have override :t for almost every single feature in this mode, making it hard to know how selectors
> gets applied.
> 
> Attached is a patch whic:
> 
> 1. reorders selectors to correctly highlight function-declaration (required change, but not sufficient)
> 2. disables override everywhere, except for declaration, in order to keep fontification correct.

Thanks.

When fixing such "tricky" issues, please always include in the code
comments which explain the tricky stuff, in this case why some code
must be before the other.  Otherwise we run the risk that someone,
some day, will reorder the code, and we get the bug back.

Adding tests for this is even better (but doesn't make the comments
less important).