From bf74a4652d97d7acb82e84467098e5b39f83827a Mon Sep 17 00:00:00 2001 From: Philipp Mildenberger Date: Wed, 27 Jul 2022 20:56:58 +0200 Subject: [PATCH] JS/TS highlighting improvements (#3219) --- runtime/queries/javascript/highlights.scm | 5 +++ runtime/queries/typescript/highlights.scm | 44 +++++++++++++++++------ 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/runtime/queries/javascript/highlights.scm b/runtime/queries/javascript/highlights.scm index 9a759081..60336c3b 100644 --- a/runtime/queries/javascript/highlights.scm +++ b/runtime/queries/javascript/highlights.scm @@ -66,6 +66,8 @@ ;----------- (property_identifier) @variable.other.member +(shorthand_property_identifier) @variable.other.member +(shorthand_property_identifier_pattern) @variable.other.member ; Literals ;--------- @@ -149,8 +151,11 @@ "&&=" "||=" "??=" + "..." ] @operator +(ternary_expression ["?" ":"] @operator) + [ "(" ")" diff --git a/runtime/queries/typescript/highlights.scm b/runtime/queries/typescript/highlights.scm index a424d100..b89aa8c4 100644 --- a/runtime/queries/typescript/highlights.scm +++ b/runtime/queries/typescript/highlights.scm @@ -1,28 +1,36 @@ -; inherits: javascript - -; Types +; Namespaces -(type_identifier) @type -(predefined_type) @type.builtin +(internal_module + [((identifier) @namespace) ((nested_identifier (identifier) @namespace))]) -((identifier) @type - (#match? @type "^[A-Z]")) +(ambient_declaration "global" @namespace) -(type_arguments - "<" @punctuation.bracket - ">" @punctuation.bracket) ; Variables (required_parameter (identifier) @variable.parameter) (optional_parameter (identifier) @variable.parameter) +; Punctuation + +[ + ":" +] @punctuation.delimiter + +(optional_parameter "?" @punctuation.special) +(property_signature "?" @punctuation.special) + +(conditional_type ["?" ":"] @operator) + + + ; Keywords [ "abstract" "declare" "export" + "infer" "implements" "keyof" "namespace" @@ -39,4 +47,18 @@ "private" "protected" "readonly" -] @keyword.storage.modifier \ No newline at end of file +] @keyword.storage.modifier + +; inherits: javascript + +; Types + +(type_identifier) @type +(predefined_type) @type.builtin + +(type_arguments + "<" @punctuation.bracket + ">" @punctuation.bracket) + +((identifier) @type + (#match? @type "^[A-Z]"))