changeset 6787:282921f22a00

queries: Rewrite all locals
author Michael Davis <mcarsondavis@gmail.com>
date Mon, 24 Feb 2025 12:46:34 -0500
parents 6a72d595f89b
children 609d6c4223f6
files runtime/queries/_javascript/locals.scm runtime/queries/_typescript/locals.scm runtime/queries/ada/locals.scm runtime/queries/bibtex/locals.scm runtime/queries/cairo/locals.scm runtime/queries/capnp/locals.scm runtime/queries/circom/locals.scm runtime/queries/dart/locals.scm runtime/queries/ecma/locals.scm runtime/queries/elm/locals.scm runtime/queries/erlang/locals.scm runtime/queries/fsharp/locals.scm runtime/queries/gleam/locals.scm runtime/queries/gn/locals.scm runtime/queries/go/locals.scm runtime/queries/gren/locals.scm runtime/queries/groovy/locals.scm runtime/queries/hare/locals.scm runtime/queries/haskell-persistent/locals.scm runtime/queries/haskell/locals.scm runtime/queries/inko/locals.scm runtime/queries/jq/locals.scm runtime/queries/julia/locals.scm runtime/queries/just/locals.scm runtime/queries/koka/locals.scm runtime/queries/kotlin/locals.scm runtime/queries/koto/locals.scm runtime/queries/llvm/locals.scm runtime/queries/matlab/locals.scm runtime/queries/ocaml/locals.scm runtime/queries/ponylang/locals.scm runtime/queries/purescript/locals.scm runtime/queries/python/locals.scm runtime/queries/r/locals.scm runtime/queries/rescript/locals.scm runtime/queries/ruby/locals.scm runtime/queries/rust/locals.scm runtime/queries/scala/locals.scm runtime/queries/smali/locals.scm runtime/queries/solidity/locals.scm runtime/queries/sway/locals.scm runtime/queries/swift/locals.scm runtime/queries/tact/locals.scm runtime/queries/teal/locals.scm runtime/queries/tera/locals.scm runtime/queries/thrift/locals.scm runtime/queries/tlaplus/locals.scm runtime/queries/verilog/locals.scm runtime/queries/wesl/locals.scm runtime/queries/wren/locals.scm runtime/queries/yara/locals.scm
diffstat 50 files changed, 162 insertions(+), 536 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/queries/_javascript/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/_javascript/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -6,9 +6,9 @@
 
 ; (i)
 (formal_parameters 
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 ; (i = 1)
 (formal_parameters 
   (assignment_pattern
-    left: (identifier) @local.definition))
+    left: (identifier) @local.definition.variable.parameter))
--- a/runtime/queries/_typescript/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/_typescript/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -11,7 +11,7 @@
 ;------------
 
 (type_parameter
-  name: (type_identifier) @local.definition)
+  name: (type_identifier) @local.definition.type.parameter)
 
 ; Javascript and Typescript Treesitter grammars deviate when defining the
 ; tree structure for parameters, so we need to address them in each specific
