From 70bbbd7d193a7928c9b621af9a7e192ef8251f6b Mon Sep 17 00:00:00 2001 From: Joey Hain Date: Fri, 3 Nov 2023 14:21:01 -0700 Subject: [PATCH] add highlight scope for type parameters (#8660) * rust: add highlight scope for type parameters * handle optional type parameters --- book/src/themes.md | 1 + runtime/queries/rust/highlights.scm | 7 +++++++ runtime/queries/rust/locals.scm | 15 ++++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/book/src/themes.md b/book/src/themes.md index 661210765..a62c07fee 100644 --- a/book/src/themes.md +++ b/book/src/themes.md @@ -155,6 +155,7 @@ We use a similar set of scopes as - `type` - Types - `builtin` - Primitive types provided by the language (`int`, `usize`) + - `parameter` - Generic type parameters (`T`) - `enum` - `variant` - `constructor` diff --git a/runtime/queries/rust/highlights.scm b/runtime/queries/rust/highlights.scm index bf2fde499..47e57e800 100644 --- a/runtime/queries/rust/highlights.scm +++ b/runtime/queries/rust/highlights.scm @@ -9,6 +9,13 @@ ; Types ; ------- +(type_parameters + (type_identifier) @type.parameter) +(constrained_type_parameter + left: (type_identifier) @type.parameter) +(optional_type_parameter + name: (type_identifier) @type.parameter) + ; --- ; Primitives ; --- diff --git a/runtime/queries/rust/locals.scm b/runtime/queries/rust/locals.scm index 75e5d181c..cb75d1557 100644 --- a/runtime/queries/rust/locals.scm +++ b/runtime/queries/rust/locals.scm @@ -2,6 +2,12 @@ [ (function_item) + (struct_item) + (enum_item) + (union_item) + (type_item) + (trait_item) + (impl_item) (closure_expression) (block) ] @local.scope @@ -11,8 +17,15 @@ (parameter (identifier) @local.definition) +(type_parameters + (type_identifier) @local.definition) +(constrained_type_parameter + left: (type_identifier) @local.definition) +(optional_type_parameter + name: (type_identifier) @local.definition) + (closure_parameters (identifier) @local.definition) ; References (identifier) @local.reference - +(type_identifier) @local.reference