Unnamed repository; edit this file 'description' to name the repository.
Fixed ECMAScript private member highlighting (#10554)
Elizabeth 2024-04-28
parent 615d34a · commit bc03b6b
-rw-r--r--book/src/themes.md2
-rw-r--r--runtime/queries/ecma/highlights.scm13
2 files changed, 15 insertions, 0 deletions
diff --git a/book/src/themes.md b/book/src/themes.md
index d982dee9..e3b95c0a 100644
--- a/book/src/themes.md
+++ b/book/src/themes.md
@@ -179,6 +179,7 @@ We use a similar set of scopes as
- `parameter` - Function parameters
- `other`
- `member` - Fields of composite data types (e.g. structs, unions)
+ - `private` - Private fields that use a unique syntax (currently just ECMAScript-based languages)
- `label`
@@ -206,6 +207,7 @@ We use a similar set of scopes as
- `function`
- `builtin`
- `method`
+ - `private` - Private methods that use a unique syntax (currently just ECMAScript-based languages)
- `macro`
- `special` (preprocessor in C)
diff --git a/runtime/queries/ecma/highlights.scm b/runtime/queries/ecma/highlights.scm
index 07f7dfed..dc8ce5e7 100644
--- a/runtime/queries/ecma/highlights.scm
+++ b/runtime/queries/ecma/highlights.scm
@@ -29,15 +29,24 @@
name: (identifier) @function)
(method_definition
name: (property_identifier) @function.method)
+(method_definition
+ name: (private_property_identifier) @function.method.private)
(pair
key: (property_identifier) @function.method
value: [(function) (arrow_function)])
+(pair
+ key: (private_property_identifier) @function.method.private
+ value: [(function) (arrow_function)])
(assignment_expression
left: (member_expression
property: (property_identifier) @function.method)
right: [(function) (arrow_function)])
+(assignment_expression
+ left: (member_expression
+ property: (private_property_identifier) @function.method.private)
+ right: [(function) (arrow_function)])
(variable_declarator
name: (identifier) @function
@@ -64,6 +73,9 @@
(call_expression
function: (member_expression
property: (property_identifier) @function.method))
+(call_expression
+ function: (member_expression
+ property: (private_property_identifier) @function.method.private))
; Variables
;----------
@@ -74,6 +86,7 @@
;-----------
(property_identifier) @variable.other.member
+(private_property_identifier) @variable.other.member.private
(shorthand_property_identifier) @variable.other.member
(shorthand_property_identifier_pattern) @variable.other.member