@@ -20,14 +20,15 @@
 ; (i: t)
 ; (i: t = 1)
 (required_parameter
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 ; (i?: t)
 ; (i?: t = 1) // Invalid but still possible to highlight.
 (optional_parameter
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 ; References
 ;-----------
 
 (type_identifier) @local.reference
+(identifier) @local.reference
--- a/runtime/queries/ada/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/ada/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -5,25 +5,6 @@
 (subprogram_body) @local.scope
 (block_statement) @local.scope
 
-(with_clause (_) @local.definition)
-(procedure_specification name: (_) @local.definition)
-(function_specification name: (_) @local.definition)
-(package_declaration name: (_) @local.definition)
-(package_body name: (_) @local.definition)
-(generic_instantiation . name: (_) @local.definition)
-(component_declaration . (identifier) @local.definition)
-(exception_declaration . (identifier) @local.definition)
-(formal_object_declaration . (identifier) @local.definition)
-(object_declaration . (identifier) @local.definition)
-(parameter_specification . (identifier) @local.definition)
-(full_type_declaration . (identifier) @local.definition)
-(private_type_declaration . (identifier) @local.definition)
-(private_extension_declaration . (identifier) @local.definition)
-(incomplete_type_declaration . (identifier) @local.definition)
-(protected_type_declaration . (identifier) @local.definition)
-(formal_complete_type_declaration . (identifier) @local.definition)
-(formal_incomplete_type_declaration . (identifier) @local.definition)
-(task_type_declaration . (identifier) @local.definition)
-(subtype_declaration . (identifier) @local.definition)
+(parameter_specification . (identifier) @local.definition.variable.parameter)
 
 (identifier) @local.reference
--- a/runtime/queries/cairo/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/cairo/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -14,14 +14,14 @@
 ; Definitions
 
 (parameter
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (type_parameters
-  (type_identifier) @local.definition)
+  (type_identifier) @local.definition.type.parameter)
 (constrained_type_parameter
-  left: (type_identifier) @local.definition)
+  left: (type_identifier) @local.definition.type.parameter)
 
-(closure_parameters (identifier) @local.definition)
+(closure_parameters (identifier) @local.definition.variable.parameter)
 
 ; References
 (identifier) @local.reference
--- a/runtime/queries/capnp/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/capnp/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -30,67 +30,7 @@
 
 ; Definitions
 
-(annotation_definition_identifier) @local.definition
-
-(const_identifier) @local.definition
-
-(enum (enum_identifier) @local.definition)
-
-[
-  (enum_member)
-  (field_identifier)
-] @local.definition
-
-(method_identifier) @local.definition
-
-(namespace) @local.definition
-
 [
   (param_identifier)
   (return_identifier)
-] @local.definition
-
-(group (type_identifier) @local.definition)
-
-(struct (type_identifier) @local.definition)
-
-(union (type_identifier) @local.definition)
-
-(interface (type_identifier) @local.definition)
-
-; Generics Related (don't know how to combine these)
-
-(struct
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
-
-(interface
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
-
-(method
-  (implicit_generics
-    (implicit_generic_parameters
-      (generic_identifier) @local.definition)))
-
-(method
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
-
-(annotation
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
-
-(replace_using
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
-
-(return_type
-  (generics
-    (generic_parameters
-      (generic_identifier) @local.definition)))
+] @local.definition.variable.parameter
--- a/runtime/queries/circom/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/circom/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -3,7 +3,7 @@
 (main_component_definition) @local.scope
 (block_statement) @local.scope
 
-(parameter name: (identifier) @local.definition) @local.definition
+(parameter name: (identifier) @local.definition.variable.parameter)
 
 
-(identifier) @local.reference
\ No newline at end of file
+(identifier) @local.reference
--- a/runtime/queries/dart/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/dart/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -12,7 +12,7 @@
 ;------------
 
 (class_definition
- body: (_) @local.definition)
+ body: (_) @local.definition.type)
 
 ; References
 ;------------
--- a/runtime/queries/ecma/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/ecma/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -12,30 +12,9 @@
 ; Definitions
 ;------------
 
-; ...i
-(rest_pattern
-  (identifier) @local.definition)
-
-; { i }
-(object_pattern
-  (shorthand_property_identifier_pattern) @local.definition)
-
-; { a: i }
-(object_pattern
-  (pair_pattern
-    value: (identifier) @local.definition))
-
-; [ i ]
-(array_pattern
-  (identifier) @local.definition)
-
 ; i => ...
 (arrow_function
-  parameter: (identifier) @local.definition)
-
-; const/let/var i = ...
-(variable_declarator
-  name: (identifier) @local.definition)
+  parameter: (identifier) @local.definition.variable.parameter)
 
 ; References
 ;------------
--- a/runtime/queries/elm/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/elm/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -6,8 +6,8 @@
 (infix_declaration) @local.scope
 (let_in_expr) @local.scope
 
-(function_declaration_left (lower_pattern (lower_case_identifier)) @local.definition)
-(function_declaration_left (lower_case_identifier) @local.definition)
+(function_declaration_left (lower_pattern (lower_case_identifier)) @local.definition.function)
+(function_declaration_left (lower_case_identifier) @local.definition.function)
 
 (value_expr(value_qid(upper_case_identifier)) @local.reference)
 (value_expr(value_qid(lower_case_identifier)) @local.reference)
--- a/runtime/queries/erlang/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/erlang/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,30 +1,25 @@
 ; Specs and Callbacks
 (attribute
   (stab_clause
-    pattern: (arguments (variable)? @local.definition)
+    pattern: (arguments (variable)? @local.definition.variable.parameter)
     ; If a spec uses a variable as the return type (and later a `when` clause to type it):
-    body: (variable)? @local.definition)) @local.scope
+    body: (variable)? @local.definition.variable.parameter)) @local.scope
 
 ; parametric `-type`s
 ((attribute
     name: (atom) @_type
     (arguments
       (binary_operator
-        left: (call (arguments (variable) @local.definition))
+        left: (call (arguments (variable) @local.definition.variable.parameter))
         operator: "::") @local.scope))
  (#match? @_type "(type|opaque)"))
 
-; macros
-((attribute
-   name: (atom) @_define
-   (arguments
-     (call (arguments (variable) @local.definition)))) @local.scope
- (#eq? @_define "define"))
-
 ; `fun`s
-(anonymous_function (stab_clause pattern: (arguments (variable) @local.definition))) @local.scope
+(anonymous_function (stab_clause pattern: (arguments (variable) @local.definition.variable.parameter))) @local.scope
 
 ; Ordinary functions
-(function_clause pattern: (arguments (variable) @local.definition)) @local.scope
+((function_clause
+   pattern: (arguments (variable) @local.definition.variable.parameter)) @local.scope
+ (#not-match? @local.definition.variable.parameter "^_"))
 
 (variable) @local.reference
--- a/runtime/queries/fsharp/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/fsharp/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -6,27 +6,16 @@
   (function_or_value_defn)
 ] @local.scope
 
-(value_declaration_left
-  .
-  [
-   (_ (identifier) @local.definition)
-   (_ (_ (identifier) @local.definition))
-   (_ (_ (_ (identifier) @local.definition)))
-   (_ (_ (_ (_ (identifier) @local.definition))))
-   (_ (_ (_ (_ (_ (identifier) @local.definition)))))
-   (_ (_ (_ (_ (_ (_ (identifier) @local.definition))))))
-  ])
-
 (function_declaration_left
   .
-  ((_) @local.definition)
+  ((_) @local.definition.function)
   ((argument_patterns
     [
-     (_ (identifier) @local.definition)
-     (_ (_ (identifier) @local.definition))
-     (_ (_ (_ (identifier) @local.definition)))
-     (_ (_ (_ (_ (identifier) @local.definition))))
-     (_ (_ (_ (_ (_ (identifier) @local.definition)))))
-     (_ (_ (_ (_ (_ (_ (identifier) @local.definition))))))
+     (_ (identifier) @local.definition.variable.parameter)
+     (_ (_ (identifier) @local.definition.variable.parameter))
+     (_ (_ (_ (identifier) @local.definition.variable.parameter)))
+     (_ (_ (_ (_ (identifier) @local.definition.variable.parameter))))
+     (_ (_ (_ (_ (_ (identifier) @local.definition.variable.parameter)))))
+     (_ (_ (_ (_ (_ (_ (identifier) @local.definition.variable.parameter))))))
     ])
   ))
--- a/runtime/queries/gleam/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/gleam/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -4,12 +4,7 @@
 (case_clause) @local.scope
 
 ; Definitions
-(let pattern: (identifier) @local.definition)
-(function_parameter name: (identifier) @local.definition)
-(list_pattern (identifier) @local.definition)
-(list_pattern assign: (identifier) @local.definition)
-(tuple_pattern (identifier) @local.definition)
-(record_pattern_argument pattern: (identifier) @local.definition)
+(function_parameter name: (identifier) @local.definition.variable.parameter)
 
 ; References
 (identifier) @local.reference
--- a/runtime/queries/gn/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-; Copyright (C) 2021 Will Cassella ([email protected])
-; 
-; Licensed under the Apache License, Version 2.0 (the "License");
-; you may not use this file except in compliance with the License.
-; You may obtain a copy of the License at
-; 
-;         http://www.apache.org/licenses/LICENSE-2.0
-; 
-; Unless required by applicable law or agreed to in writing, software
-; distributed under the License is distributed on an "AS IS" BASIS,
-; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-; See the License for the specific language governing permissions and
-; limitations under the License.
-
-(source_file) @local.scope
-(assignment target: (identifier) @local.definition)
--- a/runtime/queries/go/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/go/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -10,26 +10,14 @@
 
 (type_parameter_list
   (parameter_declaration
-    name: (identifier) @local.definition))
-
-(parameter_declaration (identifier) @local.definition)
-(variadic_parameter_declaration (identifier) @local.definition)
+    name: (identifier) @local.definition.variable.parameter))
 
-(short_var_declaration
-  left: (expression_list
-          (identifier) @local.definition))
-
-(var_spec
-  (identifier) @local.definition)
-
-(for_statement
- (range_clause
-   left: (expression_list
-           (identifier) @local.definition)))
+(parameter_declaration (identifier) @local.definition.variable.parameter)
+(variadic_parameter_declaration (identifier) @local.definition.variable.parameter)
 
 (const_declaration
  (const_spec
-  name: (identifier) @local.definition))
+  name: (identifier) @local.definition.constant))
 
 ; References
 
--- a/runtime/queries/gren/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/gren/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -6,8 +6,8 @@
 (infix_declaration) @local.scope
 (let_in_expr) @local.scope
 
-(function_declaration_left (lower_pattern (lower_case_identifier)) @local.definition)
-(function_declaration_left (lower_case_identifier) @local.definition)
+(function_declaration_left (lower_pattern (lower_case_identifier)) @local.definition.function)
+(function_declaration_left (lower_case_identifier) @local.definition.function)
 
 (value_expr(value_qid(upper_case_identifier)) @local.reference)
 (value_expr(value_qid(lower_case_identifier)) @local.reference)
--- a/runtime/queries/groovy/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/groovy/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,6 +1,6 @@
 (function_definition) @local.scope
 
 (parameter
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable.parameter)
 
 (identifier) @local.reference
--- a/runtime/queries/hare/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/hare/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -3,17 +3,10 @@
 (function_declaration) @local.scope
 (compound_expression) @local.scope
 
-(global_binding
-  (identifier) @local.definition)
-(constant_binding
-  (identifier) @local.definition)
-(type_binding
-  (identifier) @local.definition)
-
 (function_declaration
-  (identifier) @local.definition)
+  (identifier) @local.definition.function)
 (function_declaration
-  (parameter (name) @local.definition))
+  (parameter (name) @local.definition.variable.parameter))
 
 (identifier) @local.reference
 
--- a/runtime/queries/haskell-persistent/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-(fields (variable)) @local.definition
--- a/runtime/queries/haskell/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/haskell/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,4 +1,3 @@
-(signature name: (variable)) @local.definition
-(function name: (variable)) @local.definition
-(pat_name (variable)) @local.definition
+(signature name: (variable) @local.definition.function)
+(function name: (variable) @local.definition.function)
 (exp_name (variable)) @local.reference
--- a/runtime/queries/inko/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/inko/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -3,8 +3,7 @@
   (block)
 ] @local.scope
 
