diff options
| -rw-r--r-- | queries/wing/folds.scm | 2 | ||||
| -rw-r--r-- | queries/wing/highlights.scm | 96 | ||||
| -rw-r--r-- | queries/wing/injections.scm | 13 | ||||
| -rw-r--r-- | tests/query/highlights/wing/class.w | 6 |
4 files changed, 104 insertions, 13 deletions
diff --git a/queries/wing/folds.scm b/queries/wing/folds.scm index 60de6116d..9c5a28483 100644 --- a/queries/wing/folds.scm +++ b/queries/wing/folds.scm @@ -12,4 +12,6 @@ (enum_definition) (try_catch_statement) (method_definition) + (import_statement)+ + (initializer) ] @fold diff --git a/queries/wing/highlights.scm b/queries/wing/highlights.scm index d417675e1..6f6fe4a30 100644 --- a/queries/wing/highlights.scm +++ b/queries/wing/highlights.scm @@ -8,17 +8,34 @@ (custom_type) @type (class_field - name: (identifier) @variable.member) + name: (identifier) @property) + +(struct_field + name: (identifier) @property) (class_definition name: (identifier) @type) +(struct_definition + name: (identifier) @type) + +(interface_definition + name: (identifier) @type) + (method_definition name: (identifier) @function.method) +(json_literal_member + (identifier) @property) + ; Functions (keyword_argument_key) @variable.parameter +(parameter_definition + name: (identifier) @variable.parameter) + +(variadic) @variable.parameter.builtin + (call caller: (reference (nested_identifier @@ -37,7 +54,17 @@ (bool) @boolean -(builtin_type) @type.builtin +[ + (builtin_type) + "MutSet" + "MutMap" + "MutArray" + "Json" + "Set" + "Map" + "Array" + "MutJson" +] @type.builtin (json_container_type) @type.builtin @@ -45,16 +72,12 @@ (comment) @comment @spell [ - "(" - ")" - "{" - "}" -] @punctuation.bracket - -[ "-" + "-=" "+" + "+=" "*" + "**" "/" "%" "<" @@ -68,23 +91,54 @@ "&&" "??" "||" + "?" ] @operator [ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +(mutable_container_type + [ + "<" + ">" + ] @punctuation.bracket) + +(immutable_container_type + [ + "<" + ">" + ] @punctuation.bracket) + +[ ";" "." "," + ":" + "=>" ] @punctuation.delimiter [ "as" - "bring" "let" "new" (inflight_specifier) + "impl" + "test" ] @keyword -"class" @keyword.type +"bring" @keyword.import + +[ + "class" + "struct" + "interface" +] @keyword.type [ "for" @@ -100,6 +154,26 @@ "pub" "protected" "internal" + "extern" + (static) ] @keyword.modifier "return" @keyword.return + +(import_statement + module_name: (identifier) @module) + +(import_statement + alias: (identifier) @module) + +(call + (reference + (nested_identifier + object: (reference) @_ref + property: (member_identifier) @_ident)) + (argument_list + (positional_argument + (string) @string.regexp)) + (#eq? @_ref "regex") + (#eq? @_ident "compile") + (#offset! @string.regexp 0 1 0 -1)) diff --git a/queries/wing/injections.scm b/queries/wing/injections.scm index 2f0e58eb6..bd3fdaec5 100644 --- a/queries/wing/injections.scm +++ b/queries/wing/injections.scm @@ -1,2 +1,15 @@ ((comment) @injection.content (#set! injection.language "comment")) + +(call + (reference + (nested_identifier + object: (reference) @_ref + property: (member_identifier) @_ident)) + (argument_list + (positional_argument + (string) @injection.content)) + (#eq? @_ref "regex") + (#eq? @_ident "compile") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "regex")) diff --git a/tests/query/highlights/wing/class.w b/tests/query/highlights/wing/class.w index 9f76b16e8..1507d7574 100644 --- a/tests/query/highlights/wing/class.w +++ b/tests/query/highlights/wing/class.w @@ -1,12 +1,13 @@ bring cloud; -// <- @keyword +// <- @keyword.import +// ^ @module class Foo { // <- @keyword.type // ^ @type // ^ @punctuation.bracket name: str; -//^ @variable.member +//^ @property // ^ @type.builtin // ^ @punctuation.delimiter new(name: str) { @@ -14,6 +15,7 @@ class Foo { // ^ @variable this.name = name; // ^ @punctuation.delimiter +// ^ @variable.member // ^ @operator } } |
