From bcb6c20a84b6ac6697bf2a4b5d0b78832bcfea62 Mon Sep 17 00:00:00 2001 From: CalebLarsen <43345286+CalebLarsen@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:41:28 -0500 Subject: [PATCH] queries: Add locals.scm for C. Improve C parameter highlights (#13876) --- runtime/queries/c/highlights.scm | 29 ++++++++++++++++++++++-- runtime/queries/c/locals.scm | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 runtime/queries/c/locals.scm diff --git a/runtime/queries/c/highlights.scm b/runtime/queries/c/highlights.scm index 00d01e081..8e499dd61 100644 --- a/runtime/queries/c/highlights.scm +++ b/runtime/queries/c/highlights.scm @@ -128,11 +128,36 @@ (call_expression (argument_list (identifier) @variable)) (function_declarator declarator: [(identifier) (field_identifier)] @function) + +; Up to 6 layers of declarators (parameter_declaration declarator: (identifier) @variable.parameter) (parameter_declaration - (pointer_declarator - declarator: (identifier) @variable.parameter)) + (_ + (identifier) @variable.parameter)) +(parameter_declaration + (_ + (_ + (identifier) @variable.parameter))) +(parameter_declaration + (_ + (_ + (_ + (identifier) @variable.parameter)))) +(parameter_declaration + (_ + (_ + (_ + (_ + (identifier) @variable.parameter))))) +(parameter_declaration + (_ + (_ + (_ + (_ + (_ + (identifier) @variable.parameter)))))) + (preproc_function_def name: (identifier) @function.special) diff --git a/runtime/queries/c/locals.scm b/runtime/queries/c/locals.scm new file mode 100644 index 000000000..bc672c5e2 --- /dev/null +++ b/runtime/queries/c/locals.scm @@ -0,0 +1,38 @@ +;; Scopes +(function_definition) @local.scope + +;; Definitions + +; Parameters +; Up to 6 layers of declarators +(parameter_declaration + (identifier) @local.definition.variable.parameter) +(parameter_declaration + (_ + (identifier) @local.definition.variable.parameter)) +(parameter_declaration + (_ + (_ + (identifier) @local.definition.variable.parameter))) +(parameter_declaration + (_ + (_ + (_ + (identifier) @local.definition.variable.parameter)))) +(parameter_declaration + (_ + (_ + (_ + (_ + (identifier) @local.definition.variable.parameter))))) +(parameter_declaration + (_ + (_ + (_ + (_ + (_ + (identifier) @local.definition.variable.parameter)))))) + +;; References + +(identifier) @local.reference