-(argument name: _ @local.definition)
-(define_variable name: _ @local.definition)
-(named_argument name: _ @local.definition)
+(argument name: _ @local.definition.variable.parameter)
+(named_argument name: _ @local.definition.variable.parameter)
 
 (identifier) @local.reference
--- a/runtime/queries/jq/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/jq/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,10 +1,10 @@
 ;; From nvim-treesitter, contributed by @ObserverOfTime et al.
 
 (funcdef
-  (identifier) @local.definition)
+  (identifier) @local.definition.function)
 
 (funcdefargs
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (funcname) @local.reference
 
--- a/runtime/queries/julia/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/julia/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -2,81 +2,30 @@
 ; Definitions
 ; -----------
 
-; Variables
-(assignment
-  (identifier) @local.definition)
-
-(assignment
-  (tuple_expression
-    (identifier) @local.definition))
-
 ; Constants
 (const_statement
   (assignment
-    . (identifier) @local.definition))
-
-; let/const bindings
-(let_binding
-  (identifier) @local.definition)
-
-(let_binding
-  (tuple_expression
-    (identifier) @local.definition))
-
-; For bindings
-(for_binding
-  (identifier) @local.definition)
-
-(for_binding
-  (tuple_expression
-    (identifier) @local.definition))
-
-; Types
-(struct_definition
-  name: (identifier) @local.definition)
-
-(abstract_definition
-  name: (identifier) @local.definition)
-
-(abstract_definition
-  name: (identifier) @local.definition)
-
-(type_parameter_list
-  (identifier) @local.definition)
-
-; Module imports
-(import_statement
-  (identifier) @local.definition)
+    . (identifier) @local.definition.constant))
 
 ; Parameters
 (parameter_list
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (optional_parameter
   .
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (slurp_parameter
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (typed_parameter
-  parameter: (identifier) @local.definition
+  parameter: (identifier) @local.definition.variable.parameter
   (_))
 
 ; Single parameter arrow function
 (function_expression
   .
-  (identifier) @local.definition)
-
-; Function/macro definitions
-(function_definition
-  name: (identifier) @local.definition) @local.scope
-
-(short_function_definition
-  name: (identifier) @local.definition) @local.scope
-
-(macro_definition
-  name: (identifier) @local.definition) @local.scope
+  (identifier) @local.definition.variable.parameter)
 
 ; ----------
 ; References
@@ -97,5 +46,8 @@
   (let_statement)
   (quote_statement)
   (do_clause)
+  (function_definition)
+  (short_function_definition)
+  (macro_definition)
 ] @local.scope 
 
--- a/runtime/queries/just/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/just/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -8,19 +8,19 @@
 ; Definitions
 
 (alias
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable)
 
 (assignment
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable)
 
 (mod
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.namespace)
 
 (recipe_parameter
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable.parameter)
 
 (recipe
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.function)
 
 ; References
 
--- a/runtime/queries/koka/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/koka/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -2,29 +2,24 @@
 
 (block) @local.scope
 
-(pattern
-  (identifier
-    (varid) @local.definition))
-
-(decl
-  (apattern
-    (pattern
-      (identifier
-        (varid) @local.definition))))
+(pparameter
+  (pattern
+    (identifier
+      (varid) @local.definition.variable.parameter)))
 
 (puredecl
   (funid
     (identifier
-      (varid) @local.definition)))
+      (varid) @local.definition.function)))
 
 (puredecl
   (binder
     (identifier
-      (varid) @local.definition)))
+      (varid) @local.definition.function)))
 
 (decl
   (binder
     (identifier
-      (varid) @local.definition)))
+      (varid) @local.definition.function)))
 
 (identifier (varid) @local.reference)
