@@ -1,5 +1,10 @@
1+; Upstream: https://github.com/alex-pinkus/tree-sitter-swift/blob/8d2fd80e3322df51e3f70952e60d57f5d4077eb8/queries/highlights.scm
4+ ["\\(" ")"] @punctuation.special)
1−[ "." ";" ":" "," ] @punctuation.delimiter
6+["." ";" ":" "," ] @punctuation.delimiter
2−[ "\\(" "(" ")" "[" "]" "{" "}"] @punctuation.bracket ; TODO: "\\(" ")" in interpolations should be @punctuation.special
7+["(" ")" "[" "]" "{" "}"] @punctuation.bracket ; TODO: "\\(" ")" in interpolations should be @punctuation.special
4; Identifiers
9; Identifiers
5(attribute) @variable
10(attribute) @variable
@@ -18,7 +23,7 @@
20(function_declaration (simple_identifier) @function.method)
25(function_declaration (simple_identifier) @function.method)
21−(function_declaration ["init" @constructor])
26+(function_declaration "init" @constructor)
22(throws) @keyword
27(throws) @keyword
23"async" @keyword
28"async" @keyword
24(where_keyword) @keyword
29(where_keyword) @keyword
@@ -27,16 +32,21 @@
27(type_parameter (type_identifier) @variable.parameter)
32(type_parameter (type_identifier) @variable.parameter)
28(inheritance_constraint (identifier (simple_identifier) @variable.parameter))
33(inheritance_constraint (identifier (simple_identifier) @variable.parameter))
29(equality_constraint (identifier (simple_identifier) @variable.parameter))
34(equality_constraint (identifier (simple_identifier) @variable.parameter))
30−(non_binding_pattern bound_identifier: (simple_identifier)) @variable
35+(pattern bound_identifier: (simple_identifier)) @variable
33 "typealias"
38 "typealias"
37 "protocol"
43 "protocol"
38 "extension"
44 "extension"
39 "indirect"
45 "indirect"
@@ -46,12 +56,12 @@
46 (modify_specifier)
56 (modify_specifier)
49−(class_body (property_declaration (value_binding_pattern (non_binding_pattern (simple_identifier) @variable.other.member))))
59+(class_body (property_declaration (pattern (simple_identifier) @variable.other.member)))
50−(protocol_property_declaration (value_binding_pattern (non_binding_pattern (simple_identifier) @variable.other.member)))
60+(protocol_property_declaration (pattern (simple_identifier) @variable.other.member))
52−(import_declaration ["import" @keyword.control.import])
62+(import_declaration "import" @keyword.control.import)
54−(enum_entry ["case" @keyword])
64+(enum_entry "case" @keyword)
56; Function calls
66; Function calls
57(call_expression (simple_identifier) @function) ; foo()
67(call_expression (simple_identifier) @function) ; foo()
@@ -66,8 +76,8 @@
66(diagnostic) @function.macro
76(diagnostic) @function.macro
68; Statements
78; Statements
69−(for_statement ["for" @keyword.control.repeat])
79+(for_statement "for" @keyword.control.repeat)
70−(for_statement ["in" @keyword.control.repeat])
80+(for_statement "in" @keyword.control.repeat)
71(for_statement item: (simple_identifier) @variable)
81(for_statement item: (simple_identifier) @variable)
72(else) @keyword
82(else) @keyword
73(as_operator) @keyword
83(as_operator) @keyword
@@ -75,15 +85,14 @@
75["while" "repeat" "continue" "break"] @keyword.control.repeat
85["while" "repeat" "continue" "break"] @keyword.control.repeat
77["let" "var"] @keyword
87["let" "var"] @keyword
78−(non_binding_pattern (simple_identifier) @variable)
80−(guard_statement ["guard" @keyword.control.conditional])
89+(guard_statement "guard" @keyword.control.conditional)
81−(if_statement ["if" @keyword.control.conditional])
90+(if_statement "if" @keyword.control.conditional)
82−(switch_statement ["switch" @keyword.control.conditional])
91+(switch_statement "switch" @keyword.control.conditional)
83−(switch_entry ["case" @keyword])
92+(switch_entry "case" @keyword)
84−(switch_entry ["fallthrough" @keyword])
93+(switch_entry "fallthrough" @keyword)
85(switch_entry (default_keyword) @keyword)
94(switch_entry (default_keyword) @keyword)
86−"return" @keyword.control.return
95+"return" @keyword.return
87(ternary_expression
96(ternary_expression
88 ["?" ":"] @keyword.control.conditional)
97 ["?" ":"] @keyword.control.conditional)
@@ -92,8 +101,8 @@
92(statement_label) @label
101(statement_label) @label
94; Comments
103; Comments
95−(comment) @comment.line
104+(comment) @comment
96−(multiline_comment) @comment.block
105+(multiline_comment) @comment
98; String literals
107; String literals
99(line_str_text) @string
108(line_str_text) @string
@@ -101,58 +110,62 @@
101(multi_line_str_text) @string
110(multi_line_str_text) @string
102(raw_str_part) @string
111(raw_str_part) @string
103(raw_str_end_part) @string
112(raw_str_end_part) @string
104−(raw_str_interpolation_start) @string.special
113+(raw_str_interpolation_start) @punctuation.special
105["\"" "\"\"\""] @string
114["\"" "\"\"\""] @string
107; Lambda literals
116; Lambda literals
108−(lambda_literal ["in" @keyword.operator])
117+(lambda_literal "in" @keyword.operator)
110; Basic literals
119; Basic literals
111−(integer_literal) @constant.numeric.integer
113− (hex_literal)
121+ (hex_literal)
114− (oct_literal)
122+ (oct_literal)
115− (bin_literal)
123+ (bin_literal)
116] @constant.numeric
124] @constant.numeric
125+(integer_literal) @constant.numeric.integer
117(real_literal) @constant.numeric.float
126(real_literal) @constant.numeric.float
118(boolean_literal) @constant.builtin.boolean
127(boolean_literal) @constant.builtin.boolean
119"nil" @variable.builtin
128"nil" @variable.builtin
131+(type_annotation "!" @type)
133+(simple_identifier) @variable
121; Operators
135; Operators
122−(custom_operator) @operator
157] @operator
171] @operator