Unnamed repository; edit this file 'description' to name the repository.
queries: Add locals.scm for C. Improve C parameter highlights (#13876)
CalebLarsen 8 months ago
parent f7ab5ec · commit bcb6c20
-rw-r--r--runtime/queries/c/highlights.scm29
-rw-r--r--runtime/queries/c/locals.scm38
2 files changed, 65 insertions, 2 deletions
diff --git a/runtime/queries/c/highlights.scm b/runtime/queries/c/highlights.scm
index 00d01e08..8e499dd6 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 00000000..bc672c5e
--- /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