--- a/runtime/queries/kotlin/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/kotlin/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -8,7 +8,7 @@
 ; Definitions
 
 (type_parameter
-  (type_identifier) @local.definition)
+  (type_identifier) @local.definition.type.parameter)
 
 ; References
 
--- a/runtime/queries/koto/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/koto/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -5,26 +5,20 @@
   body: (_) @local.scope)
 
 ; Definitions
-(assign
-  lhs: (identifier) @local.definition)
-
-(variable
-  (identifier) @local.definition)
-
 (arg
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 (arg
-  (variable (identifier)) @local.definition)
+  (variable (identifier)) @local.definition.parameter)
 
 (import_item
-  (identifier) @local.definition)
+  (identifier) @local.definition.namespace)
 
 (entry_block
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.other.member)
 
 (entry_inline
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.other.member)
 
 ; References
 (identifier) @local.reference
--- a/runtime/queries/llvm/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/llvm/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -5,10 +5,7 @@
 ; Definitions
 
 (argument
-  (value (var (local_var) @local.definition)))
-
-(instruction
-  (local_var) @local.definition)
+  (value (var (local_var) @local.definition.variable.parameter)))
 
 ; References
 (local_var) @local.reference
--- a/runtime/queries/matlab/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/matlab/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,19 +1,6 @@
-(function_definition name: (identifier) @local.definition ?) @local.scope
-(function_arguments (identifier)* @local.definition)
-
-(lambda (arguments (identifier) @local.definition)) @local.scope
+(function_definition name: (identifier) @local.definition.function ?) @local.scope
+(function_arguments (identifier)* @local.definition.variable.parameter)
 
