Skip to content

Commit

Permalink
[language-typescript] More highlighting fixes, especially for operators
Browse files Browse the repository at this point in the history
  • Loading branch information
savetheclocktower committed May 5, 2024
1 parent ab68735 commit 55da975
Showing 1 changed file with 37 additions and 22 deletions.
59 changes: 37 additions & 22 deletions packages/language-typescript/grammars/common/highlights.scm
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
(identifier) @variable.other.assignment.import.namespace._LANG_)

; The "*" in `export * from 'bar'`
(export_statement "*" @variable.other.assignment.export.all.js)
(export_statement "*" @variable.other.assignment.export.all._LANG_)

; The "*" in `export * as Foo from 'bar'`
(export_statement
(namespace_export "*" @variable.other.assignment.export.all.js))
(namespace_export "*" @variable.other.assignment.export.all._LANG_))

; The "*" in `export * as Foo from 'bar'`
(export_statement
(namespace_export
(identifier) @variable.other.assignment.export.alias.js))
(identifier) @variable.other.assignment.export.alias._LANG_))

; The "Foo" in `export { Foo }`
(export_specifier
Expand All @@ -51,7 +51,7 @@
; =========

(this) @variable.language.this._LANG_
(super) @variable.language.super._LANG_._LANG_x
(super) @variable.language.super._LANG_

(required_parameter
pattern: (identifier) @variable.parameter.with-default._LANG_
Expand Down Expand Up @@ -345,7 +345,7 @@

"=>" @storage.type.arrow._LANG_

; TODO: If I allow scopes like `storage.type.string._LANG_`, I will make a lot of
; TODO: If I allow scopes like `storage.type.string.ts`, I will make a lot of
; text look like strings by accident. This really needs to be fixed in syntax
; themes.
;
Expand Down Expand Up @@ -764,10 +764,10 @@
) @meta.embedded.line.interpolation._LANG_

(string
(escape_sequence) @constant.character.escape.js)
(escape_sequence) @constant.character.escape._LANG_)

(template_string
(escape_sequence) @constant.character.escape.js)
(escape_sequence) @constant.character.escape._LANG_)


; CONSTANTS
Expand Down Expand Up @@ -817,16 +817,16 @@
; REGEX
; =====

(regex) @string.regexp.js
(regex) @string.regexp._LANG_
(regex
"/" @punctuation.definition.string.begin.js
"/" @punctuation.definition.string.begin._LANG_
(#is? test.first))

(regex
"/" @punctuation.definition.string.end.js
"/" @punctuation.definition.string.end._LANG_
(#is? test.last))

(regex_flags) @keyword.other.js
(regex_flags) @keyword.other._LANG_


; OPERATORS
Expand All @@ -837,26 +837,28 @@

"=" @keyword.operator.assignment._LANG_
(non_null_expression "!" @keyword.operator.non-null._LANG_)
(unary_expression"!" @keyword.operator.unary._LANG_)
(unary_expression "!" @keyword.operator.unary._LANG_)

[
"&&="
"||="
"??="
"+="
"-="
"*="
"**="
"/="
"%="
"^="
"&="
"|="
"<<="
">>="
">>>="
"&="
"^="
"|="
"??="
"||="
] @keyword.operator.assignment.compound._LANG_

(binary_expression
["+" "-" "*" "/" "%"] @keyword.operator.arithmetic._LANG_)
["/" "+" "-" "*" "**" "%"] @keyword.operator.arithmetic._LANG_)

(unary_expression ["+" "-"] @keyword.operator.unary._LANG_)

Expand All @@ -866,15 +868,14 @@
"==="
"!="
"!=="
">="
"<="
">"
"<"
] @keyword.operator.comparison._LANG_
)

["++" "--"] @keyword.operator.increment._LANG_

(binary_expression
[">=" "<=" ">" "<"] @keyword.operator.relational._LANG_)

[
"&&"
"||"
Expand Down Expand Up @@ -902,6 +903,20 @@
"." @keyword.operator.accessor._LANG_
"?." @keyword.operator.accessor.optional-chaining._LANG_

; Optional chaining is illegal…

; …on the left-hand side of an assignment.
(assignment_expression
left: (_) @_IGNORE_
(#set! prohibitsOptionalChaining true))

; …within a `new` expression.
(new_expression
constructor: (_) @_IGNORE_
(#set! prohibitsOptionalChaining true))

((optional_chain) @invalid.illegal.optional-chain._LANG_
(#is? test.descendantOfNodeWithData prohibitsOptionalChaining))

(ternary_expression
["?" ":"] @keyword.operator.ternary._LANG_
Expand Down

0 comments on commit 55da975

Please sign in to comment.