Subject: Re: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified

From: Jostein Kjønigsen <[email-masked]>
Date: Mon, 5 Dec 2022 10:05:30 +0100

Attached is another patch with some further improvements.

These too OK with you, Theodor?

--
Jostein

[email-masked] 🍵 [email-masked]
https://jostein.kjønigsen.no <https://jostein.kjønigsen.no>
On 05.12.2022 09:51, Theodor Thornhill wrote:
> Jostein Kjønigsen <[email-masked]> writes:
>
>> When I create or use a class in a Typescript-file, I often have
>> properties and field declarations.
>>
>> These are all fontified using default-face, instead of
>> font-lock-property-face.
>>
>> Also when creating new objects using bracket syntac { key: value, key:
>> value, etc: etc }, default-face is used.
>>
>> Attached is a patch which improves fontification of these aspects in
>> both typescript-ts-mode and typescript-tsx-mode.
>>
>> It also contains code to further improve fontification of
>> retuen-statements, which IMO is a little bit lacking.
>>
> LGTM :) Yuan, feel free to apply when you have some free time!
>
>>  From 3bcbd89cc43c6ad7885f11aa4c7c92ebd600a164 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <[email-masked]>
>> Date: Mon, 5 Dec 2022 09:31:58 +0100
>> Subject: [PATCH] lisp/progmodes/typescript-ts-mode: improve fontification
>>
>> - syntax-highlight property and field definitions in class declaration.
>> - syntax-highlight property-keys in object initializaters.
>> - syntax-highlight variable-names in function/method return-statements.
>> ---
>>   lisp/progmodes/typescript-ts-mode.el | 13 +++++++++++--
>>   1 file changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
>> index 48ac1169fe8..48d3c084b6e 100644
>> --- a/lisp/progmodes/typescript-ts-mode.el
>> +++ b/lisp/progmodes/typescript-ts-mode.el
>> @@ -213,7 +213,9 @@ typescript-ts-mode--font-lock-settings
>>         parameters:
>>         [(_ (identifier) @font-lock-variable-name-face)
>>          (_ (_ (identifier) @font-lock-variable-name-face))
>> -       (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
>> +       (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
>> +
>> +     (return_statement (identifier) @font-lock-variable-name-face))
>>   
>>      :language language
>>      :override t
>> @@ -282,7 +284,14 @@ typescript-ts-mode--font-lock-settings
>>      :language language
>>      :override t
>>      :feature 'property
>> -   `((pair value: (identifier) @font-lock-variable-name-face)
>> +   `((property_signature
>> +      name: (property_identifier) @font-lock-property-face)
>> +     (public_field_definition
>> +      name: (property_identifier) @font-lock-property-face)
>> +
>> +     (pair key: (property_identifier) @font-lock-variable-name-face)
>> +
>> +     (pair value: (identifier) @font-lock-variable-name-face)
>>   
>>        ((shorthand_property_identifier) @font-lock-property-face)
>>   
> Thanks!
>
> Theo

From 441b2340f0a8d9bf27b0dbcb985051c84672f41f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <[email-masked]>
Date: Mon, 5 Dec 2022 10:00:15 +0100
Subject: [PATCH 2/2] lisp/progmodes/typescript-ts-mode: Improve fontifications
 of variables in use.

---
 lisp/progmodes/typescript-ts-mode.el | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 48d3c084b6e..3da690567e2 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -215,7 +215,12 @@ typescript-ts-mode--font-lock-settings
        (_ (_ (identifier) @font-lock-variable-name-face))
        (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
 
-     (return_statement (identifier) @font-lock-variable-name-face))
+     (return_statement (identifier) @font-lock-variable-name-face)
+
+     (binary_expression left: (identifier) @font-lock-variable-name-face)
+     (binary_expression right: (identifier) @font-lock-variable-name-face)
+
+     (arguments (identifier) @font-lock-variable-name-face))
 
    :language language
    :override t
-- 
2.37.2