-(assignment left: ((function_call
-                     name: (identifier) @local.definition)))
-(assignment left: ((field_expression . [(function_call
-                                          name: (identifier) @local.definition)
-                                        (identifier) @local.definition])))
-(assignment left: (_) @local.definition)
-(assignment (multioutput_variable (_) @local.definition))
-
-(iterator . (identifier) @local.definition)
-(global_operator (identifier) @local.definition)
-(persistent_operator (identifier) @local.definition)
-(catch_clause (identifier) @local.definition)
+(lambda (arguments (identifier) @local.definition.variable.parameter)) @local.scope
 
 (identifier) @local.reference
--- a/runtime/queries/ocaml/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/ocaml/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -16,7 +16,7 @@
 ; Definitions
 ;------------
 
-(value_pattern) @local.definition
+(value_pattern) @local.definition.variable.parameter
 
 ; References
 ;-----------
--- a/runtime/queries/ponylang/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/ponylang/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -23,12 +23,8 @@
 (try_block then_block: (block) @local.scope)
 (with else_block: (block) @local.scope)
 
-(field name: (identifier) @local.definition)
-(local name: (identifier) @local.definition)
-(param name: (identifier) @local.definition)
-(lambdaparam name: (identifier) @local.definition)
-("for" element: (idseq (identifier) @local.definition))
-(withelem name: (idseq (identifier) @local.definition))
+(param name: (identifier) @local.definition.variable.parameter)
+(lambdaparam name: (identifier) @local.definition.variable.parameter)
 
 ; only lower case identifiers are references
 (
--- a/runtime/queries/purescript/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/purescript/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,4 +1,3 @@
-(signature name: (variable)) @local.definition
-(function name: (variable)) @local.definition
-(pat_name (variable)) @local.definition
+(signature name: (variable) @local.definition.function)
+(function name: (variable) @local.definition.function)
 (exp_name (variable)) @local.reference
--- a/runtime/queries/python/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/python/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -10,33 +10,33 @@
 
 ; Parameters
 (parameters
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 (parameters
   (typed_parameter
-    (identifier) @local.definition))
+    (identifier) @local.definition.variable.parameter))
 (parameters
   (default_parameter 
-    name: (identifier) @local.definition))
+    name: (identifier) @local.definition.variable.parameter))
 (parameters 
   (typed_default_parameter 
-    name: (identifier) @local.definition))
+    name: (identifier) @local.definition.variable.parameter))
 (parameters
   (list_splat_pattern ; *args
-    (identifier) @local.definition))
+    (identifier) @local.definition.variable.parameter))
 (parameters
   (dictionary_splat_pattern ; **kwargs
-    (identifier) @local.definition))
+    (identifier) @local.definition.variable.parameter))
     
 (lambda_parameters
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
   
 ; Imports
 (import_statement
   name: (dotted_name 
-    (identifier) @local.definition))
+    (identifier) @local.definition.namespace))
 
 (aliased_import
-  alias: (identifier) @local.definition)
+  alias: (identifier) @local.definition.namespace)
 
 ;; References
 
--- a/runtime/queries/r/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/r/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -2,10 +2,6 @@
 
 (function_definition) @local.scope
 
-(formal_parameters (identifier) @local.definition)
-
-(left_assignment name: (identifier) @local.definition)
-(equals_assignment name: (identifier) @local.definition)
-(right_assignment name: (identifier) @local.definition)
+(formal_parameters (identifier) @local.definition.variable.parameter)
 
 (identifier) @local.reference
