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