add highlight scope for type parameters (#8660)
* rust: add highlight scope for type parameters
* handle optional type parameters
commit70bbbd7d193a7928c9b621af9a7e192ef8251f6b
authorJoey Hain <joey@sigmacomputing.com>
dateFri 3 Nov 2023, 14:21 (3 years ago)
parentae6a0a9
book/src/themes.md+1
@@ -155,6 +155,7 @@ We use a similar set of scopes as
155155
156156- `type` - Types
157157 - `builtin` - Primitive types provided by the language (`int`, `usize`)
158+ - `parameter` - Generic type parameters (`T`)
158159 - `enum`
159160 - `variant`
160161- `constructor`
runtime/queries/rust/highlights.scm+7
@@ -9,6 +9,13 @@
99; Types
1010; -------
1111
12+(type_parameters
13+ (type_identifier) @type.parameter)
14+(constrained_type_parameter
15+ left: (type_identifier) @type.parameter)
16+(optional_type_parameter
17+ name: (type_identifier) @type.parameter)
18+
1219; ---
1320; Primitives
1421; ---
runtime/queries/rust/locals.scm+14−1
@@ -2,6 +2,12 @@
22
33[
44 (function_item)
5+ (struct_item)
6+ (enum_item)
7+ (union_item)
8+ (type_item)
9+ (trait_item)
10+ (impl_item)
511 (closure_expression)
612 (block)
713] @local.scope
@@ -11,8 +17,15 @@
1117(parameter
1218 (identifier) @local.definition)
1319
20+(type_parameters
21+ (type_identifier) @local.definition)
22+(constrained_type_parameter
23+ left: (type_identifier) @local.definition)
24+(optional_type_parameter
25+ name: (type_identifier) @local.definition)
26+
1427(closure_parameters (identifier) @local.definition)
1528
1629; References
1730(identifier) @local.reference
18−
31+(type_identifier) @local.reference