--- a/runtime/queries/rescript/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-(switch_expression) @local.scope
-
-; Definitions
-;------------
-(type_declaration) @local.definition
-(let_binding) @local.definition
-(module_declaration) @local.definition
--- a/runtime/queries/ruby/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/ruby/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -7,21 +7,14 @@
   (do_block)
 ] @local.scope
 
-(block_parameter (identifier) @local.definition)
-(block_parameters (identifier) @local.definition)
-(destructured_parameter (identifier) @local.definition)
-(hash_splat_parameter (identifier) @local.definition)
-(lambda_parameters (identifier) @local.definition)
-(method_parameters (identifier) @local.definition)
-(splat_parameter (identifier) @local.definition)
-
-(keyword_parameter name: (identifier) @local.definition)
-(optional_parameter name: (identifier) @local.definition)
+(block_parameter (identifier) @local.definition.variable.parameter)
+(block_parameters (identifier) @local.definition.variable.parameter)
+(destructured_parameter (identifier) @local.definition.variable.parameter)
+(hash_splat_parameter (identifier) @local.definition.variable.parameter)
+(lambda_parameters (identifier) @local.definition.variable.parameter)
+(method_parameters (identifier) @local.definition.variable.parameter)
+(splat_parameter (identifier) @local.definition.variable.parameter)
+(keyword_parameter name: (identifier) @local.definition.variable.parameter)
+(optional_parameter name: (identifier) @local.definition.variable.parameter)
 
 (identifier) @local.reference
-
-(assignment left: (identifier) @local.definition)
-(operator_assignment left: (identifier) @local.definition)
-(left_assignment_list (identifier) @local.definition)
-(rest_assignment (identifier) @local.definition)
-(destructured_left_assignment (identifier) @local.definition)
--- a/runtime/queries/rust/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/rust/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -15,17 +15,9 @@
 ; Definitions
 
 (parameter
-  (identifier) @local.definition)
+  pattern: (identifier) @local.definition.variable.parameter)
 
-(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)
+(closure_parameters (identifier) @local.definition.variable.parameter)
 
 ; References
 (identifier) @local.reference
-(type_identifier) @local.reference
--- a/runtime/queries/scala/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/scala/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -3,27 +3,12 @@
 
 
 (function_declaration
-      name: (identifier) @local.definition) @local.scope
+      name: (identifier) @local.definition.function) @local.scope
 
 (function_definition
-      name: (identifier) @local.definition)
+      name: (identifier) @local.definition.function)
 
 (parameter
-  name: (identifier) @local.definition)
-
-(binding
-  name: (identifier) @local.definition)
-
-(val_definition
-  pattern: (identifier) @local.definition)
-
-(var_definition
-  pattern: (identifier) @local.definition)
-
-(val_declaration
-  name: (identifier) @local.definition)
-
-(var_declaration
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable.parameter)
 
 (identifier) @local.reference
--- a/runtime/queries/smali/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/smali/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -16,27 +16,7 @@
   (jmp_label)
 ] @local.reference
 
-(enum_reference
-  (field_identifier) @local.definition)
-
-((field_definition
-  (access_modifiers) @_mod
-  (field_identifier) @local.definition)
-  (#eq? @_mod "enum"))
-
-(field_definition
-  (field_identifier) @local.definition
-  (field_type) @local.definition)
+(method_definition
+  (method_signature (method_identifier) @local.definition.function.method))
 
-(annotation_key) @local.definition
-
-(method_definition
-  (method_signature (method_identifier) @local.definition))
-
-(param_identifier) @local.definition
-
-(annotation_directive
-  (class_identifier) @local.definition)
-
-(class_directive
-  (class_identifier) @local.definition)
+(param_identifier) @local.definition.variable.parameter
--- a/runtime/queries/solidity/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/solidity/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -2,8 +2,7 @@
 (constructor_definition) @local.scope
 (block_statement) @local.scope
 
-(function_definition (parameter name: (identifier) @local.definition))
-(constructor_definition (parameter name: (identifier) @local.definition))
-(variable_declaration name: (identifier) @local.definition)
+(function_definition (parameter name: (identifier) @local.definition.variable.parameter))
+(constructor_definition (parameter name: (identifier) @local.definition.variable.parameter))
 
 (identifier) @local.reference
--- a/runtime/queries/sway/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/sway/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -9,9 +9,9 @@
 ; Definitions
 
 (parameter
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
-(closure_parameters (identifier) @local.definition)
+(closure_parameters (identifier) @local.definition.variable.parameter)
 
 ; References
 (identifier) @local.reference
--- a/runtime/queries/swift/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/swift/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,6 +1,6 @@
 ; Upstream: https://github.com/alex-pinkus/tree-sitter-swift/blob/57c1c6d6ffa1c44b330182d41717e6fe37430704/queries/locals.scm
-(import_declaration (identifier) @definition.import)
-(function_declaration name: (simple_identifier) @definition.function)
+(import_declaration (identifier) @local.definition.namespace)
+(function_declaration name: (simple_identifier) @local.definition.function)
 
 ; Scopes
 [
--- a/runtime/queries/tact/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/tact/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -14,14 +14,11 @@
 ; Definitions  @local.definition
 ; ------------------------------
 
-(let_statement
-  name: (identifier) @local.definition)
-
 (parameter
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.variable.parameter)
 
 (constant
-  name: (identifier) @local.definition)
+  name: (identifier) @local.definition.constant)
 
 ; References   @local.reference
 ; -----------------------------
--- a/runtime/queries/teal/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/teal/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,17 +1,17 @@
 
 (var_declaration
   declarators: (var_declarators
-  (var (identifier)) @local.definition))
+  (var (identifier)) @local.definition.variable))
 
 (var_assignment
   variables: (assignment_variables
-    (var (identifier) @local.definition)))
+    (var (identifier) @local.definition.variable)))
 
-(arg name: (identifier) @local.definition)
+(arg name: (identifier) @local.definition.variable.parameter)
 
 (anon_function) @local.scope
 ((function_statement
-  (function_name) @local.definition) @local.scope)
+  (function_name) @local.definition.function) @local.scope)
 
 (program) @local.scope
 (if_statement) @local.scope
--- a/runtime/queries/tera/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/tera/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,7 +1,7 @@
 (identifier) @local.reference
 (assignment_expression
-   left: (identifier) @local.definition)
+   left: (identifier) @local.definition.variable)
 (macro_statement
   (parameter_list
-    (identifier) @local.definition))
+    (identifier) @local.definition.variable.parameter))
 (macro_statement) @local.scope
--- a/runtime/queries/thrift/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/thrift/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -11,41 +11,4 @@
 
 ; Definitions
 
-(annotation_identifier) @local.definition
-
-; (const_definition (identifier) @definition.constant)
-
-; (enum_definition "enum"
-;   . (identifier) @definition.enum
-;   "{" (identifier) @definition.constant "}")
-
-; (senum_definition "senum"
-;   . (identifier) @definition.enum)
-
-; (field (identifier) @definition.field)
-
-; (function_definition (identifier) @definition.function)
-
-; (namespace_declaration
-;   "namespace" (namespace_scope)
-;   . (_) @definition.namespace
-;   (namespace_uri)?)
-
-; (parameter (identifier) @definition.parameter)
-
-; (struct_definition
-;   "struct" . (identifier) @definition.type)
-
-; (union_definition
-;   "union" . (identifier) @definition.type)
-
-; (exception_definition
-;   "exception" . (identifier) @definition.type)
-
-; (service_definition
-;   "service" . (identifier) @definition.type)
-
-; (interaction_definition
-;   "interaction" . (identifier) @definition.type)
-
-; (typedef_identifier) @definition.type
+(annotation_identifier) @local.definition.attribute
--- a/runtime/queries/tlaplus/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/tlaplus/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -15,22 +15,22 @@
 ] @local.scope
 
 ; Definitions
-(choose (identifier) @local.definition)
-(choose (tuple_of_identifiers (identifier) @local.definition))
-(constant_declaration (identifier) @local.definition)
-(constant_declaration (operator_declaration name: (_) @local.definition))
-(function_definition name: (identifier) @local.definition)
-(lambda (identifier) @local.definition)
-(module_definition name: (_) @local.definition)
-(module_definition parameter: (identifier) @local.definition)
-(module_definition parameter: (operator_declaration name: (_) @local.definition))
-(operator_definition name: (_) @local.definition)
-(operator_definition parameter: (identifier) @local.definition)
-(operator_definition parameter: (operator_declaration name: (_) @local.definition))
-(quantifier_bound (identifier) @local.definition)
-(quantifier_bound (tuple_of_identifiers (identifier) @local.definition))
-(unbounded_quantification (identifier) @local.definition)
-(variable_declaration (identifier) @local.definition)
+(choose (identifier) @local.definition.variable.parameter)
+(choose (tuple_of_identifiers (identifier) @local.definition.variable.parameter))
+(constant_declaration (identifier) @local.definition.constant)
+(constant_declaration (operator_declaration name: (_) @local.definition.constant))
+(function_definition name: (identifier) @local.definition.function)
+(lambda (identifier) @local.definition.function)
+(module_definition name: (_) @local.definition.namespace)
+(module_definition parameter: (identifier) @local.definition.variable.parameter)
+(module_definition parameter: (operator_declaration name: (_) @local.definition.variable.parameter))
+(operator_definition name: (_) @local.definition.operator)
+(operator_definition parameter: (identifier) @local.definition.variable.parameter)
+(operator_definition parameter: (operator_declaration name: (_) @local.definition.variable.parameter))
+(quantifier_bound (identifier) @local.definition.variable.parameter)
+(quantifier_bound (tuple_of_identifiers (identifier) @local.definition.variable.parameter))
+(unbounded_quantification (identifier) @local.definition.variable.parameter)
+(variable_declaration (identifier) @local.definition.variable.builtin)
 
 ; Proof scopes and definitions
 [
@@ -39,12 +39,12 @@
   (theorem)
 ] @local.scope
 
-(assume_prove (new (identifier) @local.definition))
-(assume_prove (new (operator_declaration name: (_) @local.definition)))
-(assumption name: (identifier) @local.definition)
-(pick_proof_step (identifier) @local.definition)
-(take_proof_step (identifier) @local.definition)
-(theorem name: (identifier) @local.definition)
+(assume_prove (new (identifier) @local.definition.variable.parameter))
+(assume_prove (new (operator_declaration name: (_) @local.definition.variable.parameter)))
+(assumption name: (identifier) @local.definition.constant)
+(pick_proof_step (identifier) @local.definition.variable.parameter)
+(take_proof_step (identifier) @local.definition.variable.parameter)
+(theorem name: (identifier) @local.definition.constant)
 
 ;PlusCal scopes and definitions
 [
@@ -54,10 +54,10 @@
   (pcal_with)
 ] @local.scope
 
-(pcal_macro_decl parameter: (identifier) @local.definition)
-(pcal_proc_var_decl (identifier) @local.definition)
-(pcal_var_decl (identifier) @local.definition)
-(pcal_with (identifier) @local.definition)
+(pcal_macro_decl parameter: (identifier) @local.definition.variable.parameter)
+(pcal_proc_var_decl (identifier) @local.definition.variable.parameter)
+(pcal_var_decl (identifier) @local.definition.variable.parameter)
+(pcal_with (identifier) @local.definition.variable.parameter)
 
 ; References
 (identifier_ref) @local.reference
--- a/runtime/queries/verilog/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/verilog/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -8,54 +8,32 @@
   (module_declaration)
 ] @scope
 
-(data_declaration
- (list_of_variable_decl_assignments
-  (variable_decl_assignment
-   (simple_identifier) @definition.var)))
-
-(genvar_initialization
- (genvar_identifier
-  (simple_identifier) @definition.var))
-
-(for_initialization
- (for_variable_declaration
-  (simple_identifier) @definition.var))
-
-(net_declaration
- (list_of_net_decl_assignments
-  (net_decl_assignment
-   (simple_identifier) @definition.var)))
-
-(ansi_port_declaration
- (port_identifier
-  (simple_identifier) @definition.var))
-
 (parameter_declaration
  (list_of_param_assignments
   (param_assignment
    (parameter_identifier
-    (simple_identifier) @definition.parameter))))
+    (simple_identifier) @local.definition.variable.parameter))))
 
 (local_parameter_declaration
  (list_of_param_assignments
   (param_assignment
    (parameter_identifier
-    (simple_identifier) @definition.parameter))))
+    (simple_identifier) @local.definition.variable.parameter))))
 
 ;; TODO: fixme
 ;(function_declaration
  ;(function_identifier
-  ;(simple_identifier) @definition.function))
+  ;(simple_identifier) @local.definition.function))
 
 (function_declaration
  (function_body_declaration
   (function_identifier
    (function_identifier
-    (simple_identifier) @definition.function))))
+    (simple_identifier) @local.definition.function))))
 
 (tf_port_item1
  (port_identifier
-  (simple_identifier) @definition.parameter))
+  (simple_identifier) @local.definition.variable.parameter))
 
 ; too broad, now includes types etc
-(simple_identifier) @reference
+(simple_identifier) @local.reference
--- a/runtime/queries/wesl/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/wesl/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -9,7 +9,7 @@
 ; Definitions
 
 (param
-  (identifier) @local.definition)
+  (identifier) @local.definition.variable.parameter)
 
 ; References
 
--- a/runtime/queries/wren/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/wren/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -6,16 +6,4 @@
 (field) @local.reference
 (static_field) @local.reference
 
-(for_statement
-	loop_variable: (name) @local.definition)
-
-(variable_definition
-	name: (name) @local.definition)
-
-(assignment
-	left: (field) @local.definition)
-
-(assignment
-	left: (static_field) @local.definition)
-
-(parameter) @local.definition
+(parameter) @local.definition.variable.parameter
--- a/runtime/queries/yara/locals.scm	Thu Feb 20 20:38:14 2025 -0500
+++ b/runtime/queries/yara/locals.scm	Mon Feb 24 12:46:34 2025 -0500
@@ -1,5 +1,5 @@
-(rule_definition) @local.definition
-(string_identifier) @local.definition
+(rule_definition name: (identifier) @local.definition.string.special)
+(string_identifier) @local.definition.string.special.symbol
 
 (for_expression
   (string_identifier) @local.reference)