feat(locals)!: switch to upstream captures

This commit is contained in:
Christian Clason 2023-07-22 15:29:32 +02:00
parent f197a15b0d
commit 5b90ea2aba
109 changed files with 1341 additions and 1341 deletions

View file

@ -253,29 +253,29 @@ highlighting (such as diagnostics or LSP semantic tokens).
### Locals ### Locals
Note: pay specific attention to the captures here as they are a bit different to Locals are used to keep track of definitions and references in local or global
those listed in the upstream [Local Variables scopes, see [upstream
docs](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables). documentation](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables).
Some of these docs didn't exist when `nvim-treesitter` was created and the Note that nvim-treesitter uses more specific subcaptures for definitions and
upstream captures are more limiting than what we have here. **does not use locals for highlighting**.
```scheme ```scheme
@definition ; various definitions @local.definition ; various definitions
@definition.constant ; constants @local.definition.constant ; constants
@definition.function ; functions @local.definition.function ; functions
@definition.method ; methods @local.definition.method ; methods
@definition.var ; variables @local.definition.var ; variables
@definition.parameter ; parameters @local.definition.parameter ; parameters
@definition.macro ; preprocessor macros @local.definition.macro ; preprocessor macros
@definition.type ; types or classes @local.definition.type ; types or classes
@definition.field ; fields or properties @local.definition.field ; fields or properties
@definition.enum ; enumerations @local.definition.enum ; enumerations
@definition.namespace ; modules or namespaces @local.definition.namespace ; modules or namespaces
@definition.import ; imported names @local.definition.import ; imported names
@definition.associated ; the associated type of a variable @local.definition.associated ; the associated type of a variable
@scope ; scope block @local.scope ; scope block
@reference ; identifier reference @local.reference ; identifier reference
``` ```
#### Definition Scope #### Definition Scope
@ -294,7 +294,7 @@ doSomething(); // Should point to the declaration as the definition
```query ```query
(function_declaration (function_declaration
((identifier) @definition.var) ((identifier) @local.definition.var)
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
``` ```
@ -312,7 +312,7 @@ You can define folds for a given language by adding a `folds.scm` query :
@fold ; fold this node @fold ; fold this node
``` ```
If the `folds.scm` query is not present, this will fall back to the `@scope` captures in the `locals` If the `folds.scm` query is not present, this will fall back to the `@local.scope` captures in the `locals`
query. query.
### Injections ### Injections

View file

@ -41,8 +41,8 @@ function M.get_definitions(bufnr)
local defs = {} local defs = {}
for _, loc in ipairs(locals) do for _, loc in ipairs(locals) do
if loc.definition then if loc["local.definition"] then
table.insert(defs, loc.definition) table.insert(defs, loc["local.definition"])
end end
end end
@ -55,8 +55,8 @@ function M.get_scopes(bufnr)
local scopes = {} local scopes = {}
for _, loc in ipairs(locals) do for _, loc in ipairs(locals) do
if loc.scope and loc.scope.node then if loc["local.scope"] and loc["local.scope"].node then
table.insert(scopes, loc.scope.node) table.insert(scopes, loc["local.scope"].node)
end end
end end
@ -69,8 +69,8 @@ function M.get_references(bufnr)
local refs = {} local refs = {}
for _, loc in ipairs(locals) do for _, loc in ipairs(locals) do
if loc.reference and loc.reference.node then if loc["local.reference"] and loc["local.reference"].node then
table.insert(refs, loc.reference.node) table.insert(refs, loc["local.reference"].node)
end end
end end

View file

@ -2,32 +2,32 @@
;; references. However, this is not yet supported by neovim ;; references. However, this is not yet supported by neovim
;; See https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables ;; See https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
(compilation) @scope (compilation) @local.scope
(package_declaration) @scope (package_declaration) @local.scope
(package_body) @scope (package_body) @local.scope
(subprogram_declaration) @scope (subprogram_declaration) @local.scope
(subprogram_body) @scope (subprogram_body) @local.scope
(block_statement) @scope (block_statement) @local.scope
(with_clause (identifier) @definition.import) (with_clause (identifier) @local.definition.import)
(procedure_specification name: (_) @definition.function) (procedure_specification name: (_) @local.definition.function)
(function_specification name: (_) @definition.function) (function_specification name: (_) @local.definition.function)
(package_declaration name: (_) @definition.var) (package_declaration name: (_) @local.definition.var)
(package_body name: (_) @definition.var) (package_body name: (_) @local.definition.var)
(generic_instantiation . name: (_) @definition.var) (generic_instantiation . name: (_) @local.definition.var)
(component_declaration . (identifier) @definition.var) (component_declaration . (identifier) @local.definition.var)
(exception_declaration . (identifier) @definition.var) (exception_declaration . (identifier) @local.definition.var)
(formal_object_declaration . (identifier) @definition.var) (formal_object_declaration . (identifier) @local.definition.var)
(object_declaration . (identifier) @definition.var) (object_declaration . (identifier) @local.definition.var)
(parameter_specification . (identifier) @definition.var) (parameter_specification . (identifier) @local.definition.var)
(full_type_declaration . (identifier) @definition.type) (full_type_declaration . (identifier) @local.definition.type)
(private_type_declaration . (identifier) @definition.type) (private_type_declaration . (identifier) @local.definition.type)
(private_extension_declaration . (identifier) @definition.type) (private_extension_declaration . (identifier) @local.definition.type)
(incomplete_type_declaration . (identifier) @definition.type) (incomplete_type_declaration . (identifier) @local.definition.type)
(protected_type_declaration . (identifier) @definition.type) (protected_type_declaration . (identifier) @local.definition.type)
(formal_complete_type_declaration . (identifier) @definition.type) (formal_complete_type_declaration . (identifier) @local.definition.type)
(formal_incomplete_type_declaration . (identifier) @definition.type) (formal_incomplete_type_declaration . (identifier) @local.definition.type)
(task_type_declaration . (identifier) @definition.type) (task_type_declaration . (identifier) @local.definition.type)
(subtype_declaration . (identifier) @definition.type) (subtype_declaration . (identifier) @local.definition.type)
(identifier) @reference (identifier) @local.reference

View file

@ -1,66 +1,66 @@
; declarations ; declarations
(class_declaration) @scope (class_declaration) @local.scope
(method_declaration) @scope (method_declaration) @local.scope
(constructor_declaration) @scope (constructor_declaration) @local.scope
(enum_declaration) @scope (enum_declaration) @local.scope
(enhanced_for_statement) @scope (enhanced_for_statement) @local.scope
; if/else ; if/else
(if_statement) @scope (if_statement) @local.scope
(if_statement (if_statement
consequence: (_) @scope) ; if body in case there are no braces consequence: (_) @local.scope) ; if body in case there are no braces
(if_statement (if_statement
alternative: (_) @scope) ; else body in case there are no braces alternative: (_) @local.scope) ; else body in case there are no braces
; try/catch ; try/catch
(try_statement) @scope ; covers try+catch, individual try and catch are covered by (block) (try_statement) @local.scope ; covers try+catch, individual try and catch are covered by (block)
(catch_clause) @scope ; needed because `Exception` variable (catch_clause) @local.scope ; needed because `Exception` variable
; loops ; loops
(for_statement) @scope (for_statement) @local.scope
(for_statement ; "for" body in case there are no braces (for_statement ; "for" body in case there are no braces
body: (_) @scope) body: (_) @local.scope)
(do_statement (do_statement
body: (_) @scope) body: (_) @local.scope)
(while_statement (while_statement
body: (_) @scope) body: (_) @local.scope)
; Functions ; Functions
(constructor_declaration) @scope (constructor_declaration) @local.scope
(method_declaration) @scope (method_declaration) @local.scope
;; definitions ;; definitions
(enum_declaration (enum_declaration
name: (identifier) @definition.enum) name: (identifier) @local.definition.enum)
(method_declaration (method_declaration
name: (identifier) @definition.method) name: (identifier) @local.definition.method)
(local_variable_declaration (local_variable_declaration
declarator: (variable_declarator declarator: (variable_declarator
name: (identifier) @definition.var)) name: (identifier) @local.definition.var))
(enhanced_for_statement (enhanced_for_statement
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(formal_parameter (formal_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(catch_formal_parameter (catch_formal_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(field_declaration (field_declaration
declarator: (variable_declarator declarator: (variable_declarator
name: (identifier) @definition.field)) name: (identifier) @local.definition.field))
;; REFERENCES ;; REFERENCES
(identifier) @reference (identifier) @local.reference
(type_identifier) @reference (type_identifier) @local.reference

View file

@ -1,13 +1,13 @@
; Scopes ; Scopes
(function_definition) @scope (function_definition) @local.scope
; Definitions ; Definitions
(variable_assignment (variable_assignment
name: (variable_name) @definition.var) name: (variable_name) @local.definition.var)
(function_definition (function_definition
name: (word) @definition.function) name: (word) @local.definition.function)
; References ; References
(variable_name) @reference (variable_name) @local.reference
(word) @reference (word) @local.reference

View file

@ -4,22 +4,22 @@
(list) (list)
(scope) (scope)
(cons) (cons)
] @scope ] @local.scope
; References ; References
(symbol) @reference (symbol) @local.reference
; Definitions ; Definitions
((list ((list
. (symbol) @_fnkw . (symbol) @_fnkw
. (symbol) @definition.function . (symbol) @local.definition.function
(symbol)? @definition.parameter) (symbol)? @local.definition.parameter)
(#any-of? @_fnkw "def" "defop" "defn" "fn")) (#any-of? @_fnkw "def" "defop" "defn" "fn"))
((cons ((cons
. (symbol) @_fnkw . (symbol) @_fnkw
. (symbol) @definition.function . (symbol) @local.definition.function
(symbol)? @definition.parameter) (symbol)? @local.definition.parameter)
(#any-of? @_fnkw "def" "defop" "defn" "fn")) (#any-of? @_fnkw "def" "defop" "defn" "fn"))

View file

@ -13,62 +13,62 @@
(array) (array)
(object) (object)
(interpolation) (interpolation)
] @scope ] @local.scope
; References ; References
(property_identifier) @reference (property_identifier) @local.reference
(call_expression (call_expression
(identifier) @reference) (identifier) @local.reference)
(object_property (object_property
(_) (_)
":" ":"
(identifier) @reference) (identifier) @local.reference)
(resource_expression (resource_expression
(identifier) @reference) (identifier) @local.reference)
; Definitions ; Definitions
(type) @definition.associated (type) @local.definition.associated
(object_property (object_property
(identifier) @definition.field (identifier) @local.definition.field
(_)) (_))
(object_property (object_property
(compatible_identifier) @definition.field (compatible_identifier) @local.definition.field
(_)) (_))
(import_name) @definition.import (import_name) @local.definition.import
(module_declaration (module_declaration
(identifier) @definition.namespace) (identifier) @local.definition.namespace)
(parameter_declaration (parameter_declaration
(identifier) @definition.parameter (identifier) @local.definition.parameter
(_)) (_))
(type_declaration (type_declaration
(identifier) @definition.type (identifier) @local.definition.type
(_)) (_))
(variable_declaration (variable_declaration
(identifier) @definition.var (identifier) @local.definition.var
(_)) (_))
(metadata_declaration (metadata_declaration
(identifier) @definition.var (identifier) @local.definition.var
(_)) (_))
(output_declaration (output_declaration
(identifier) @definition.var (identifier) @local.definition.var
(_)) (_))
(for_statement (for_statement
"for" "for"
(for_loop_parameters (for_loop_parameters
(loop_variable) @definition.var (loop_variable) @local.definition.var
(loop_enumerator) @definition.var)) (loop_enumerator) @local.definition.var))

View file

@ -2,98 +2,98 @@
[ [
(python_identifier) (python_identifier)
(identifier) (identifier)
] @reference ] @local.reference
; Imports ; Imports
(aliased_import (aliased_import
alias: (python_identifier) @definition.import) alias: (python_identifier) @local.definition.import)
(import_statement (import_statement
name: (dotted_name ((python_identifier) @definition.import))) name: (dotted_name ((python_identifier) @local.definition.import)))
(import_from_statement (import_from_statement
name: (dotted_name ((python_identifier) @definition.import))) name: (dotted_name ((python_identifier) @local.definition.import)))
; Function with parameters, defines parameters ; Function with parameters, defines parameters
(parameters (parameters
(python_identifier) @definition.parameter) (python_identifier) @local.definition.parameter)
(default_parameter (default_parameter
(python_identifier) @definition.parameter) (python_identifier) @local.definition.parameter)
(typed_parameter (typed_parameter
(python_identifier) @definition.parameter) (python_identifier) @local.definition.parameter)
(typed_default_parameter (typed_default_parameter
(python_identifier) @definition.parameter) (python_identifier) @local.definition.parameter)
; *args parameter ; *args parameter
(parameters (parameters
(list_splat_pattern (list_splat_pattern
(python_identifier) @definition.parameter)) (python_identifier) @local.definition.parameter))
; **kwargs parameter ; **kwargs parameter
(parameters (parameters
(dictionary_splat_pattern (dictionary_splat_pattern
(python_identifier) @definition.parameter)) (python_identifier) @local.definition.parameter))
; Function defines function and scope ; Function defines function and scope
((python_function_definition ((python_function_definition
name: (python_identifier) @definition.function) @scope name: (python_identifier) @local.definition.function) @local.scope
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
(function_definition (identifier) @definition.function) (function_definition (identifier) @local.definition.function)
(anonymous_python_function (identifier) @definition.function) (anonymous_python_function (identifier) @local.definition.function)
;;; Loops ;;; Loops
; not a scope! ; not a scope!
(for_statement (for_statement
left: (pattern_list left: (pattern_list
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(for_statement (for_statement
left: (tuple_pattern left: (tuple_pattern
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(for_statement (for_statement
left: (python_identifier) @definition.var) left: (python_identifier) @local.definition.var)
; not a scope! ; not a scope!
;(while_statement) @scope ;(while_statement) @local.scope
; for in list comprehension ; for in list comprehension
(for_in_clause (for_in_clause
left: (python_identifier) @definition.var) left: (python_identifier) @local.definition.var)
(for_in_clause (for_in_clause
left: (tuple_pattern left: (tuple_pattern
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(for_in_clause (for_in_clause
left: (pattern_list left: (pattern_list
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(dictionary_comprehension) @scope (dictionary_comprehension) @local.scope
(list_comprehension) @scope (list_comprehension) @local.scope
(set_comprehension) @scope (set_comprehension) @local.scope
;;; Assignments ;;; Assignments
(assignment (assignment
left: (python_identifier) @definition.var) left: (python_identifier) @local.definition.var)
(assignment (assignment
left: (pattern_list left: (pattern_list
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(assignment (assignment
left: (tuple_pattern left: (tuple_pattern
(python_identifier) @definition.var)) (python_identifier) @local.definition.var))
(assignment (assignment
left: (attribute left: (attribute
(python_identifier) (python_identifier)
(python_identifier) @definition.field)) (python_identifier) @local.definition.field))
(variable_assignment (identifier) operator: [ "=" "?=" "??=" ":=" ] @definition.var) (variable_assignment (identifier) operator: [ "=" "?=" "??=" ":=" ] @local.definition.var)
; Walrus operator x := 1 ; Walrus operator x := 1
(named_expression (named_expression
(python_identifier) @definition.var) (python_identifier) @local.definition.var)
(as_pattern (as_pattern
alias: (as_pattern_target) @definition.var) alias: (as_pattern_target) @local.definition.var)

View file

@ -1,45 +1,45 @@
;; Functions definitions ;; Functions definitions
(function_declarator (function_declarator
declarator: (identifier) @definition.function) declarator: (identifier) @local.definition.function)
(preproc_function_def (preproc_function_def
name: (identifier) @definition.macro) @scope name: (identifier) @local.definition.macro) @local.scope
(preproc_def (preproc_def
name: (identifier) @definition.macro) name: (identifier) @local.definition.macro)
(pointer_declarator (pointer_declarator
declarator: (identifier) @definition.var) declarator: (identifier) @local.definition.var)
(parameter_declaration (parameter_declaration
declarator: (identifier) @definition.parameter) declarator: (identifier) @local.definition.parameter)
(init_declarator (init_declarator
declarator: (identifier) @definition.var) declarator: (identifier) @local.definition.var)
(array_declarator (array_declarator
declarator: (identifier) @definition.var) declarator: (identifier) @local.definition.var)
(declaration (declaration
declarator: (identifier) @definition.var) declarator: (identifier) @local.definition.var)
(enum_specifier (enum_specifier
name: (_) @definition.type name: (_) @local.definition.type
(enumerator_list (enumerator_list
(enumerator name: (identifier) @definition.var))) (enumerator name: (identifier) @local.definition.var)))
;; Type / Struct / Enum ;; Type / Struct / Enum
(field_declaration (field_declaration
declarator: (field_identifier) @definition.field) declarator: (field_identifier) @local.definition.field)
(type_definition (type_definition
declarator: (type_identifier) @definition.type) declarator: (type_identifier) @local.definition.type)
(struct_specifier (struct_specifier
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
;; goto ;; goto
(labeled_statement (statement_identifier) @definition) (labeled_statement (statement_identifier) @local.definition)
;; References ;; References
(identifier) @reference (identifier) @local.reference
((field_identifier) @reference ((field_identifier) @local.reference
(#set! reference.kind "field")) (#set! reference.kind "field"))
((type_identifier) @reference ((type_identifier) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
(goto_statement (statement_identifier) @reference) (goto_statement (statement_identifier) @local.reference)
;; Scope ;; Scope
[ [
@ -50,4 +50,4 @@
(function_definition) (function_definition)
(compound_statement) ; a block in curly braces (compound_statement) ; a block in curly braces
(struct_specifier) (struct_specifier)
] @scope ] @local.scope

View file

@ -1,41 +1,41 @@
;; Definitions ;; Definitions
(variable_declarator (variable_declarator
. (identifier) @definition.var) . (identifier) @local.definition.var)
(variable_declarator (variable_declarator
(tuple_pattern (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(declaration_expression (declaration_expression
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(for_each_statement (for_each_statement
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(for_each_statement (for_each_statement
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(parameter (parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(method_declaration (method_declaration
name: (identifier) @definition.method) name: (identifier) @local.definition.method)
(local_function_statement (local_function_statement
name: (identifier) @definition.method) name: (identifier) @local.definition.method)
(property_declaration (property_declaration
name: (identifier) @definition) name: (identifier) @local.definition)
(type_parameter (type_parameter
(identifier) @definition.type) (identifier) @local.definition.type)
(class_declaration (class_declaration
name: (identifier) @definition) name: (identifier) @local.definition)
;; References ;; References
(identifier) @reference (identifier) @local.reference
;; Scope ;; Scope
(block) @scope (block) @local.scope

View file

@ -1,9 +1,9 @@
; References ; References
(identifier) @reference (identifier) @local.reference
((type_identifier) @reference ((type_identifier) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
((field_identifier) @reference ((field_identifier) @local.reference
(#set! reference.kind "field")) (#set! reference.kind "field"))
; Scopes ; Scopes
@ -20,49 +20,49 @@
(struct_item) (struct_item)
(enum_item) (enum_item)
(impl_item) (impl_item)
] @scope ] @local.scope
(use_declaration (use_declaration
argument: (scoped_identifier argument: (scoped_identifier
name: (identifier) @definition.import)) name: (identifier) @local.definition.import))
(use_as_clause (use_as_clause
alias: (identifier) @definition.import) alias: (identifier) @local.definition.import)
(use_list (use_list
(identifier) @definition.import) ; use std::process::{Child, Command, Stdio}; (identifier) @local.definition.import) ; use std::process::{Child, Command, Stdio};
; Functions ; Functions
(function_definition (function_definition
(identifier) @definition.function) (identifier) @local.definition.function)
(function_definition (function_definition
(identifier) @definition.method (identifier) @local.definition.method
(parameter (self))) (parameter (self)))
; Function with parameters, defines parameters ; Function with parameters, defines parameters
(parameter (parameter
[ (identifier) (self) ] @definition.parameter) [ (identifier) (self) ] @local.definition.parameter)
; Types ; Types
(struct_item (struct_item
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
(constrained_type_parameter (constrained_type_parameter
left: (type_identifier) @definition.type) ; the P in remove_file<P: AsRef<Path>>(path: P) left: (type_identifier) @local.definition.type) ; the P in remove_file<P: AsRef<Path>>(path: P)
(enum_item (enum_item
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
; Module ; Module
(mod_item (mod_item
name: (identifier) @definition.namespace) name: (identifier) @local.definition.namespace)
; Variables ; Variables
(assignment_expression (assignment_expression
left: (identifier) @definition.var) left: (identifier) @local.definition.var)

View file

@ -12,79 +12,79 @@
(struct) (struct)
(struct_shorthand) (struct_shorthand)
(union) (union)
] @scope ] @local.scope
[ [
(extend_type) (extend_type)
(field_type) (field_type)
] @reference ] @local.reference
(custom_type (type_identifier) @reference) (custom_type (type_identifier) @local.reference)
(custom_type (custom_type
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @reference))) (generic_identifier) @local.reference)))
(annotation_definition_identifier) @definition (annotation_definition_identifier) @local.definition
(const_identifier) @definition.constant (const_identifier) @local.definition.constant
(enum (enum_identifier) @definition.enum) (enum (enum_identifier) @local.definition.enum)
[ [
(enum_member) (enum_member)
(field_identifier) (field_identifier)
] @definition.field ] @local.definition.field
(method_identifier) @definition.method (method_identifier) @local.definition.method
(namespace) @definition.namespace (namespace) @local.definition.namespace
[ [
(param_identifier) (param_identifier)
(return_identifier) (return_identifier)
] @definition.parameter ] @local.definition.parameter
(group (type_identifier) @definition.type) (group (type_identifier) @local.definition.type)
(struct (type_identifier) @definition.type) (struct (type_identifier) @local.definition.type)
(union (type_identifier) @definition.type) (union (type_identifier) @local.definition.type)
(interface (type_identifier) @definition.type) (interface (type_identifier) @local.definition.type)
; Generics Related (don't know how to combine these) ; Generics Related (don't know how to combine these)
(struct (struct
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.parameter))) (generic_identifier) @local.definition.parameter)))
(interface (interface
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.parameter))) (generic_identifier) @local.definition.parameter)))
(method (method
(implicit_generics (implicit_generics
(implicit_generic_parameters (implicit_generic_parameters
(generic_identifier) @definition.parameter))) (generic_identifier) @local.definition.parameter)))
(method (method
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.parameter))) (generic_identifier) @local.definition.parameter)))
(annotation (annotation
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.type))) (generic_identifier) @local.definition.type)))
(replace_using (replace_using
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.type))) (generic_identifier) @local.definition.type)))
(return_type (return_type
(generics (generics
(generic_parameters (generic_parameters
(generic_identifier) @definition.type))) (generic_identifier) @local.definition.type)))

View file

@ -1,10 +1,10 @@
;; Definitions ;; Definitions
(intent_def (intent) @definition) (intent_def (intent) @local.definition)
(slot_def (slot) @definition) (slot_def (slot) @local.definition)
(alias_def (alias) @definition) (alias_def (alias) @local.definition)
;; References ;; References
(slot_ref (slot) @reference) (slot_ref (slot) @local.reference)
(alias_ref (alias) @reference) (alias_ref (alias) @local.reference)

View file

@ -1,72 +1,72 @@
(defun_header (defun_header
function_name: (sym_lit) @definition.function (#set! definition.function.scope "parent")) function_name: (sym_lit) @local.definition.function (#set! definition.function.scope "parent"))
(defun_header (defun_header
lambda_list: (list_lit (sym_lit) @definition.parameter)) lambda_list: (list_lit (sym_lit) @local.definition.parameter))
(defun_header (defun_header
keyword: (defun_keyword "defmethod") keyword: (defun_keyword "defmethod")
lambda_list: (list_lit (list_lit . (sym_lit) . (sym_lit) @definition.type))) lambda_list: (list_lit (list_lit . (sym_lit) . (sym_lit) @local.definition.type)))
(defun_header (defun_header
lambda_list: (list_lit (list_lit . (sym_lit) @definition.parameter . (_)))) lambda_list: (list_lit (list_lit . (sym_lit) @local.definition.parameter . (_))))
(sym_lit) @reference (sym_lit) @local.reference
(defun) @scope (defun) @local.scope
((list_lit . (sym_lit) @_defvar . (sym_lit) @definition.var) ((list_lit . (sym_lit) @_defvar . (sym_lit) @local.definition.var)
(#match? @_defvar "^(cl:)?(defvar|defparameter)$")) (#match? @_defvar "^(cl:)?(defvar|defparameter)$"))
(list_lit (list_lit
. .
(sym_lit) @_deftest (sym_lit) @_deftest
. .
(sym_lit) @definition.function (sym_lit) @local.definition.function
(#eq? @_deftest "deftest")) @scope (#eq? @_deftest "deftest")) @local.scope
(list_lit (list_lit
. .
(sym_lit) @_deftest (sym_lit) @_deftest
. .
(sym_lit) @definition.function (sym_lit) @local.definition.function
(#eq? @_deftest "deftest")) @scope (#eq? @_deftest "deftest")) @local.scope
(for_clause . (sym_lit) @definition.var) (for_clause . (sym_lit) @local.definition.var)
(with_clause . (sym_lit) @definition.var) (with_clause . (sym_lit) @local.definition.var)
(loop_macro) @scope (loop_macro) @local.scope
(list_lit (list_lit
. .
(sym_lit) @_let (#match? @_let "(cl:|cffi:)?(with-accessors|with-foreign-objects|let[*]?)") (sym_lit) @_let (#match? @_let "(cl:|cffi:)?(with-accessors|with-foreign-objects|let[*]?)")
. .
(list_lit (list_lit . (sym_lit) @definition.var))) @scope (list_lit (list_lit . (sym_lit) @local.definition.var))) @local.scope
(list_lit (list_lit
. .
(sym_lit) @_let (#match? @_let "(cl:|alexandria:)?(with-gensyms|dotimes|with-foreign-object)") (sym_lit) @_let (#match? @_let "(cl:|alexandria:)?(with-gensyms|dotimes|with-foreign-object)")
. .
(list_lit . (sym_lit) @definition.var)) @scope (list_lit . (sym_lit) @local.definition.var)) @local.scope
(list_lit (list_lit
. .
(kwd_lit) @_import_from (#eq? @_import_from ":import-from") (kwd_lit) @_import_from (#eq? @_import_from ":import-from")
. .
(_) (_)
(kwd_lit (kwd_symbol) @definition.import)) (kwd_lit (kwd_symbol) @local.definition.import))
(list_lit (list_lit
. .
(kwd_lit) @_import_from (#eq? @_import_from ":import-from") (kwd_lit) @_import_from (#eq? @_import_from ":import-from")
. .
(_) (_)
(sym_lit) @definition.import) (sym_lit) @local.definition.import)
(list_lit (list_lit
. .
(kwd_lit) @_use (#eq? @_use ":use") (kwd_lit) @_use (#eq? @_use ":use")
(kwd_lit (kwd_symbol) @definition.import)) (kwd_lit (kwd_symbol) @local.definition.import))
(list_lit (list_lit
. .
(kwd_lit) @_use (#eq? @_use ":use") (kwd_lit) @_use (#eq? @_use ":use")
(sym_lit) @definition.import) (sym_lit) @local.definition.import)

View file

@ -3,14 +3,14 @@
[ [
(object) (object)
(array) (array)
] @scope ] @local.scope
; definitions ; definitions
(assign_block (assign_block
(assignment (assignment
(input) (input)
@definition.constant)) @local.definition.constant))
(value (input) @reference) (value (input) @local.reference)

View file

@ -4,4 +4,4 @@
(meta_map) (meta_map)
(map) (map)
(array) (array)
] @scope ] @local.scope

View file

@ -3,73 +3,73 @@
;; Parameters ;; Parameters
(variadic_parameter_declaration (variadic_parameter_declaration
declarator: (variadic_declarator declarator: (variadic_declarator
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
(optional_parameter_declaration (optional_parameter_declaration
declarator: (identifier) @definition.parameter) declarator: (identifier) @local.definition.parameter)
;; Class / struct definitions ;; Class / struct definitions
(class_specifier) @scope (class_specifier) @local.scope
(reference_declarator (reference_declarator
(identifier) @definition.var) (identifier) @local.definition.var)
(variadic_declarator (variadic_declarator
(identifier) @definition.var) (identifier) @local.definition.var)
(struct_specifier (struct_specifier
name: (qualified_identifier name: (qualified_identifier
name: (type_identifier) @definition.type)) name: (type_identifier) @local.definition.type))
(class_specifier (class_specifier
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
(concept_definition (concept_definition
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(class_specifier (class_specifier
name: (qualified_identifier name: (qualified_identifier
name: (type_identifier) @definition.type)) name: (type_identifier) @local.definition.type))
(alias_declaration (alias_declaration
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
;template <typename T> ;template <typename T>
(type_parameter_declaration (type_parameter_declaration
(type_identifier) @definition.type) (type_identifier) @local.definition.type)
(template_declaration) @scope (template_declaration) @local.scope
;; Namespaces ;; Namespaces
(namespace_definition (namespace_definition
name: (namespace_identifier) @definition.namespace name: (namespace_identifier) @local.definition.namespace
body: (_) @scope) body: (_) @local.scope)
(namespace_definition (namespace_definition
name: (nested_namespace_specifier) @definition.namespace name: (nested_namespace_specifier) @local.definition.namespace
body: (_) @scope) body: (_) @local.scope)
((namespace_identifier) @reference ((namespace_identifier) @local.reference
(#set! reference.kind "namespace")) (#set! reference.kind "namespace"))
;; Function definitions ;; Function definitions
(template_function (template_function
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
(template_method (template_method
name: (field_identifier) @definition.method) @scope name: (field_identifier) @local.definition.method) @local.scope
(function_declarator (function_declarator
declarator: (qualified_identifier declarator: (qualified_identifier
name: (identifier) @definition.function)) @scope name: (identifier) @local.definition.function)) @local.scope
(field_declaration (field_declaration
declarator: (function_declarator declarator: (function_declarator
(field_identifier) @definition.method)) (field_identifier) @local.definition.method))
(lambda_expression) @scope (lambda_expression) @local.scope
;; Control structures ;; Control structures
(try_statement (try_statement
body: (_) @scope) body: (_) @local.scope)
(catch_clause) @scope (catch_clause) @local.scope
(requires_expression) @scope (requires_expression) @local.scope

View file

@ -4,31 +4,31 @@
(source_file) (source_file)
(field) (field)
(for_clause) (for_clause)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(import_spec (import_spec
path: (string) @definition.import) path: (string) @local.definition.import)
(field (field
(label (label
(identifier) @definition.field)) (identifier) @local.definition.field))
(package_identifier) @definition.namespace (package_identifier) @local.definition.namespace
(for_clause (for_clause
(identifier) @definition.variable (identifier) @local.definition.variable
(expression)) (expression))
(for_clause (for_clause
(identifier) (identifier)
(identifier) @definition.variable (identifier) @local.definition.variable
(expression)) (expression))
(let_clause (let_clause
(identifier) @definition.variable) (identifier) @local.definition.variable)

View file

@ -1,28 +1,28 @@
;; Definitions ;; Definitions
(function_signature (function_signature
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(formal_parameter (formal_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(initialized_variable_definition (initialized_variable_definition
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(initialized_identifier (initialized_identifier
(identifier) @definition.var) (identifier) @local.definition.var)
(static_final_declaration (static_final_declaration
(identifier) @definition.var) (identifier) @local.definition.var)
;; References ;; References
(identifier) @reference (identifier) @local.reference
;; Scopes ;; Scopes
(class_definition (class_definition
body: (_) @scope) body: (_) @local.scope)
[ [
(block) (block)
(if_statement) (if_statement)
@ -31,4 +31,4 @@
(try_statement) (try_statement)
(catch_clause) (catch_clause)
(finally_clause) (finally_clause)
] @scope ] @local.scope

View file

@ -1,4 +1,4 @@
[ [
(node) (node)
(integer_cells) (integer_cells)
]@scope ]@local.scope

View file

@ -1,7 +1,7 @@
(elementdecl (Name) @definition.type) (elementdecl (Name) @local.definition.type)
(elementdecl (elementdecl
(contentspec (contentspec
(children (Name) @reference))) (children (Name) @local.reference)))
(AttlistDecl . (Name) @reference) (AttlistDecl . (Name) @local.reference)

View file

@ -1,37 +1,37 @@
; Scopes ; Scopes
;------- ;-------
(statement_block) @scope (statement_block) @local.scope
(function) @scope (function) @local.scope
(arrow_function) @scope (arrow_function) @local.scope
(function_declaration) @scope (function_declaration) @local.scope
(method_definition) @scope (method_definition) @local.scope
(for_statement) @scope (for_statement) @local.scope
(for_in_statement) @scope (for_in_statement) @local.scope
(catch_clause) @scope (catch_clause) @local.scope
; Definitions ; Definitions
;------------ ;------------
(variable_declarator (variable_declarator
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(import_specifier (import_specifier
(identifier) @definition.import) (identifier) @local.definition.import)
(namespace_import (namespace_import
(identifier) @definition.import) (identifier) @local.definition.import)
(function_declaration (function_declaration
((identifier) @definition.function) ((identifier) @local.definition.function)
(#set! definition.var.scope parent)) (#set! definition.var.scope parent))
(method_definition (method_definition
((property_identifier) @definition.function) ((property_identifier) @local.definition.function)
(#set! definition.var.scope parent)) (#set! definition.var.scope parent))
; References ; References
;------------ ;------------
(identifier) @reference (identifier) @local.reference
(shorthand_property_identifier) @reference (shorthand_property_identifier) @local.reference

View file

@ -1,86 +1,86 @@
; References ; References
(identifier) @reference (identifier) @local.reference
(alias) @reference (alias) @local.reference
; Module Definitions ; Module Definitions
(call (call
target: ((identifier) @_identifier (#eq? @_identifier "defmodule")) target: ((identifier) @_identifier (#eq? @_identifier "defmodule"))
(arguments (alias) @definition.type)) (arguments (alias) @local.definition.type))
; Pattern Match Definitions ; Pattern Match Definitions
(binary_operator left: [ (binary_operator left: [
(identifier) @definition.var (identifier) @local.definition.var
(_ (identifier) @definition.var) (_ (identifier) @local.definition.var)
(_ (_ (identifier) @definition.var)) (_ (_ (identifier) @local.definition.var))
(_ (_ (_ (identifier) @definition.var))) (_ (_ (_ (identifier) @local.definition.var)))
(_ (_ (_ (_ (identifier) @definition.var)))) (_ (_ (_ (_ (identifier) @local.definition.var))))
(_ (_ (_ (_ (_ (identifier) @definition.var))))) (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))
(_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))) (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))
(_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))) (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))
(_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))) (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))))
] operator: "=") ] operator: "=")
; Stab Clause Definitions ; Stab Clause Definitions
(stab_clause (stab_clause
left: [ left: [
(arguments [ (arguments [
(identifier) @definition.var (identifier) @local.definition.var
(_ (identifier) @definition.var) (_ (identifier) @local.definition.var)
(_ (_ (identifier) @definition.var)) (_ (_ (identifier) @local.definition.var))
(_ (_ (_ (identifier) @definition.var))) (_ (_ (_ (identifier) @local.definition.var)))
(_ (_ (_ (_ (identifier) @definition.var)))) (_ (_ (_ (_ (identifier) @local.definition.var))))
(_ (_ (_ (_ (_ (identifier) @definition.var))))) (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))
(_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))) (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))
(_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))) (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))
(_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))) (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))))
]) ])
(binary_operator (binary_operator
left: (arguments [ left: (arguments [
(identifier) @definition.var (identifier) @local.definition.var
(_ (identifier) @definition.var) (_ (identifier) @local.definition.var)
(_ (_ (identifier) @definition.var)) (_ (_ (identifier) @local.definition.var))
(_ (_ (_ (identifier) @definition.var))) (_ (_ (_ (identifier) @local.definition.var)))
(_ (_ (_ (_ (identifier) @definition.var)))) (_ (_ (_ (_ (identifier) @local.definition.var))))
(_ (_ (_ (_ (_ (identifier) @definition.var))))) (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))
(_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))) (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))
(_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))) (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))
(_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))) (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var)))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.var)))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.var))))))))))))))))))))
]) operator: "when") ]) operator: "when")
]) ])
@ -88,11 +88,11 @@
(call (call
target: ((identifier) @_identifier (#any-of? @_identifier "require" "alias" "use" "import")) target: ((identifier) @_identifier (#any-of? @_identifier "require" "alias" "use" "import"))
(arguments [ (arguments [
(alias) @definition.import (alias) @local.definition.import
(_ (alias) @definition.import) (_ (alias) @local.definition.import)
(_ (_ (alias) @definition.import)) (_ (_ (alias) @local.definition.import))
(_ (_ (_ (alias) @definition.import))) (_ (_ (_ (alias) @local.definition.import)))
(_ (_ (_ (_ (alias) @definition.import)))) (_ (_ (_ (_ (alias) @local.definition.import))))
] ]
)) ))
@ -100,35 +100,35 @@
(call (call
target: ((identifier) @_identifier (#any-of? @_identifier "def" "defp" "defmacro" "defmacrop" "defguard" "defguardp" "defn" "defnp" "for")) target: ((identifier) @_identifier (#any-of? @_identifier "def" "defp" "defmacro" "defmacrop" "defguard" "defguardp" "defn" "defnp" "for"))
(arguments [ (arguments [
(identifier) @definition.function (identifier) @local.definition.function
(binary_operator left: (identifier) @definition.function operator: "when") (binary_operator left: (identifier) @local.definition.function operator: "when")
(binary_operator (identifier) @definition.parameter) (binary_operator (identifier) @local.definition.parameter)
(call target: (identifier) @definition.function (arguments [ (call target: (identifier) @local.definition.function (arguments [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(_ (identifier) @definition.parameter) (_ (identifier) @local.definition.parameter)
(_ (_ (identifier) @definition.parameter)) (_ (_ (identifier) @local.definition.parameter))
(_ (_ (_ (identifier) @definition.parameter))) (_ (_ (_ (identifier) @local.definition.parameter)))
(_ (_ (_ (_ (identifier) @definition.parameter)))) (_ (_ (_ (_ (identifier) @local.definition.parameter))))
(_ (_ (_ (_ (_ (identifier) @definition.parameter))))) (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))
(_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))) (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))
(_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))) (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))
(_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))) (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))))))
])) ]))
]?) (#set! definition.function.scope parent) ]?) (#set! definition.function.scope parent)
(do_block)? (do_block)?
) @scope ) @local.scope
; ExUnit Test Definitions & Scopes ; ExUnit Test Definitions & Scopes
(call (call
@ -136,29 +136,29 @@
(arguments [ (arguments [
(string) (string)
((string) . "," . [ ((string) . "," . [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(_ (identifier) @definition.parameter) (_ (identifier) @local.definition.parameter)
(_ (_ (identifier) @definition.parameter)) (_ (_ (identifier) @local.definition.parameter))
(_ (_ (_ (identifier) @definition.parameter))) (_ (_ (_ (identifier) @local.definition.parameter)))
(_ (_ (_ (_ (identifier) @definition.parameter)))) (_ (_ (_ (_ (identifier) @local.definition.parameter))))
(_ (_ (_ (_ (_ (identifier) @definition.parameter))))) (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))
(_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))) (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))
(_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))) (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))
(_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))) (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter)))))))))))))))))))
(_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @definition.parameter)))))))))))))))))))) (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (_ (identifier) @local.definition.parameter))))))))))))))))))))
]) ])
]) (do_block)?) @scope ]) (do_block)?) @local.scope
; Stab Clause Scopes ; Stab Clause Scopes
(stab_clause) @scope (stab_clause) @local.scope

View file

@ -1,12 +1,12 @@
[ [
(source_file) (source_file)
(reduction) (reduction)
] @scope ] @local.scope
(identifier) @reference (identifier) @local.reference
(function) @definition.function (function) @local.definition.function
(method) @definition.method (method) @local.definition.method
(parameter) @definition.parameter (parameter) @local.definition.parameter

View file

@ -6,21 +6,21 @@
(each) (each)
(for) (for)
(match) (match)
] @scope ] @local.scope
( (
(list . (symbol) @_special) @scope (list . (symbol) @_special) @local.scope
(#any-of? @_special (#any-of? @_special
"while" "if" "when" "do" "collect" "icollect" "accumulate") "while" "if" "when" "do" "collect" "icollect" "accumulate")
) )
(fn name: (symbol) @definition.function (fn name: (symbol) @local.definition.function
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
(lambda name: (symbol) @definition.function (lambda name: (symbol) @local.definition.function
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
; TODO: use @definition.parameter for parameters ; TODO: use @local.definition.parameter for parameters
(binding (symbol) @definition.var) (binding (symbol) @local.definition.var)
(for_clause . (symbol) @definition.var) (for_clause . (symbol) @local.definition.var)
(symbol) @reference (symbol) @local.reference

View file

@ -7,32 +7,32 @@
(else) (else)
(when) (when)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(port (identifier) @definition.field) (port (identifier) @local.definition.field)
(wire (identifier) @definition.field) (wire (identifier) @local.definition.field)
(cmem (identifier) @definition.field) (cmem (identifier) @local.definition.field)
(smem (identifier) @definition.field) (smem (identifier) @local.definition.field)
(memory (identifier) @definition.field) (memory (identifier) @local.definition.field)
(register (identifier) @definition.field) (register (identifier) @local.definition.field)
(circuit (identifier) @definition.namespace) (circuit (identifier) @local.definition.namespace)
(module (identifier) @definition.namespace) (module (identifier) @local.definition.namespace)
(parameter (identifier) @definition.parameter) (parameter (identifier) @local.definition.parameter)
(rdwr (identifier) @definition.var) (rdwr (identifier) @local.definition.var)
(node (identifier) @definition.var) (node (identifier) @local.definition.var)

View file

@ -7,12 +7,12 @@
(begin_statement) (begin_statement)
(while_statement) (while_statement)
(switch_statement) (switch_statement)
] @scope ] @local.scope
;; Definitions ;; Definitions
(function_definition (function_definition
name: (word) @definition.function) name: (word) @local.definition.function)
;; References ;; References
(variable_name) @reference (variable_name) @local.reference
(word) @reference (word) @local.reference

View file

@ -1,6 +1,6 @@
(dict) @scope (dict) @local.scope
(dict key: (_) @definition.type) (dict key: (_) @local.definition.type)
(key_value keyword: (_) @definition.parameter) (key_value keyword: (_) @local.definition.parameter)
(key_value value: (macro (identifier)*)* @reference) (key_value value: (macro (identifier)*)* @local.reference)

View file

@ -1,3 +1,3 @@
(word) @reference (word) @local.reference
(word_definition) @scope (word_definition) @local.scope

View file

@ -1,21 +1,21 @@
;; Fusion base ;; Fusion base
(block) @scope (block) @local.scope
(namespace_declaration (namespace_declaration
(alias_namespace) @definition.namespace) (alias_namespace) @local.definition.namespace)
(property (property
(path (path_part) @definition.field)) (path (path_part) @local.definition.field))
(type (type
namespace: (package_name)? @definition.namespace namespace: (package_name)? @local.definition.namespace
name: (type_name) @definition.type name: (type_name) @local.definition.type
) )
;; Eel Expressions ;; Eel Expressions
(eel_arrow_function) @scope (eel_arrow_function) @local.scope
(eel_object) @scope (eel_object) @local.scope
(eel_parameter) @definition.parameter (eel_parameter) @local.definition.parameter
(eel_object_pair (eel_object_pair
key: (eel_property_name) @definition.field) key: (eel_property_name) @local.definition.field)

View file

@ -14,79 +14,79 @@
(lambda) (lambda)
(get_body) (get_body)
(set_body) (set_body)
] @scope ] @local.scope
;; Parameters ;; Parameters
(parameters (identifier) @definition.parameter) (parameters (identifier) @local.definition.parameter)
(default_parameter (identifier) @definition.parameter) (default_parameter (identifier) @local.definition.parameter)
(typed_parameter (identifier) @definition.parameter) (typed_parameter (identifier) @local.definition.parameter)
(typed_default_parameter (identifier) @definition.parameter) (typed_default_parameter (identifier) @local.definition.parameter)
;; Signals ;; Signals
; Can gdscript 2 signals be considered fields? ; Can gdscript 2 signals be considered fields?
(signal_statement (name) @definition.field) (signal_statement (name) @local.definition.field)
;; Variable Definitions ;; Variable Definitions
(const_statement (name) @definition.constant) (const_statement (name) @local.definition.constant)
; onready and export variations are only properties. ; onready and export variations are only properties.
(variable_statement (name) @definition.var) (variable_statement (name) @local.definition.var)
(setter) @reference (setter) @local.reference
(getter) @reference (getter) @local.reference
;; Function Definition ;; Function Definition
((function_definition (name) @definition.function) ((function_definition (name) @local.definition.function)
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
;; Lambda ;; Lambda
; lambda names are not accessible and are only for debugging. ; lambda names are not accessible and are only for debugging.
(lambda (name) @definition.function) (lambda (name) @local.definition.function)
;; Source ;; Source
(class_name_statement (name) @definition.type) (class_name_statement (name) @local.definition.type)
(source (variable_statement (name) @definition.field)) (source (variable_statement (name) @local.definition.field))
(source (onready_variable_statement (name) @definition.field)) (source (onready_variable_statement (name) @local.definition.field))
(source (export_variable_statement (name) @definition.field)) (source (export_variable_statement (name) @local.definition.field))
;; Class ;; Class
((class_definition (name) @definition.type) ((class_definition (name) @local.definition.type)
(#set! "definition.type.scope" "parent")) (#set! "definition.type.scope" "parent"))
(class_definition (class_definition
(body (variable_statement (name) @definition.field))) (body (variable_statement (name) @local.definition.field)))
(class_definition (class_definition
(body (onready_variable_statement (name) @definition.field))) (body (onready_variable_statement (name) @local.definition.field)))
(class_definition (class_definition
(body (export_variable_statement (name) @definition.field))) (body (export_variable_statement (name) @local.definition.field)))
(class_definition (class_definition
(body (signal_statement (name) @definition.field))) (body (signal_statement (name) @local.definition.field)))
; Although a script is also a class, let's only define functions in an inner class as ; Although a script is also a class, let's only define functions in an inner class as
; methods. ; methods.
((class_definition ((class_definition
(body (function_definition (name) @definition.method))) (body (function_definition (name) @local.definition.method)))
(#set! "definition.method.scope" "parent")) (#set! "definition.method.scope" "parent"))
;; Enum ;; Enum
((enum_definition (name) @definition.enum)) ((enum_definition (name) @local.definition.enum))
;; Repeat ;; Repeat
(for_statement . (identifier) @definition.var) (for_statement . (identifier) @local.definition.var)
;; Match Statement ;; Match Statement
(pattern_binding (identifier) @definition.var) (pattern_binding (identifier) @local.definition.var)
;; References ;; References
(identifier) @reference (identifier) @local.reference

View file

@ -1,4 +1,4 @@
(macro_def (attr_name) @definition.macro) (macro_def (attr_name) @local.definition.macro)
(attribute (attr_name) @reference) (attribute (attr_name) @local.reference)
(attribute (builtin_attr) @reference) (attribute (builtin_attr) @local.reference)

View file

@ -1,24 +1,24 @@
; Let Binding Definition ; Let Binding Definition
(let pattern: (identifier) @definition) (let pattern: (identifier) @local.definition)
; List Pattern Definitions ; List Pattern Definitions
(list_pattern (identifier) @definition) (list_pattern (identifier) @local.definition)
(list_pattern assign: (identifier) @definition) (list_pattern assign: (identifier) @local.definition)
; Tuple Pattern Definition ; Tuple Pattern Definition
(tuple_pattern (identifier) @definition) (tuple_pattern (identifier) @local.definition)
; Record Pattern Definition ; Record Pattern Definition
(record_pattern_argument pattern: (identifier) @definition) (record_pattern_argument pattern: (identifier) @local.definition)
; Function Parameter Definition ; Function Parameter Definition
(function_parameter name: (identifier) @definition) (function_parameter name: (identifier) @local.definition)
; References ; References
(identifier) @reference (identifier) @local.reference
; Function Body Scope ; Function Body Scope
(function_body) @scope (function_body) @local.scope
; Case Scope ; Case Scope
(case_clause) @scope (case_clause) @local.scope

View file

@ -1,7 +1,7 @@
[ [
(element_node) (element_node)
(block_statement) (block_statement)
] @scope ] @local.scope
(identifier) @reference (identifier) @local.reference
(block_params (identifier) @definition.var) (block_params (identifier) @local.definition.var)

View file

@ -1,6 +1,6 @@
[ [
(source_file) (source_file)
(block) (block)
] @scope ] @local.scope
(identifier) @reference (identifier) @local.reference

View file

@ -1,79 +1,79 @@
( (
(function_declaration (function_declaration
name: (identifier) @definition.function) ;@function name: (identifier) @local.definition.function) ;@function
) )
( (
(method_declaration (method_declaration
name: (field_identifier) @definition.method); @method name: (field_identifier) @local.definition.method); @method
) )
(short_var_declaration (short_var_declaration
left: (expression_list left: (expression_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(var_spec (var_spec
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(parameter_declaration (identifier) @definition.var) (parameter_declaration (identifier) @local.definition.var)
(variadic_parameter_declaration (identifier) @definition.var) (variadic_parameter_declaration (identifier) @local.definition.var)
(for_statement (for_statement
(range_clause (range_clause
left: (expression_list left: (expression_list
(identifier) @definition.var))) (identifier) @local.definition.var)))
(const_declaration (const_declaration
(const_spec (const_spec
name: (identifier) @definition.var)) name: (identifier) @local.definition.var))
(type_declaration (type_declaration
(type_spec (type_spec
name: (type_identifier) @definition.type)) name: (type_identifier) @local.definition.type))
;; reference ;; reference
(identifier) @reference (identifier) @local.reference
(type_identifier) @reference (type_identifier) @local.reference
(field_identifier) @reference (field_identifier) @local.reference
((package_identifier) @reference ((package_identifier) @local.reference
(#set! reference.kind "namespace")) (#set! reference.kind "namespace"))
(package_clause (package_clause
(package_identifier) @definition.namespace) (package_identifier) @local.definition.namespace)
(import_spec_list (import_spec_list
(import_spec (import_spec
name: (package_identifier) @definition.namespace)) name: (package_identifier) @local.definition.namespace))
;; Call references ;; Call references
((call_expression ((call_expression
function: (identifier) @reference) function: (identifier) @local.reference)
(#set! reference.kind "call" )) (#set! reference.kind "call" ))
((call_expression ((call_expression
function: (selector_expression function: (selector_expression
field: (field_identifier) @reference)) field: (field_identifier) @local.reference))
(#set! reference.kind "call" )) (#set! reference.kind "call" ))
((call_expression ((call_expression
function: (parenthesized_expression function: (parenthesized_expression
(identifier) @reference)) (identifier) @local.reference))
(#set! reference.kind "call" )) (#set! reference.kind "call" ))
((call_expression ((call_expression
function: (parenthesized_expression function: (parenthesized_expression
(selector_expression (selector_expression
field: (field_identifier) @reference))) field: (field_identifier) @local.reference)))
(#set! reference.kind "call" )) (#set! reference.kind "call" ))
;; Scopes ;; Scopes
(func_literal) @scope (func_literal) @local.scope
(source_file) @scope (source_file) @local.scope
(function_declaration) @scope (function_declaration) @local.scope
(if_statement) @scope (if_statement) @local.scope
(block) @scope (block) @local.scope
(expression_switch_statement) @scope (expression_switch_statement) @local.scope
(for_statement) @scope (for_statement) @local.scope
(method_declaration) @scope (method_declaration) @local.scope

View file

@ -1,3 +1,3 @@
[ [
(section) (section)
] @scope ] @local.scope

View file

@ -7,41 +7,41 @@
(for_statement) (for_statement)
(match_expression) (match_expression)
(switch_expression) (switch_expression)
] @scope ] @local.scope
; References ; References
[ [
(identifier) (identifier)
(scoped_type_identifier) (scoped_type_identifier)
] @reference ] @local.reference
; Definitions ; Definitions
(global_binding (global_binding
(identifier) @definition.constant . ":" (_)) (identifier) @local.definition.constant . ":" (_))
(const_declaration (const_declaration
"const" (identifier) @definition.constant . "=") "const" (identifier) @local.definition.constant . "=")
(field (field
. (identifier) @definition.field) . (identifier) @local.definition.field)
(field_assignment (field_assignment
. (identifier) @definition.field) . (identifier) @local.definition.field)
(function_declaration (function_declaration
"fn" . (identifier) @definition.function) "fn" . (identifier) @local.definition.function)
(parameter (parameter
(_) @definition.parameter . ":") (_) @local.definition.parameter . ":")
(type_declaration (type_declaration
"type" (identifier) @definition.type . "=") "type" (identifier) @local.definition.type . "=")
(type_declaration (type_declaration
"type" (identifier) @definition.enum . "=" (enum_type)) "type" (identifier) @local.definition.enum . "=" (enum_type))
(let_declaration (let_declaration
"let" . (identifier) @definition.variable ","?) "let" . (identifier) @local.definition.variable ","?)

View file

@ -3,11 +3,11 @@
(component_name) (component_name)
(slot_name) (slot_name)
(tag_name) (tag_name)
] @reference ] @local.reference
; Create a new scope within each HEEx tag, component, and slot ; Create a new scope within each HEEx tag, component, and slot
[ [
(component) (component)
(slot) (slot)
(tag) (tag)
] @scope ] @local.scope

View file

@ -1,4 +1,4 @@
(tisfasTall (tisfasTall
name: (name) @definition.var) name: (name) @local.definition.var)
(name) @reference (name) @local.reference

View file

@ -1 +1 @@
(element) @scope (element) @local.scope

View file

@ -1,17 +1,17 @@
; inherits: c ; inherits: c
(reference_declarator (reference_declarator
(identifier) @definition.var) (identifier) @local.definition.var)
(type_parameter_declaration (type_parameter_declaration
(type_identifier) @definition.type) (type_identifier) @local.definition.type)
(template_declaration) @scope (template_declaration) @local.scope
(template_function (template_function
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
[ [
(foreach_statement) (foreach_statement)
(foreach_instance_statement) (foreach_instance_statement)
(unmasked_statement) (unmasked_statement)
] @scope ] @local.scope

View file

@ -2,88 +2,88 @@
; declarations ; declarations
(program) @scope (program) @local.scope
(class_declaration (class_declaration
body: (_) @scope) body: (_) @local.scope)
(record_declaration (record_declaration
body: (_) @scope) body: (_) @local.scope)
(enum_declaration (enum_declaration
body: (_) @scope) body: (_) @local.scope)
(lambda_expression) @scope (lambda_expression) @local.scope
(enhanced_for_statement) @scope (enhanced_for_statement) @local.scope
; block ; block
(block) @scope (block) @local.scope
; if/else ; if/else
(if_statement) @scope ; if+else (if_statement) @local.scope ; if+else
(if_statement (if_statement
consequence: (_) @scope) ; if body in case there are no braces consequence: (_) @local.scope) ; if body in case there are no braces
(if_statement (if_statement
alternative: (_) @scope) ; else body in case there are no braces alternative: (_) @local.scope) ; else body in case there are no braces
; try/catch ; try/catch
(try_statement) @scope ; covers try+catch, individual try and catch are covered by (block) (try_statement) @local.scope ; covers try+catch, individual try and catch are covered by (block)
(catch_clause) @scope ; needed because `Exception` variable (catch_clause) @local.scope ; needed because `Exception` variable
; loops ; loops
(for_statement) @scope ; whole for_statement because loop iterator variable (for_statement) @local.scope ; whole for_statement because loop iterator variable
(for_statement ; "for" body in case there are no braces (for_statement ; "for" body in case there are no braces
body: (_) @scope) body: (_) @local.scope)
(do_statement (do_statement
body: (_) @scope) body: (_) @local.scope)
(while_statement (while_statement
body: (_) @scope) body: (_) @local.scope)
; Functions ; Functions
(constructor_declaration) @scope (constructor_declaration) @local.scope
(method_declaration) @scope (method_declaration) @local.scope
;; DEFINITIONS ;; DEFINITIONS
(package_declaration (package_declaration
(identifier) @definition.namespace) (identifier) @local.definition.namespace)
(class_declaration (class_declaration
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(record_declaration (record_declaration
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(enum_declaration (enum_declaration
name: (identifier) @definition.enum) name: (identifier) @local.definition.enum)
(method_declaration (method_declaration
name: (identifier) @definition.method) name: (identifier) @local.definition.method)
(local_variable_declaration (local_variable_declaration
declarator: (variable_declarator declarator: (variable_declarator
name: (identifier) @definition.var)) name: (identifier) @local.definition.var))
(enhanced_for_statement ; for (var item : items) { (enhanced_for_statement ; for (var item : items) {
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(formal_parameter (formal_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(catch_formal_parameter (catch_formal_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(inferred_parameters (identifier) @definition.parameter) ; (x,y) -> ... (inferred_parameters (identifier) @local.definition.parameter) ; (x,y) -> ...
(lambda_expression (lambda_expression
parameters: (identifier) @definition.parameter) ; x -> ... parameters: (identifier) @local.definition.parameter) ; x -> ...
((scoped_identifier ((scoped_identifier
(identifier) @definition.import) (identifier) @local.definition.import)
(#has-ancestor? @definition.import import_declaration)) (#has-ancestor? @local.definition.import import_declaration))
(field_declaration (field_declaration
declarator: (variable_declarator declarator: (variable_declarator
name: (identifier) @definition.field)) name: (identifier) @local.definition.field))
;; REFERENCES ;; REFERENCES
(identifier) @reference (identifier) @local.reference
(type_identifier) @reference (type_identifier) @local.reference

View file

@ -7,45 +7,45 @@
; this.quuz = "qux"; ; this.quuz = "qux";
; } ; }
(field_definition (field_definition
property: [(property_identifier) (private_property_identifier)] @definition.var) property: [(property_identifier) (private_property_identifier)] @local.definition.var)
; this.foo = "bar" ; this.foo = "bar"
(assignment_expression (assignment_expression
left: (member_expression left: (member_expression
object: (this) object: (this)
property: (property_identifier) @definition.var)) property: (property_identifier) @local.definition.var))
(formal_parameters (formal_parameters
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
; function(arg = []) { ; function(arg = []) {
(formal_parameters (formal_parameters
(assignment_pattern (assignment_pattern
left: (identifier) @definition.parameter)) left: (identifier) @local.definition.parameter))
; x => x ; x => x
(arrow_function (arrow_function
parameter: (identifier) @definition.parameter) parameter: (identifier) @local.definition.parameter)
;; ({ a }) => null ;; ({ a }) => null
(formal_parameters (formal_parameters
(object_pattern (object_pattern
(shorthand_property_identifier_pattern) @definition.parameter)) (shorthand_property_identifier_pattern) @local.definition.parameter))
;; ({ a: b }) => null ;; ({ a: b }) => null
(formal_parameters (formal_parameters
(object_pattern (object_pattern
(pair_pattern (pair_pattern
value: (identifier) @definition.parameter))) value: (identifier) @local.definition.parameter)))
;; ([ a ]) => null ;; ([ a ]) => null
(formal_parameters (formal_parameters
(array_pattern (array_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
(formal_parameters (formal_parameters
(rest_pattern (rest_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
; Both methods are matched here. ; Both methods are matched here.
; ;
@ -54,10 +54,10 @@
; baz(y) { y } ; baz(y) { y }
; } ; }
(method_definition (method_definition
([(property_identifier) (private_property_identifier)] @definition.function) ([(property_identifier) (private_property_identifier)] @local.definition.function)
(#set! definition.var.scope parent)) (#set! definition.var.scope parent))
; this.foo() ; this.foo()
(member_expression (member_expression
object: (this) object: (this)
property: (property_identifier) @reference) property: (property_identifier) @local.reference)

View file

@ -1,7 +1,7 @@
(funcdef (identifier) @definition.function) (funcdef (identifier) @local.definition.function)
(funcdefargs (identifier) @definition.parameter) (funcdefargs (identifier) @local.definition.parameter)
(funcname) @reference (funcname) @local.reference
(index (identifier) @reference) (index (identifier) @local.reference)

View file

@ -1,4 +1,4 @@
[ [
(object) (object)
(array) (array)
] @scope ] @local.scope

View file

@ -1,17 +1,17 @@
(parenthesis) @scope (parenthesis) @local.scope
(anonymous_function) @scope (anonymous_function) @local.scope
(object) @scope (object) @local.scope
(field) @scope (field) @local.scope
(local_bind) @scope (local_bind) @local.scope
(field (field
function: (fieldname (id) @definition.function) function: (fieldname (id) @local.definition.function)
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(bind (id) @definition.var) (bind (id) @local.definition.var)
(bind function: (id) @definition.function) (bind function: (id) @local.definition.function)
(param (id) @definition.parameter) (param (id) @local.definition.parameter)
(id) @reference (id) @local.reference
;(fieldname (id) (#is-not? local)) ; (#is-not?) not supported yet ;(fieldname (id) (#is-not? local)) ; (#is-not?) not supported yet

View file

@ -1,71 +1,71 @@
;;; Variables ;;; Variables
(assignment (assignment
(identifier) @definition.var) (identifier) @local.definition.var)
(assignment (assignment
(tuple_expression (tuple_expression
(identifier) @definition.var)) (identifier) @local.definition.var))
;;; let/const bindings ;;; let/const bindings
(let_binding (let_binding
(identifier) @definition.var) (identifier) @local.definition.var)
(let_binding (let_binding
(tuple_expression (tuple_expression
(identifier) @definition.var)) (identifier) @local.definition.var))
;;; For bindings ;;; For bindings
(for_binding (for_binding
(identifier) @definition.var) (identifier) @local.definition.var)
(for_binding (for_binding
(tuple_expression (tuple_expression
(identifier) @definition.var)) (identifier) @local.definition.var))
;;; Types ;;; Types
(struct_definition (struct_definition
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(abstract_definition (abstract_definition
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(abstract_definition (abstract_definition
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(type_parameter_list (type_parameter_list
(identifier) @definition.type) (identifier) @local.definition.type)
;;; Module imports ;;; Module imports
(import_statement (import_statement
(identifier) @definition.import) (identifier) @local.definition.import)
;;; Parameters ;;; Parameters
(parameter_list (parameter_list
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(optional_parameter . (optional_parameter .
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(slurp_parameter (slurp_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(typed_parameter (typed_parameter
parameter: (identifier) @definition.parameter parameter: (identifier) @local.definition.parameter
(_)) (_))
(function_expression (function_expression
. (identifier) @definition.parameter) ;; Single parameter arrow function . (identifier) @local.definition.parameter) ;; Single parameter arrow function
;;; Function/macro definitions ;;; Function/macro definitions
(function_definition (function_definition
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
(short_function_definition (short_function_definition
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
(macro_definition (macro_definition
name: (identifier) @definition.macro) @scope name: (identifier) @local.definition.macro) @local.scope
(identifier) @reference (identifier) @local.reference
[ [
(for_statement) (for_statement)
@ -76,4 +76,4 @@
(let_statement) (let_statement)
(quote_statement) (quote_statement)
(do_clause) (do_clause)
] @scope ] @local.scope

View file

@ -1,7 +1,7 @@
[ [
(symbol) (symbol)
(prompt) (prompt)
] @reference ] @local.reference
[ [
(config) (config)
@ -10,8 +10,8 @@
(comment_entry) (comment_entry)
(menu) (menu)
(if) (if)
] @scope ] @local.scope
(type_definition (prompt) @definition.var) (type_definition (prompt) @local.definition.var)
(type_definition (input_prompt (prompt) @definition.var)) (type_definition (input_prompt (prompt) @local.definition.var))
(type_definition_default (expression (prompt) @definition.var)) (type_definition_default (expression (prompt) @local.definition.var))

View file

@ -1,10 +1,10 @@
(document) @scope (document) @local.scope
(node (node_children) @scope) (node (node_children) @local.scope)
(node_children (node) @scope) (node_children (node) @local.scope)
(identifier) @reference (identifier) @local.reference
(node_field) @definition.field (node_field) @local.definition.field
(node (identifier) @definition.type) (node (identifier) @local.definition.type)
(type) @definition.type (type) @local.definition.type

View file

@ -1,23 +1,23 @@
;;; Imports ;;; Imports
(package_header (package_header
. (identifier) @definition.namespace) . (identifier) @local.definition.namespace)
(import_header (import_header
(identifier (identifier
(simple_identifier) @definition.import .) (simple_identifier) @local.definition.import .)
(import_alias (import_alias
(type_identifier) @definition.import)?) (type_identifier) @local.definition.import)?)
;;; Functions ;;; Functions
(function_declaration (function_declaration
. (simple_identifier) @definition.function . (simple_identifier) @local.definition.function
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(class_body (class_body
(function_declaration (function_declaration
. (simple_identifier) @definition.method) . (simple_identifier) @local.definition.method)
(#set! "definition.method.scope" "parent")) (#set! "definition.method.scope" "parent"))
;;; Variables ;;; Variables
@ -25,38 +25,38 @@
(function_declaration (function_declaration
(function_value_parameters (function_value_parameters
(parameter (parameter
(simple_identifier) @definition.parameter))) (simple_identifier) @local.definition.parameter)))
(lambda_literal (lambda_literal
(lambda_parameters (lambda_parameters
(variable_declaration (variable_declaration
(simple_identifier) @definition.parameter))) (simple_identifier) @local.definition.parameter)))
(class_body (class_body
(property_declaration (property_declaration
(variable_declaration (variable_declaration
(simple_identifier) @definition.field))) (simple_identifier) @local.definition.field)))
(class_declaration (class_declaration
(primary_constructor (primary_constructor
(class_parameter (class_parameter
(simple_identifier) @definition.field))) (simple_identifier) @local.definition.field)))
(enum_class_body (enum_class_body
(enum_entry (enum_entry
(simple_identifier) @definition.field)) (simple_identifier) @local.definition.field))
(variable_declaration (variable_declaration
(simple_identifier) @definition.var) (simple_identifier) @local.definition.var)
;;; Types ;;; Types
(class_declaration (class_declaration
(type_identifier) @definition.type (type_identifier) @local.definition.type
(#set! "definition.type.scope" "parent")) (#set! "definition.type.scope" "parent"))
(type_alias (type_alias
(type_identifier) @definition.type (type_identifier) @local.definition.type
(#set! "definition.type.scope" "parent")) (#set! "definition.type.scope" "parent"))
;;; Scopes ;;; Scopes
@ -81,4 +81,4 @@
(enum_entry) (enum_entry)
(interpolated_expression) (interpolated_expression)
] @scope ] @local.scope

View file

@ -1,5 +1,5 @@
(nonterminal_name (nonterminal_name
(macro_id) @definition.function) (macro_id) @local.definition.function)
(nonterminal_name (nonterminal_name
(identifier) @definition.function) (identifier) @local.definition.function)

View file

@ -4,12 +4,12 @@
(symbol) (symbol)
(filename) (filename)
(quoted_symbol) (quoted_symbol)
] @reference ] @local.reference
; Definitions ; Definitions
(output_section name: (symbol) @definition.var) (output_section name: (symbol) @local.definition.var)
(memory_command name: (symbol) @definition.var) (memory_command name: (symbol) @local.definition.var)
(phdrs_command name: (symbol) @definition.var) (phdrs_command name: (symbol) @local.definition.var)

View file

@ -1,15 +1,15 @@
[(anonymous_function) (binding) (def) (let)] @scope [(anonymous_function) (binding) (def) (let)] @local.scope
(anonymous_argument (var) @definition.parameter) (anonymous_argument (var) @local.definition.parameter)
(labeled_argument label: (var) @definition.parameter) (labeled_argument label: (var) @local.definition.parameter)
(binding (binding
defined: (var) @definition.var) defined: (var) @local.definition.var)
(def defined: (var) @definition.var) (def defined: (var) @local.definition.var)
(let defined: (var) @definition.var) (let defined: (var) @local.definition.var)
(meth_pattern (var) @definition.var) (meth_pattern (var) @local.definition.var)
(list_pattern (var) @definition.var) (list_pattern (var) @local.definition.var)
(tuple_pattern (var) @definition.var) (tuple_pattern (var) @local.definition.var)
(spread (var) @definition.var) (spread (var) @local.definition.var)
(var) @reference (var) @local.reference

View file

@ -9,43 +9,43 @@
(for_statement) (for_statement)
(function_declaration) (function_declaration)
(function_definition) (function_definition)
] @scope ] @local.scope
; Definitions ; Definitions
(assignment_statement (assignment_statement
(variable_list (variable_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment_statement (assignment_statement
(variable_list (variable_list
(dot_index_expression . (_) @definition.associated (identifier) @definition.var))) (dot_index_expression . (_) @local.definition.associated (identifier) @local.definition.var)))
((function_declaration ((function_declaration
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
((function_declaration ((function_declaration
name: (dot_index_expression name: (dot_index_expression
. (_) @definition.associated (identifier) @definition.function)) . (_) @local.definition.associated (identifier) @local.definition.function))
(#set! definition.method.scope "parent")) (#set! definition.method.scope "parent"))
((function_declaration ((function_declaration
name: (method_index_expression name: (method_index_expression
. (_) @definition.associated (identifier) @definition.method)) . (_) @local.definition.associated (identifier) @local.definition.method))
(#set! definition.method.scope "parent")) (#set! definition.method.scope "parent"))
(for_generic_clause (for_generic_clause
(variable_list (variable_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_numeric_clause (for_numeric_clause
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(parameters (identifier) @definition.parameter) (parameters (identifier) @local.definition.parameter)
; References ; References
[ [
(identifier) (identifier)
] @reference ] @local.reference

View file

@ -9,43 +9,43 @@
(for_statement) (for_statement)
(function_declaration) (function_declaration)
(function_definition) (function_definition)
] @scope ] @local.scope
; References ; References
[ [
(identifier) (identifier)
] @reference ] @local.reference
; Definitions ; Definitions
(assignment_statement (assignment_statement
(variable_list (variable_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment_statement (assignment_statement
(variable_list (variable_list
(dot_index_expression . (_) @definition.associated (identifier) @definition.var))) (dot_index_expression . (_) @local.definition.associated (identifier) @local.definition.var)))
((function_declaration ((function_declaration
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
((function_declaration ((function_declaration
name: (dot_index_expression name: (dot_index_expression
. (_) @definition.associated (identifier) @definition.function)) . (_) @local.definition.associated (identifier) @local.definition.function))
(#set! definition.method.scope "parent")) (#set! definition.method.scope "parent"))
((function_declaration ((function_declaration
name: (method_index_expression name: (method_index_expression
. (_) @definition.associated (identifier) @definition.method)) . (_) @local.definition.associated (identifier) @local.definition.method))
(#set! definition.method.scope "parent")) (#set! definition.method.scope "parent"))
(for_generic_clause (for_generic_clause
(variable_list (variable_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_numeric_clause (for_numeric_clause
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(parameter (identifier) @definition.parameter) (parameter (identifier) @local.definition.parameter)

View file

@ -1,22 +1,22 @@
(macro_definition (macro_definition
name: (symbol) @definition.macro) name: (symbol) @local.definition.macro)
(symbol_assignment (symbol_assignment
name: (symbol) @definition.var) name: (symbol) @local.definition.var)
(label (label
name: (symbol) @definition.constant) name: (symbol) @local.definition.constant)
(symbol_definition (symbol_definition
name: (symbol) @definition.constant) name: (symbol) @local.definition.constant)
(offset_definition (offset_definition
name: (symbol) @definition.constant) name: (symbol) @local.definition.constant)
(register_definition (register_definition
name: (symbol) @definition.constant) name: (symbol) @local.definition.constant)
(register_list_definition (register_list_definition
name: (symbol) @definition.constant) name: (symbol) @local.definition.constant)
(external_reference (external_reference
symbols: (symbol_list symbols: (symbol_list
(symbol) @definition.import)) (symbol) @local.definition.import))
(symbol) @reference (symbol) @local.reference

View file

@ -1,20 +1,20 @@
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(function_definition (function_definition
name: (identifier) @definition.function name: (identifier) @local.definition.function
(function_arguments (function_arguments
(identifier)* @definition.parameter (identifier)* @local.definition.parameter
("," (identifier) @definition.parameter)*)?) @scope ("," (identifier) @local.definition.parameter)*)?) @local.scope
(assignment left: (identifier) @definition.var) (assignment left: (identifier) @local.definition.var)
(multioutput_variable (identifier) @definition.var) (multioutput_variable (identifier) @local.definition.var)
(iterator . (identifier) @definition.var) (iterator . (identifier) @local.definition.var)
(lambda (arguments (identifier) @definition.parameter)) (lambda (arguments (identifier) @local.definition.parameter))
(global_operator (identifier) @definition.var) (global_operator (identifier) @local.definition.var)
(persistent_operator (identifier) @definition.var) (persistent_operator (identifier) @local.definition.var)
(catch_clause (identifier) @definition) (catch_clause (identifier) @local.definition)

View file

@ -1,7 +1,7 @@
(region) @scope (region) @local.scope
(func_arg_list (value_use) @definition.var) (func_arg_list (value_use) @local.definition.var)
(block_arg_list (value_use) @definition.var) (block_arg_list (value_use) @local.definition.var)
(op_result (value_use) @definition.var) (op_result (value_use) @local.definition.var)
(value_use) @reference (value_use) @local.reference

View file

@ -1,112 +1,112 @@
; ============================================================================== ; ==============================================================================
; @definition ; various definitions ; @local.definition ; various definitions
(block (block
label: [ label: [
(identifier) @definition (identifier) @local.definition
(accent_quoted) @definition (accent_quoted) @local.definition
]) ])
; ============================================================================== ; ==============================================================================
; @definition.constant ; constants ; @local.definition.constant ; constants
(const_section (const_section
(variable_declaration (variable_declaration
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.constant (identifier) @local.definition.constant
(accent_quoted) @definition.constant (accent_quoted) @local.definition.constant
(exported_symbol (identifier) @definition.constant) (exported_symbol (identifier) @local.definition.constant)
(exported_symbol (accent_quoted) @definition.constant) (exported_symbol (accent_quoted) @local.definition.constant)
])) ]))
type: (type_expression)? @definition.associated)) type: (type_expression)? @local.definition.associated))
; ============================================================================== ; ==============================================================================
; @definition.function ; functions ; @local.definition.function ; functions
(proc_declaration (proc_declaration
name: [ name: [
(identifier) @definition.function (identifier) @local.definition.function
(accent_quoted) @definition.function (accent_quoted) @local.definition.function
(exported_symbol (identifier) @definition.function) (exported_symbol (identifier) @local.definition.function)
(exported_symbol (accent_quoted) @definition.function) (exported_symbol (accent_quoted) @local.definition.function)
] ]
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(func_declaration (func_declaration
name: [ name: [
(identifier) @definition.function (identifier) @local.definition.function
(accent_quoted) @definition.function (accent_quoted) @local.definition.function
(exported_symbol (identifier) @definition.function) (exported_symbol (identifier) @local.definition.function)
(exported_symbol (accent_quoted) @definition.function) (exported_symbol (accent_quoted) @local.definition.function)
] ]
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(iterator_declaration (iterator_declaration
name: [ name: [
(identifier) @definition.function (identifier) @local.definition.function
(accent_quoted) @definition.function (accent_quoted) @local.definition.function
(exported_symbol (identifier) @definition.function) (exported_symbol (identifier) @local.definition.function)
(exported_symbol (accent_quoted) @definition.function) (exported_symbol (accent_quoted) @local.definition.function)
] ]
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(converter_declaration (converter_declaration
name: [ name: [
(identifier) @definition.function (identifier) @local.definition.function
(accent_quoted) @definition.function (accent_quoted) @local.definition.function
(exported_symbol (identifier) @definition.function) (exported_symbol (identifier) @local.definition.function)
(exported_symbol (accent_quoted) @definition.function) (exported_symbol (accent_quoted) @local.definition.function)
] ]
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
; ============================================================================== ; ==============================================================================
; @definition.method ; methods ; @local.definition.method ; methods
(method_declaration (method_declaration
name: [ name: [
(identifier) @definition.method (identifier) @local.definition.method
(accent_quoted) @definition.method (accent_quoted) @local.definition.method
(exported_symbol (identifier) @definition.method) (exported_symbol (identifier) @local.definition.method)
(exported_symbol (accent_quoted) @definition.method) (exported_symbol (accent_quoted) @local.definition.method)
] ]
(#set! "definition.method.scope" "parent")) (#set! "definition.method.scope" "parent"))
; ============================================================================== ; ==============================================================================
; @definition.var ; variables ; @local.definition.var ; variables
(var_section (var_section
(variable_declaration (variable_declaration
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.var (identifier) @local.definition.var
(accent_quoted) @definition.var (accent_quoted) @local.definition.var
(exported_symbol (identifier) @definition.var) (exported_symbol (identifier) @local.definition.var)
(exported_symbol (accent_quoted) @definition.var) (exported_symbol (accent_quoted) @local.definition.var)
])) ]))
type: (type_expression)? @definition.associated)) type: (type_expression)? @local.definition.associated))
(let_section (let_section
(variable_declaration (variable_declaration
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.var (identifier) @local.definition.var
(accent_quoted) @definition.var (accent_quoted) @local.definition.var
(exported_symbol (identifier) @definition.var) (exported_symbol (identifier) @local.definition.var)
(exported_symbol (accent_quoted) @definition.var) (exported_symbol (accent_quoted) @local.definition.var)
])) ]))
type: (type_expression)? @definition.associated)) type: (type_expression)? @local.definition.associated))
(for (for
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.var (identifier) @local.definition.var
(accent_quoted) @definition.var (accent_quoted) @local.definition.var
]))) ])))
(try (try
@ -114,84 +114,84 @@
values: (expression_list values: (expression_list
(infix_expression (infix_expression
right: [ right: [
(identifier) @definition.var (identifier) @local.definition.var
(accent_quoted) @definition.var (accent_quoted) @local.definition.var
])))) ]))))
; ============================================================================== ; ==============================================================================
; @definition.parameter ; parameters ; @local.definition.parameter ; parameters
(parameter_declaration (parameter_declaration
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted) @definition.parameter (accent_quoted) @local.definition.parameter
])) ]))
type: (type_expression)? @definition.associated) type: (type_expression)? @local.definition.associated)
(concept_declaration (concept_declaration
parameters: parameters:
(parameter_list [ (parameter_list [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
])) ]))
(var_parameter [ (var_parameter [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
]) ])
(type_parameter [ (type_parameter [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
]) ])
(static_parameter [ (static_parameter [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
]) ])
(ref_parameter [ (ref_parameter [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
]) ])
(pointer_parameter [ (pointer_parameter [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(accent_quoted (identifier) @definition.parameter) (accent_quoted (identifier) @local.definition.parameter)
]) ])
; ============================================================================== ; ==============================================================================
; @definition.macro ; preprocessor macros ; @local.definition.macro ; preprocessor macros
(template_declaration (template_declaration
name: [ name: [
(identifier) @definition.macro (identifier) @local.definition.macro
(accent_quoted) @definition.macro (accent_quoted) @local.definition.macro
(exported_symbol (identifier) @definition.macro) (exported_symbol (identifier) @local.definition.macro)
(exported_symbol (accent_quoted) @definition.macro) (exported_symbol (accent_quoted) @local.definition.macro)
] ]
(#set! "definition.macro.scope" "parent")) (#set! "definition.macro.scope" "parent"))
(macro_declaration (macro_declaration
name: [ name: [
(identifier) @definition.macro (identifier) @local.definition.macro
(accent_quoted) @definition.macro (accent_quoted) @local.definition.macro
(exported_symbol (identifier) @definition.macro) (exported_symbol (identifier) @local.definition.macro)
(exported_symbol (accent_quoted) @definition.macro) (exported_symbol (accent_quoted) @local.definition.macro)
] ]
(#set! "definition.macro.scope" "parent")) (#set! "definition.macro.scope" "parent"))
; ============================================================================== ; ==============================================================================
; @definition.type ; types or classes ; @local.definition.type ; types or classes
(type_declaration (type_declaration
(type_symbol_declaration (type_symbol_declaration
name: [ name: [
(identifier) @definition.type (identifier) @local.definition.type
(accent_quoted) @definition.type (accent_quoted) @local.definition.type
(exported_symbol (identifier) @definition.type) (exported_symbol (identifier) @local.definition.type)
(exported_symbol (accent_quoted) @definition.type) (exported_symbol (accent_quoted) @local.definition.type)
])) ]))
; ============================================================================== ; ==============================================================================
; @definition.field ; fields or properties ; @local.definition.field ; fields or properties
; object_declaration ; object_declaration
; variant_declaration ; variant_declaration
@ -202,78 +202,78 @@
(symbol_declaration_list (symbol_declaration_list
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.field (identifier) @local.definition.field
(accent_quoted) @definition.field (accent_quoted) @local.definition.field
(exported_symbol (identifier) @definition.field) (exported_symbol (identifier) @local.definition.field)
(exported_symbol (accent_quoted) @definition.field) (exported_symbol (accent_quoted) @local.definition.field)
])) ]))
type: (type_expression)? @definition.associated) type: (type_expression)? @local.definition.associated)
; ============================================================================== ; ==============================================================================
; @definition.enum ; enumerations ; @local.definition.enum ; enumerations
(enum_declaration (enum_declaration
(enum_field_declaration (enum_field_declaration
(symbol_declaration (symbol_declaration
name: [ name: [
(identifier) @definition.enum (identifier) @local.definition.enum
(accent_quoted) @definition.enum (accent_quoted) @local.definition.enum
]))) ])))
; ============================================================================== ; ==============================================================================
; @definition.namespace ; modules or namespaces ; @local.definition.namespace ; modules or namespaces
; @definition.import ; imported names ; @local.definition.import ; imported names
(import_statement (import_statement
(expression_list (expression_list
(identifier) @definition.namespace)) (identifier) @local.definition.namespace))
(import_statement (import_statement
(expression_list (expression_list
(infix_expression (infix_expression
operator: "as" operator: "as"
right: (identifier) @definition.namespace))) right: (identifier) @local.definition.namespace)))
(import_statement (import_statement
(expression_list (expression_list
(infix_expression (infix_expression
operator: (operator) @_operator operator: (operator) @_operator
right: [ right: [
(identifier) @definition.namespace (identifier) @local.definition.namespace
(array_construction (identifier) @definition.namespace) (array_construction (identifier) @local.definition.namespace)
])) ]))
(#eq? @_operator "/")) (#eq? @_operator "/"))
(import_from_statement (import_from_statement
module: (infix_expression module: (infix_expression
operator: (operator) @_operator operator: (operator) @_operator
right: (identifier) @definition.namespace) right: (identifier) @local.definition.namespace)
(expression_list [ (expression_list [
(identifier) @definition.import (identifier) @local.definition.import
(accent_quoted) @definition.import (accent_quoted) @local.definition.import
]) ])
(#eq? @_operator "/")) (#eq? @_operator "/"))
; ============================================================================== ; ==============================================================================
; @scope ; scope block ; @local.scope ; scope block
; (when) ; (when)
; NOTE: `when` does actually not create a scope ; NOTE: `when` does actually not create a scope
(if (if
consequence: (statement_list) @scope consequence: (statement_list) @local.scope
alternative: (elif_branch)* @scope alternative: (elif_branch)* @local.scope
alternative: (else_branch)? @scope) alternative: (else_branch)? @local.scope)
(case (case
alternative: (of_branch)* @scope alternative: (of_branch)* @local.scope
alternative: (elif_branch)* @scope alternative: (elif_branch)* @local.scope
alternative: (else_branch)? @scope) alternative: (else_branch)? @local.scope)
(try (try
body: (statement_list) @scope body: (statement_list) @local.scope
(except_branch) @scope (except_branch) @local.scope
(finally_branch)? @scope) (finally_branch)? @local.scope)
[ [
(for) (for)
@ -294,10 +294,10 @@
(iterator_expression) (iterator_expression)
(concept_declaration) (concept_declaration)
] @scope ] @local.scope
; ============================================================================== ; ==============================================================================
; @reference ; identifier reference ; @local.reference ; identifier reference
(identifier) @reference (identifier) @local.reference
(accent_quoted) @reference (accent_quoted) @local.reference

View file

@ -1,15 +1,15 @@
; let bindings ; let bindings
(let_expression (binding_set (binding . (attrpath) @definition.var))) @scope (let_expression (binding_set (binding . (attrpath) @local.definition.var))) @local.scope
; rec attrsets ; rec attrsets
(rec_attrset_expression (binding_set (binding . (attrpath) @definition.field))) @scope (rec_attrset_expression (binding_set (binding . (attrpath) @local.definition.field))) @local.scope
; functions and parameters ; functions and parameters
(function_expression . [ (function_expression . [
(identifier) @definition.parameter (identifier) @local.definition.parameter
(formals (formal . (identifier) @definition.parameter)) (formals (formal . (identifier) @local.definition.parameter))
]) @scope ]) @local.scope
((formals) "@" (identifier) @definition.parameter) ; I couldn't get this to work properly inside the (function) ((formals) "@" (identifier) @local.definition.parameter) ; I couldn't get this to work properly inside the (function)
(variable_expression (identifier) @reference) (variable_expression (identifier) @local.reference)
(inherited_attrs attr: (identifier) @reference) (inherited_attrs attr: (identifier) @local.reference)

View file

@ -18,60 +18,60 @@
(let_class_expression) (let_class_expression)
(object_expression) (object_expression)
(attribute_payload) (attribute_payload)
] @scope ] @local.scope
; Definitions ; Definitions
;------------ ;------------
(value_pattern) @definition.var (value_pattern) @local.definition.var
(let_binding (let_binding
pattern: (value_name) @definition.var pattern: (value_name) @local.definition.var
(#set! definition.var.scope "parent")) (#set! definition.var.scope "parent"))
(let_binding (let_binding
pattern: (tuple_pattern (value_name) @definition.var) pattern: (tuple_pattern (value_name) @local.definition.var)
(#set! definition.var.scope "parent")) (#set! definition.var.scope "parent"))
(let_binding (let_binding
pattern: (record_pattern (field_pattern (value_name) @definition.var)) pattern: (record_pattern (field_pattern (value_name) @local.definition.var))
(#set! definition.var.scope "parent")) (#set! definition.var.scope "parent"))
(external (value_name) @definition.var) (external (value_name) @local.definition.var)
(type_binding (type_constructor) @definition.type) (type_binding (type_constructor) @local.definition.type)
(abstract_type (type_constructor) @definition.type) (abstract_type (type_constructor) @local.definition.type)
(method_definition (method_name) @definition.method) (method_definition (method_name) @local.definition.method)
(module_binding (module_binding
(module_name) @definition.namespace (module_name) @local.definition.namespace
(#set! definition.namespace.scope "parent")) (#set! definition.namespace.scope "parent"))
(module_parameter (module_name) @definition.namespace) (module_parameter (module_name) @local.definition.namespace)
(module_type_definition (module_type_name) @definition.type) (module_type_definition (module_type_name) @local.definition.type)
; References ; References
;------------ ;------------
(value_path . (value_path .
(value_name) @reference (value_name) @local.reference
(#set! reference.kind "var")) (#set! reference.kind "var"))
(type_constructor_path . (type_constructor_path .
(type_constructor) @reference (type_constructor) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
(method_invocation (method_invocation
(method_name) @reference (method_name) @local.reference
(#set! reference.kind "method")) (#set! reference.kind "method"))
(module_path . (module_path .
(module_name) @reference (module_name) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
(module_type_path . (module_type_path .
(module_type_name) @reference (module_type_name) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))

View file

@ -4,36 +4,36 @@
(block) (block)
(declaration) (declaration)
(statement) (statement)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(package_declaration (identifier) @definition.namespace) (package_declaration (identifier) @local.definition.namespace)
(import_declaration alias: (identifier) @definition.namespace) (import_declaration alias: (identifier) @local.definition.namespace)
(procedure_declaration (identifier) @definition.function) (procedure_declaration (identifier) @local.definition.function)
(struct_declaration (identifier) @definition.type "::") (struct_declaration (identifier) @local.definition.type "::")
(enum_declaration (identifier) @definition.enum "::") (enum_declaration (identifier) @local.definition.enum "::")
(union_declaration (identifier) @definition.type "::") (union_declaration (identifier) @local.definition.type "::")
(variable_declaration (identifier) @definition.var ":=") (variable_declaration (identifier) @local.definition.var ":=")
(const_declaration (identifier) @definition.constant "::") (const_declaration (identifier) @local.definition.constant "::")
(const_type_declaration (identifier) @definition.type ":") (const_type_declaration (identifier) @local.definition.type ":")
(parameter (identifier) @definition.parameter ":"?) (parameter (identifier) @local.definition.parameter ":"?)
(default_parameter (identifier) @definition.parameter ":=") (default_parameter (identifier) @local.definition.parameter ":=")
(field (identifier) @definition.field ":") (field (identifier) @local.definition.field ":")
(label_statement (identifier) @definition ":") (label_statement (identifier) @local.definition ":")

View file

@ -1,25 +1,25 @@
(root) @scope (root) @local.scope
(defProc) @scope (defProc) @local.scope
(lambda) @scope (lambda) @local.scope
(interface (declProc) @scope) (interface (declProc) @local.scope)
(declSection (declProc) @scope) (declSection (declProc) @local.scope)
(declClass (declProc) @scope) (declClass (declProc) @local.scope)
(declHelper (declProc) @scope) (declHelper (declProc) @local.scope)
(declProcRef) @scope (declProcRef) @local.scope
(exceptionHandler) @scope (exceptionHandler) @local.scope
(exceptionHandler variable: (identifier) @definition) (exceptionHandler variable: (identifier) @local.definition)
(declArg name: (identifier) @definition) (declArg name: (identifier) @local.definition)
(declVar name: (identifier) @definition) (declVar name: (identifier) @local.definition)
(declConst name: (identifier) @definition) (declConst name: (identifier) @local.definition)
(declLabel name: (identifier) @definition) (declLabel name: (identifier) @local.definition)
(genericArg name: (identifier) @definition) (genericArg name: (identifier) @local.definition)
(declEnumValue name: (identifier) @definition) (declEnumValue name: (identifier) @local.definition)
(declType name: (identifier) @definition) (declType name: (identifier) @local.definition)
(declType name: (genericTpl entity: (identifier) @definition)) (declType name: (genericTpl entity: (identifier) @local.definition))
(declProc name: (identifier) @definition) (declProc name: (identifier) @local.definition)
(identifier) @reference (identifier) @local.reference

View file

@ -2,86 +2,86 @@
;------- ;-------
((class_declaration ((class_declaration
name: (name) @definition.type) @scope name: (name) @local.definition.type) @local.scope
(#set! definition.type.scope "parent")) (#set! definition.type.scope "parent"))
((method_declaration ((method_declaration
name: (name) @definition.method) @scope name: (name) @local.definition.method) @local.scope
(#set! definition.method.scope "parent")) (#set! definition.method.scope "parent"))
((function_definition ((function_definition
name: (name) @definition.function) @scope name: (name) @local.definition.function) @local.scope
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
(anonymous_function_creation_expression (anonymous_function_creation_expression
(anonymous_function_use_clause (anonymous_function_use_clause
(variable_name (variable_name
(name) @definition.var))) @scope (name) @local.definition.var))) @local.scope
; Definitions ; Definitions
;------------ ;------------
(simple_parameter (simple_parameter
(variable_name (variable_name
(name) @definition.var)) (name) @local.definition.var))
(foreach_statement (foreach_statement
(pair (pair
(variable_name (variable_name
(name) @definition.var))) (name) @local.definition.var)))
(foreach_statement (foreach_statement
(variable_name (variable_name
(name) @reference (name) @local.reference
(#set! reference.kind "var")) (#set! reference.kind "var"))
(variable_name (variable_name
(name) @definition.var)) (name) @local.definition.var))
(property_declaration (property_declaration
(property_element (property_element
(variable_name (variable_name
(name) @definition.field))) (name) @local.definition.field)))
(namespace_use_clause (namespace_use_clause
(qualified_name (qualified_name
(name) @definition.type)) (name) @local.definition.type))
; References ; References
;------------ ;------------
(named_type (named_type
(name) @reference (name) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
(named_type (named_type
(qualified_name) @reference (qualified_name) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
(variable_name (variable_name
(name) @reference (name) @local.reference
(#set! reference.kind "var")) (#set! reference.kind "var"))
(member_access_expression (member_access_expression
name: (name) @reference name: (name) @local.reference
(#set! reference.kind "field")) (#set! reference.kind "field"))
(member_call_expression (member_call_expression
name: (name) @reference name: (name) @local.reference
(#set! reference.kind "method")) (#set! reference.kind "method"))
(function_call_expression (function_call_expression
function: (qualified_name function: (qualified_name
(name) @reference (name) @local.reference
(#set! reference.kind "function"))) (#set! reference.kind "function")))
(object_creation_expression (object_creation_expression
(qualified_name (qualified_name
(name) @reference (name) @local.reference
(#set! reference.kind "type"))) (#set! reference.kind "type")))
(scoped_call_expression (scoped_call_expression
scope: (qualified_name scope: (qualified_name
(name) @reference (name) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
name: (name) @reference name: (name) @local.reference
(#set! reference.kind "method")) (#set! reference.kind "method"))

View file

@ -31,61 +31,61 @@
(array_literal) (array_literal)
(object_literal) (object_literal)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(field (field
name: (identifier) @definition.field) name: (identifier) @local.definition.field)
(use_statement (use_statement
(identifier) @definition.import) (identifier) @local.definition.import)
(constructor (constructor
(identifier) @definition.method) (identifier) @local.definition.method)
(method (method
(identifier) @definition.method) (identifier) @local.definition.method)
(behavior (behavior
(identifier) @definition.method) (identifier) @local.definition.method)
(actor_definition (actor_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(type_alias (type_alias
(identifier) @definition.type) (identifier) @local.definition.type)
(class_definition (class_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(primitive_definition (primitive_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(interface_definition (interface_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(trait_definition (trait_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(struct_definition (struct_definition
(identifier) @definition.type) (identifier) @local.definition.type)
(parameter (parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(variable_declaration (variable_declaration
(identifier) @definition.var) (identifier) @local.definition.var)
(for_statement (for_statement
[ [
(identifier) @definition.var (identifier) @local.definition.var
(tuple_expression (identifier) @definition.var) (tuple_expression (identifier) @local.definition.var)
]) ])
(with_elem (with_elem
(identifier) @definition.var) (identifier) @local.definition.var)

View file

@ -1,3 +1,3 @@
(property (key) @definition) (property (key) @local.definition)
(substitution (key) @reference) (substitution (key) @local.reference)

View file

@ -13,7 +13,7 @@
(case_statement) (case_statement)
(hash) (hash)
(array) (array)
] @scope ] @local.scope
; References ; References
@ -21,26 +21,26 @@
(identifier) (identifier)
(class_identifier) (class_identifier)
(variable) (variable)
] @reference ] @local.reference
; Definitions ; Definitions
(attribute [(identifier) (variable)] @definition.field) (attribute [(identifier) (variable)] @local.definition.field)
(function_declaration (function_declaration
[(identifier) (class_identifier)] @definition.function) [(identifier) (class_identifier)] @local.definition.function)
(include_statement [(identifier) (class_identifier)] @definition.import) (include_statement [(identifier) (class_identifier)] @local.definition.import)
(parameter (variable) @definition.parameter) (parameter (variable) @local.definition.parameter)
(class_definition (class_definition
[(identifier) (class_identifier)] @definition.type) [(identifier) (class_identifier)] @local.definition.type)
(node_definition (node_definition
(node_name (identifier) @definition.type)) (node_name (identifier) @local.definition.type))
(resource_declaration (resource_declaration
[(identifier) (class_identifier)] @definition.type) [(identifier) (class_identifier)] @local.definition.type)
(assignment . (variable) @definition.var) (assignment . (variable) @local.definition.var)

View file

@ -1,4 +1,4 @@
(signature name: (variable)) @definition.type (signature name: (variable)) @local.definition.type
(function name: (variable)) @definition.function (function name: (variable)) @local.definition.function
(pat_name (variable)) @definition (pat_name (variable)) @local.definition
(exp_name (variable)) @reference (exp_name (variable)) @local.reference

View file

@ -1,115 +1,115 @@
;;; Program structure ;;; Program structure
(module) @scope (module) @local.scope
(class_definition (class_definition
body: (block body: (block
(expression_statement (expression_statement
(assignment (assignment
left: (identifier) @definition.field)))) @scope left: (identifier) @local.definition.field)))) @local.scope
(class_definition (class_definition
body: (block body: (block
(expression_statement (expression_statement
(assignment (assignment
left: (_ left: (_
(identifier) @definition.field))))) @scope (identifier) @local.definition.field))))) @local.scope
; Imports ; Imports
(aliased_import (aliased_import
alias: (identifier) @definition.import) alias: (identifier) @local.definition.import)
(import_statement (import_statement
name: (dotted_name ((identifier) @definition.import))) name: (dotted_name ((identifier) @local.definition.import)))
(import_from_statement (import_from_statement
name: (dotted_name ((identifier) @definition.import))) name: (dotted_name ((identifier) @local.definition.import)))
; Function with parameters, defines parameters ; Function with parameters, defines parameters
(parameters (parameters
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(default_parameter (default_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(typed_parameter (typed_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(typed_default_parameter (typed_default_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
; *args parameter ; *args parameter
(parameters (parameters
(list_splat_pattern (list_splat_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
; **kwargs parameter ; **kwargs parameter
(parameters (parameters
(dictionary_splat_pattern (dictionary_splat_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
; Function defines function and scope ; Function defines function and scope
((function_definition ((function_definition
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
((class_definition ((class_definition
name: (identifier) @definition.type) @scope name: (identifier) @local.definition.type) @local.scope
(#set! definition.type.scope "parent")) (#set! definition.type.scope "parent"))
(class_definition (class_definition
body: (block body: (block
(function_definition (function_definition
name: (identifier) @definition.method))) name: (identifier) @local.definition.method)))
;;; Loops ;;; Loops
; not a scope! ; not a scope!
(for_statement (for_statement
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_statement (for_statement
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_statement (for_statement
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
; not a scope! ; not a scope!
;(while_statement) @scope ;(while_statement) @local.scope
; for in list comprehension ; for in list comprehension
(for_in_clause (for_in_clause
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(for_in_clause (for_in_clause
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_in_clause (for_in_clause
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(dictionary_comprehension) @scope (dictionary_comprehension) @local.scope
(list_comprehension) @scope (list_comprehension) @local.scope
(set_comprehension) @scope (set_comprehension) @local.scope
;;; Assignments ;;; Assignments
(assignment (assignment
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(assignment (assignment
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment (assignment
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment (assignment
left: (attribute left: (attribute
(identifier) (identifier)
(identifier) @definition.field)) (identifier) @local.definition.field))
; Walrus operator x := 1 ; Walrus operator x := 1
(named_expression (named_expression
(identifier) @definition.var) (identifier) @local.definition.var)
(as_pattern (as_pattern
alias: (as_pattern_target) @definition.var) alias: (as_pattern_target) @local.definition.var)
;;; REFERENCES ;;; REFERENCES
(identifier) @reference (identifier) @local.reference

View file

@ -1,30 +1,30 @@
; SCOPES ; SCOPES
(module) @scope (module) @local.scope
(dataclass) @scope (dataclass) @local.scope
(datatype) @scope (datatype) @local.scope
;; TODO does not work ;; TODO does not work
;(classMember (body) @scope) ;(classMember (body) @local.scope)
(memberPredicate (body) @scope) (memberPredicate (body) @local.scope)
(classlessPredicate (body) @scope) (classlessPredicate (body) @local.scope)
(quantified (conjunction) @scope) (quantified (conjunction) @local.scope)
(select) @scope (select) @local.scope
; DEFINITIONS ; DEFINITIONS
; module ; module
(module name: (moduleName) @definition.namespace) (module name: (moduleName) @local.definition.namespace)
; classes ; classes
(dataclass name: (className) @definition.type) (dataclass name: (className) @local.definition.type)
(datatype name: (className) @definition.type) (datatype name: (className) @local.definition.type)
; predicates ; predicates
(charpred (className) @definition.method) (charpred (className) @local.definition.method)
(memberPredicate name: (predicateName) @definition.method) (memberPredicate name: (predicateName) @local.definition.method)
(classlessPredicate name: (predicateName) @definition.function) (classlessPredicate name: (predicateName) @local.definition.function)
; variables ; variables
(varDecl (varName (simpleId) @definition.var)) (varDecl (varName (simpleId) @local.definition.var))
; REFERENCES ; REFERENCES
(simpleId) @reference (simpleId) @local.reference

View file

@ -1,15 +1,15 @@
(program) @scope (program) @local.scope
(program (named_node) @scope) (program (named_node) @local.scope)
(program (anonymous_node) @scope) (program (anonymous_node) @local.scope)
(program (grouping) @scope) (program (grouping) @local.scope)
(identifier) @reference (identifier) @local.reference
(named_node (named_node
(capture) @definition.var) (capture) @local.definition.var)
(anonymous_node (anonymous_node
(capture) @definition.var) (capture) @local.definition.var)
(grouping (grouping
(capture) @definition.var) (capture) @local.definition.var)

View file

@ -1,11 +1,11 @@
; locals.scm ; locals.scm
(function_definition) @scope (function_definition) @local.scope
(formal_parameters (identifier) @definition.parameter) (formal_parameters (identifier) @local.definition.parameter)
(left_assignment name: (identifier) @definition) (left_assignment name: (identifier) @local.definition)
(equals_assignment name: (identifier) @definition) (equals_assignment name: (identifier) @local.definition)
(right_assignment name: (identifier) @definition) (right_assignment name: (identifier) @local.definition)
(identifier) @reference (identifier) @local.reference

View file

@ -1,5 +1,5 @@
(rule_set (selectors (id_selector))) @scope (rule_set (selectors (id_selector))) @local.scope
(block (declaration (property_name) @definition.var)) (block (declaration (property_name) @local.definition.var))
(reference_value name:(identifier) @reference) (reference_value name:(identifier) @local.reference)

View file

@ -1 +1 @@
(body) @scope (body) @local.scope

View file

@ -1,12 +1,12 @@
(source_file) @scope (source_file) @local.scope
(source_file (array) @scope) (source_file (array) @local.scope)
(source_file (map) @scope) (source_file (map) @local.scope)
(source_file (struct) @scope) (source_file (struct) @local.scope)
(source_file (tuple) @scope) (source_file (tuple) @local.scope)
(identifier) @reference (identifier) @local.reference
(struct_entry (identifier) @definition.field) (struct_entry (identifier) @local.definition.field)
(struct_entry (identifier) @definition.enum (enum_variant)) (struct_entry (identifier) @local.definition.enum (enum_variant))
(struct (struct_name) @definition.type) (struct (struct_name) @local.definition.type)

View file

@ -1,32 +1,32 @@
;; Scopes ;; Scopes
(document) @scope (document) @local.scope
(directive) @scope (directive) @local.scope
;; Definitions ;; Definitions
(title) @definition (title) @local.definition
(substitution_definition (substitution_definition
name: (substitution) @definition) name: (substitution) @local.definition)
(footnote (footnote
name: (label) @definition) name: (label) @local.definition)
(citation (citation
name: (label) @definition) name: (label) @local.definition)
(target (target
name: (name) @definition) name: (name) @local.definition)
; Inline targets ; Inline targets
(inline_target) @definition (inline_target) @local.definition
; The role directive can define a new role ; The role directive can define a new role
((directive ((directive
name: (type) @_type name: (type) @_type
body: (body (arguments) @definition)) body: (body (arguments) @local.definition))
(#eq? @_type "role")) (#eq? @_type "role"))
;; References ;; References
@ -37,4 +37,4 @@
(citation_reference) (citation_reference)
(reference) (reference)
(role) (role)
] @reference ] @local.reference

View file

@ -21,35 +21,35 @@
; SOFTWARE. ; SOFTWARE.
;;; DECLARATIONS AND SCOPES ;;; DECLARATIONS AND SCOPES
(method) @scope (method) @local.scope
(class) @scope (class) @local.scope
[ [
(block) (block)
(do_block) (do_block)
] @scope ] @local.scope
(identifier) @reference (identifier) @local.reference
(constant) @reference (constant) @local.reference
(instance_variable) @reference (instance_variable) @local.reference
(module name: (constant) @definition.namespace) (module name: (constant) @local.definition.namespace)
(class name: (constant) @definition.type) (class name: (constant) @local.definition.type)
(method name: [(identifier) (constant)] @definition.function) (method name: [(identifier) (constant)] @local.definition.function)
(singleton_method name: [(identifier) (constant)] @definition.function) (singleton_method name: [(identifier) (constant)] @local.definition.function)
(method_parameters (identifier) @definition.var) (method_parameters (identifier) @local.definition.var)
(lambda_parameters (identifier) @definition.var) (lambda_parameters (identifier) @local.definition.var)
(block_parameters (identifier) @definition.var) (block_parameters (identifier) @local.definition.var)
(splat_parameter (identifier) @definition.var) (splat_parameter (identifier) @local.definition.var)
(hash_splat_parameter (identifier) @definition.var) (hash_splat_parameter (identifier) @local.definition.var)
(optional_parameter name: (identifier) @definition.var) (optional_parameter name: (identifier) @local.definition.var)
(destructured_parameter (identifier) @definition.var) (destructured_parameter (identifier) @local.definition.var)
(block_parameter name: (identifier) @definition.var) (block_parameter name: (identifier) @local.definition.var)
(keyword_parameter name: (identifier) @definition.var) (keyword_parameter name: (identifier) @local.definition.var)
(assignment left: (_) @definition.var) (assignment left: (_) @local.definition.var)
(left_assignment_list (identifier) @definition.var) (left_assignment_list (identifier) @local.definition.var)
(rest_assignment (identifier) @definition.var) (rest_assignment (identifier) @local.definition.var)
(destructured_left_assignment (identifier) @definition.var) (destructured_left_assignment (identifier) @local.definition.var)

View file

@ -1,88 +1,88 @@
; Imports ; Imports
(extern_crate_declaration (extern_crate_declaration
name: (identifier) @definition.import) name: (identifier) @local.definition.import)
(use_declaration (use_declaration
argument: (scoped_identifier argument: (scoped_identifier
name: (identifier) @definition.import)) name: (identifier) @local.definition.import))
(use_as_clause (use_as_clause
alias: (identifier) @definition.import) alias: (identifier) @local.definition.import)
(use_list (use_list
(identifier) @definition.import) ; use std::process::{Child, Command, Stdio}; (identifier) @local.definition.import) ; use std::process::{Child, Command, Stdio};
; Functions ; Functions
(function_item (function_item
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(function_item (function_item
name: (identifier) @definition.method name: (identifier) @local.definition.method
parameters: (parameters parameters: (parameters
(self_parameter))) (self_parameter)))
; Variables ; Variables
(parameter (parameter
pattern: (identifier) @definition.var) pattern: (identifier) @local.definition.var)
(let_declaration (let_declaration
pattern: (identifier) @definition.var) pattern: (identifier) @local.definition.var)
(const_item (const_item
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(tuple_pattern (tuple_pattern
(identifier) @definition.var) (identifier) @local.definition.var)
(let_condition (let_condition
pattern: (_ pattern: (_
(identifier) @definition.var)) (identifier) @local.definition.var))
(tuple_struct_pattern (tuple_struct_pattern
(identifier) @definition.var) (identifier) @local.definition.var)
(closure_parameters (closure_parameters
(identifier) @definition.var) (identifier) @local.definition.var)
(self_parameter (self_parameter
(self) @definition.var) (self) @local.definition.var)
(for_expression (for_expression
pattern: (identifier) @definition.var) pattern: (identifier) @local.definition.var)
; Types ; Types
(struct_item (struct_item
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
(constrained_type_parameter (constrained_type_parameter
left: (type_identifier) @definition.type) ; the P in remove_file<P: AsRef<Path>>(path: P) left: (type_identifier) @local.definition.type) ; the P in remove_file<P: AsRef<Path>>(path: P)
(enum_item (enum_item
name: (type_identifier) @definition.type) name: (type_identifier) @local.definition.type)
; Fields ; Fields
(field_declaration (field_declaration
name: (field_identifier) @definition.field) name: (field_identifier) @local.definition.field)
(enum_variant (enum_variant
name: (identifier) @definition.field) name: (identifier) @local.definition.field)
; References ; References
(identifier) @reference (identifier) @local.reference
((type_identifier) @reference ((type_identifier) @local.reference
(#set! reference.kind "type")) (#set! reference.kind "type"))
((field_identifier) @reference ((field_identifier) @local.reference
(#set! reference.kind "field")) (#set! reference.kind "field"))
; Macros ; Macros
(macro_definition (macro_definition
name: (identifier) @definition.macro) name: (identifier) @local.definition.macro)
; Module ; Module
(mod_item (mod_item
name: (identifier) @definition.namespace) name: (identifier) @local.definition.namespace)
; Scopes ; Scopes
[ [
@ -99,5 +99,5 @@
(struct_item) (struct_item)
(enum_item) (enum_item)
(impl_item) (impl_item)
] @scope ] @local.scope

View file

@ -6,47 +6,47 @@
(function_definition) (function_definition)
(block) (block)
(for_expression) (for_expression)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(function_declaration (function_declaration
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(function_definition (function_definition
name: ((identifier) @definition.function) name: ((identifier) @local.definition.function)
(#set! definition.var.scope parent)) (#set! definition.var.scope parent))
(parameter (parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(class_parameter (class_parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(lambda_expression (lambda_expression
parameters: (identifier) @definition.var) parameters: (identifier) @local.definition.var)
(binding (binding
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(val_definition (val_definition
pattern: (identifier) @definition.var) pattern: (identifier) @local.definition.var)
(var_definition (var_definition
pattern: (identifier) @definition.var) pattern: (identifier) @local.definition.var)
(val_declaration (val_declaration
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(var_declaration (var_declaration
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(for_expression (for_expression
enumerators: (enumerators enumerators: (enumerators
(enumerator (enumerator
(tuple_pattern (tuple_pattern
(identifier) @definition.var)))) (identifier) @local.definition.var))))

View file

@ -7,36 +7,36 @@
(packed_switch_directive) (packed_switch_directive)
(sparse_switch_directive) (sparse_switch_directive)
(subannotation_directive) (subannotation_directive)
] @scope ] @local.scope
[ [
(identifier) (identifier)
(class_identifier) (class_identifier)
(label) (label)
(jmp_label) (jmp_label)
] @reference ] @local.reference
(enum_reference (enum_reference
(field_identifier) @definition.enum) (field_identifier) @local.definition.enum)
((field_definition ((field_definition
(access_modifiers) @_mod (access_modifiers) @_mod
(field_identifier) @definition.enum) (field_identifier) @local.definition.enum)
(#eq? @_mod "enum")) (#eq? @_mod "enum"))
(field_definition (field_definition
(field_identifier) @definition.field (field_identifier) @local.definition.field
(field_type) @definition.associated) (field_type) @local.definition.associated)
(annotation_key) @definition.field (annotation_key) @local.definition.field
(method_definition (method_definition
(method_signature (method_identifier) @definition.method)) (method_signature (method_identifier) @local.definition.method))
(param_identifier) @definition.parameter (param_identifier) @local.definition.parameter
(annotation_directive (annotation_directive
(class_identifier) @definition.type) (class_identifier) @local.definition.type)
(class_directive (class_directive
(class_identifier) @definition.type) (class_identifier) @local.definition.type)

View file

@ -1,8 +1,8 @@
(group_graph_pattern (triples_block) @scope) (group_graph_pattern (triples_block) @local.scope)
((sub_select (select_clause (var) @definition.var)) ((sub_select (select_clause (var) @local.definition.var))
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
((select_query (select_clause (var) @definition.var)) ((select_query (select_clause (var) @local.definition.var))
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
(var) @reference (var) @local.reference

View file

@ -22,7 +22,7 @@
(foreach_statement) (foreach_statement)
(try_statement) (try_statement)
(catch_statement) (catch_statement)
] @scope ] @local.scope
; References ; References
@ -30,38 +30,38 @@
[ [
(identifier) (identifier)
(global_variable) (global_variable)
] @reference ] @local.reference
; Definitions ; Definitions
(const_declaration (const_declaration
. (identifier) @definition.constant) . (identifier) @local.definition.constant)
(enum_declaration (enum_declaration
. (identifier) @definition.enum) . (identifier) @local.definition.enum)
(member_declaration (member_declaration
(identifier) @definition.field (identifier) @local.definition.field
. "=") . "=")
(table_slot (table_slot
. (identifier) @definition.field . (identifier) @local.definition.field
. ["=" ":"]) . ["=" ":"])
((function_declaration ((function_declaration
. (identifier) @definition.function) . (identifier) @local.definition.function)
(#not-has-ancestor? @definition.function member_declaration)) (#not-has-ancestor? @local.definition.function member_declaration))
(member_declaration (member_declaration
(function_declaration (function_declaration
. (identifier) @definition.method)) . (identifier) @local.definition.method))
(class_declaration (class_declaration
. (identifier) @definition.type) . (identifier) @local.definition.type)
(var_statement (var_statement
"var" . (identifier) @definition.variable) "var" . (identifier) @local.definition.variable)
(local_declaration (local_declaration
(identifier) @definition.variable (identifier) @local.definition.variable
. "=") . "=")

View file

@ -1,7 +1,7 @@
(parameter (parameter
keyword: "Tag" keyword: "Tag"
argument: (string) @reference) argument: (string) @local.reference)
(condition (condition
criteria: "tagged" criteria: "tagged"
argument: (pattern) @definition) argument: (pattern) @local.definition)

View file

@ -1,85 +1,85 @@
;;; Program structure ;;; Program structure
(module) @scope (module) @local.scope
; Function with parameters, defines parameters ; Function with parameters, defines parameters
(parameters (parameters
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(default_parameter (default_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(typed_parameter (typed_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
(typed_default_parameter (typed_default_parameter
(identifier) @definition.parameter) (identifier) @local.definition.parameter)
; *args parameter ; *args parameter
(parameters (parameters
(list_splat_pattern (list_splat_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
; **kwargs parameter ; **kwargs parameter
(parameters (parameters
(dictionary_splat_pattern (dictionary_splat_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
; Function defines function and scope ; Function defines function and scope
((function_definition ((function_definition
name: (identifier) @definition.function) @scope name: (identifier) @local.definition.function) @local.scope
(#set! definition.function.scope "parent")) (#set! definition.function.scope "parent"))
;;; Loops ;;; Loops
; not a scope! ; not a scope!
(for_statement (for_statement
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_statement (for_statement
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_statement (for_statement
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
; for in list comprehension ; for in list comprehension
(for_in_clause (for_in_clause
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(for_in_clause (for_in_clause
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(for_in_clause (for_in_clause
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(dictionary_comprehension) @scope (dictionary_comprehension) @local.scope
(list_comprehension) @scope (list_comprehension) @local.scope
(set_comprehension) @scope (set_comprehension) @local.scope
;;; Assignments ;;; Assignments
(assignment (assignment
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(assignment (assignment
left: (pattern_list left: (pattern_list
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment (assignment
left: (tuple_pattern left: (tuple_pattern
(identifier) @definition.var)) (identifier) @local.definition.var))
(assignment (assignment
left: (attribute left: (attribute
(identifier) (identifier)
(identifier) @definition.field)) (identifier) @local.definition.field))
; Walrus operator x := 1 ; Walrus operator x := 1
(named_expression (named_expression
(identifier) @definition.var) (identifier) @local.definition.var)
(as_pattern (as_pattern
alias: (as_pattern_target) @definition.var) alias: (as_pattern_target) @local.definition.var)
;;; REFERENCES ;;; REFERENCES
(identifier) @reference (identifier) @local.reference
;; Starlark-specific ;; Starlark-specific
@ -87,5 +87,5 @@
((call ((call
function: (identifier) @_fn function: (identifier) @_fn
arguments: (argument_list arguments: (argument_list
(string) @definition.import)) (string) @local.definition.import))
(#eq? @_fn "load")) (#eq? @_fn "load"))

View file

@ -4,24 +4,24 @@
(code_block) (code_block)
(function_block) (function_block)
(control_structure) (control_structure)
] @scope ] @local.scope
; Definitions ; Definitions
(argument (argument
name: (identifier) @definition.parameter name: (identifier) @local.definition.parameter
(#set! "definition.var.scope" "local") (#set! "definition.var.scope" "local")
) )
(variable_definition (variable_definition
name: (variable (local_var (identifier) @definition.var name: (variable (local_var (identifier) @local.definition.var
))) )))
(variable_definition (variable_definition
name: (variable (environment_var (identifier) @definition.var)) name: (variable (environment_var (identifier) @local.definition.var))
(#set! "definition.var.scope" "global")) (#set! "definition.var.scope" "global"))
(function_definition name: (variable) @definition.var (function_definition name: (variable) @local.definition.var
(#set! "definition.var.scope" "parent") (#set! "definition.var.scope" "parent")
) )
(identifier) @reference (identifier) @local.reference

View file

@ -1,5 +1,5 @@
(import_declaration (identifier) @definition.import) (import_declaration (identifier) @local.definition.import)
(function_declaration name: (simple_identifier) @definition.function) (function_declaration name: (simple_identifier) @local.definition.function)
; Scopes ; Scopes
[ [
@ -15,4 +15,4 @@
(function_declaration) (function_declaration)
(class_declaration) (class_declaration)
(protocol_declaration) (protocol_declaration)
] @scope ] @local.scope

View file

@ -6,30 +6,30 @@
(for_statement) (for_statement)
(foreach_statement) (foreach_statement)
(catch_clause) (catch_clause)
] @scope ] @local.scope
(init_declarator (init_declarator
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(array_declarator (array_declarator
name: (identifier) @definition.var) name: (identifier) @local.definition.var)
(function_definition (function_definition
name: (identifier) @definition.function) name: (identifier) @local.definition.function)
(parameter (parameter
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(tuple_capture (tuple_capture
(identifier) @definition.var) (identifier) @local.definition.var)
(catch_clause (catch_clause
parameter: (identifier) @definition.var) parameter: (identifier) @local.definition.var)
(assignment_expression (assignment_expression
left: (identifier) @definition.var) left: (identifier) @local.definition.var)
(call_expression (call_expression
function: (identifier) @reference) function: (identifier) @local.reference)
(identifier) @reference (identifier) @local.reference

View file

@ -1,38 +1,38 @@
(block) @scope (block) @local.scope
; Parameter definitions ; Parameter definitions
(parameter_declaration (parameter_declaration
command: (identifier) command: (identifier)
macro: (macro) @definition.parameter) macro: (macro) @local.definition.parameter)
; Variable definitions ; Variable definitions
(macro_definition (macro_definition
command: (identifier) command: (identifier)
macro: (macro) @definition.var) macro: (macro) @local.definition.var)
(command_expression (command_expression
command: (identifier) command: (identifier)
arguments: (argument_list arguments: (argument_list
declarator: (trace32_hll_variable) @definition.var)) declarator: (trace32_hll_variable) @local.definition.var))
; Function definitions ; Function definitions
(subroutine_block (subroutine_block
command: (identifier) command: (identifier)
subroutine: (identifier) @definition.function) subroutine: (identifier) @local.definition.function)
(labeled_expression (labeled_expression
label: (identifier) @definition.function label: (identifier) @local.definition.function
(block)) (block))
; References ; References
( (
(subroutine_call_expression (subroutine_call_expression
command: (identifier) command: (identifier)
subroutine: (identifier) @reference) subroutine: (identifier) @local.reference)
(#set! reference.kind "function") (#set! reference.kind "function")
) )
[ [
(macro) (macro)
(trace32_hll_variable) (trace32_hll_variable)
] @reference ] @local.reference

View file

@ -10,42 +10,42 @@
(foreach) (foreach)
(if) (if)
(let) (let)
] @scope ] @local.scope
; References ; References
[ [
(var) (var)
(identifier) (identifier)
] @reference ] @local.reference
; Definitions ; Definitions
(instruction (instruction
(identifier) @definition.field) (identifier) @local.definition.field)
(let_instruction (let_instruction
(identifier) @definition.field) (identifier) @local.definition.field)
(include_directive (include_directive
(string) @definition.import) (string) @local.definition.import)
(template_arg (identifier) @definition.parameter) (template_arg (identifier) @local.definition.parameter)
(class (class
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(multiclass (multiclass
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(def (def
name: (value (_) @definition.type)) name: (value (_) @local.definition.type))
(defm (defm
name: (value (_) @definition.type)) name: (value (_) @local.definition.type))
(defset (defset
name: (identifier) @definition.type) name: (identifier) @local.definition.type)
(def_var (def_var
name: (identifier) @definition.var) name: (identifier) @local.definition.var)

View file

@ -1,23 +1,23 @@
(var_declaration (var_declaration
declarators: (var_declarators declarators: (var_declarators
(var (identifier)) @definition.var)) (var (identifier)) @local.definition.var))
(var_assignment (var_assignment
variables: (assignment_variables variables: (assignment_variables
(var (identifier) @definition.var) @definition.associated)) (var (identifier) @local.definition.var) @local.definition.associated))
(arg name: (identifier) @definition.parameter) (arg name: (identifier) @local.definition.parameter)
(anon_function) @scope (anon_function) @local.scope
((function_statement ((function_statement
(function_name) @definition.function) @scope) (function_name) @local.definition.function) @local.scope)
(program) @scope (program) @local.scope
(if_statement) @scope (if_statement) @local.scope
(generic_for_statement (for_body) @scope) (generic_for_statement (for_body) @local.scope)
(numeric_for_statement (for_body) @scope) (numeric_for_statement (for_body) @local.scope)
(repeat_statement) @scope (repeat_statement) @local.scope
(while_statement (while_body) @scope) (while_statement (while_body) @local.scope)
(do_statement) @scope (do_statement) @local.scope
(identifier) @reference (identifier) @local.reference

View file

@ -3,49 +3,49 @@
[ [
(document) (document)
(definition) (definition)
] @scope ] @local.scope
; References ; References
(identifier) @reference (identifier) @local.reference
; Definitions ; Definitions
(annotation_identifier) @definition (annotation_identifier) @local.definition
(const_definition (identifier) @definition.constant) (const_definition (identifier) @local.definition.constant)
(enum_definition "enum" (enum_definition "enum"
. (identifier) @definition.enum . (identifier) @local.definition.enum
"{" (identifier) @definition.constant "}") "{" (identifier) @local.definition.constant "}")
(senum_definition "senum" (senum_definition "senum"
. (identifier) @definition.enum) . (identifier) @local.definition.enum)
(field (identifier) @definition.field) (field (identifier) @local.definition.field)
(function_definition (identifier) @definition.function) (function_definition (identifier) @local.definition.function)
(namespace_declaration (namespace_declaration
"namespace" (namespace_scope) "namespace" (namespace_scope)
. (_) @definition.namespace . (_) @local.definition.namespace
(namespace_uri)?) (namespace_uri)?)
(parameter (identifier) @definition.parameter) (parameter (identifier) @local.definition.parameter)
(struct_definition (struct_definition
"struct" . (identifier) @definition.type) "struct" . (identifier) @local.definition.type)
(union_definition (union_definition
"union" . (identifier) @definition.type) "union" . (identifier) @local.definition.type)
(exception_definition (exception_definition
"exception" . (identifier) @definition.type) "exception" . (identifier) @local.definition.type)
(service_definition (service_definition
"service" . (identifier) @definition.type) "service" . (identifier) @local.definition.type)
(interaction_definition (interaction_definition
"interaction" . (identifier) @definition.type) "interaction" . (identifier) @local.definition.type)
(typedef_identifier) @definition.type (typedef_identifier) @local.definition.type

View file

@ -9,31 +9,31 @@
(for_expression) (for_expression)
(let_expression) (let_expression)
(function_declaration) (function_declaration)
] @scope ] @local.scope
; }}} ; }}}
; Definitions {{{ ; Definitions {{{
(type_declaration (type_declaration
name: (identifier) @definition.type name: (identifier) @local.definition.type
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
(parameters (parameters
name: (identifier) @definition.parameter) name: (identifier) @local.definition.parameter)
(function_declaration (function_declaration
name: (identifier) @definition.function name: (identifier) @local.definition.function
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
(primitive_declaration (primitive_declaration
name: (identifier) @definition.function name: (identifier) @local.definition.function
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
(variable_declaration (variable_declaration
name: (identifier) @definition.var name: (identifier) @local.definition.var
(#set! "definition.var.scope" "parent")) (#set! "definition.var.scope" "parent"))
; }}} ; }}}
; References {{{ ; References {{{
(identifier) @reference (identifier) @local.reference
; }}} ; }}}
; vim: sw=2 foldmethod=marker ; vim: sw=2 foldmethod=marker

View file

@ -12,45 +12,45 @@
(set_filter) (set_filter)
(set_map) (set_map)
(unbounded_quantification) (unbounded_quantification)
] @scope ] @local.scope
(choose (identifier) @definition.parameter) (choose (identifier) @local.definition.parameter)
(choose (tuple_of_identifiers (identifier) @definition.parameter)) (choose (tuple_of_identifiers (identifier) @local.definition.parameter))
(constant_declaration (identifier) @definition.constant) (constant_declaration (identifier) @local.definition.constant)
(constant_declaration (operator_declaration name: (_) @definition.constant)) (constant_declaration (operator_declaration name: (_) @local.definition.constant))
(function_definition (function_definition
name: (identifier) @definition.function name: (identifier) @local.definition.function
(#set! "definition.function.scope" "parent")) (#set! "definition.function.scope" "parent"))
(lambda (identifier) @definition.parameter) (lambda (identifier) @local.definition.parameter)
(module_definition (module_definition
name: (_) @definition.import name: (_) @local.definition.import
(#set! "definition.import.scope" "parent")) (#set! "definition.import.scope" "parent"))
(module_definition parameter: (identifier) @definition.parameter) (module_definition parameter: (identifier) @local.definition.parameter)
(module_definition parameter: (operator_declaration name: (_) @definition.parameter)) (module_definition parameter: (operator_declaration name: (_) @local.definition.parameter))
(operator_definition (operator_definition
name: (_) @definition.macro name: (_) @local.definition.macro
(#set! "definition.macro.scope" "parent")) (#set! "definition.macro.scope" "parent"))
(operator_definition parameter: (identifier) @definition.parameter) (operator_definition parameter: (identifier) @local.definition.parameter)
(operator_definition parameter: (operator_declaration name: (_) @definition.parameter)) (operator_definition parameter: (operator_declaration name: (_) @local.definition.parameter))
(quantifier_bound (identifier) @definition.parameter) (quantifier_bound (identifier) @local.definition.parameter)
(quantifier_bound (tuple_of_identifiers (identifier) @definition.parameter)) (quantifier_bound (tuple_of_identifiers (identifier) @local.definition.parameter))
(unbounded_quantification (identifier) @definition.parameter) (unbounded_quantification (identifier) @local.definition.parameter)
(variable_declaration (identifier) @definition.var) (variable_declaration (identifier) @local.definition.var)
; Proof scopes and definitions ; Proof scopes and definitions
[ [
(non_terminal_proof) (non_terminal_proof)
(suffices_proof_step) (suffices_proof_step)
(theorem) (theorem)
] @scope ] @local.scope
(assume_prove (new (identifier) @definition.parameter)) (assume_prove (new (identifier) @local.definition.parameter))
(assume_prove (new (operator_declaration name: (_) @definition.parameter))) (assume_prove (new (operator_declaration name: (_) @local.definition.parameter)))
(assumption name: (identifier) @definition.constant) (assumption name: (identifier) @local.definition.constant)
(pick_proof_step (identifier) @definition.parameter) (pick_proof_step (identifier) @local.definition.parameter)
(take_proof_step (identifier) @definition.parameter) (take_proof_step (identifier) @local.definition.parameter)
(theorem (theorem
name: (identifier) @definition.constant name: (identifier) @local.definition.constant
(#set! "definition.constant.scope" "parent")) (#set! "definition.constant.scope" "parent"))
; PlusCal scopes and definitions ; PlusCal scopes and definitions
@ -59,30 +59,30 @@
(pcal_macro) (pcal_macro)
(pcal_procedure) (pcal_procedure)
(pcal_with) (pcal_with)
] @scope ] @local.scope
(pcal_macro_decl parameter: (identifier) @definition.parameter) (pcal_macro_decl parameter: (identifier) @local.definition.parameter)
(pcal_proc_var_decl (identifier) @definition.parameter) (pcal_proc_var_decl (identifier) @local.definition.parameter)
(pcal_var_decl (identifier) @definition.var) (pcal_var_decl (identifier) @local.definition.var)
(pcal_with (identifier) @definition.parameter) (pcal_with (identifier) @local.definition.parameter)
; Built-in PlusCal variables ; Built-in PlusCal variables
(pcal_algorithm_body (pcal_algorithm_body
[ [
(_ (identifier_ref) @definition.var) (_ (identifier_ref) @local.definition.var)
(_ (_ (identifier_ref) @definition.var)) (_ (_ (identifier_ref) @local.definition.var))
(_ (_ (_ (identifier_ref) @definition.var))) (_ (_ (_ (identifier_ref) @local.definition.var)))
(_ (_ (_ (_ (identifier_ref) @definition.var)))) (_ (_ (_ (_ (identifier_ref) @local.definition.var))))
(_ (_ (_ (_ (_ (identifier_ref) @definition.var))))) (_ (_ (_ (_ (_ (identifier_ref) @local.definition.var)))))
] ]
(#any-of? @definition.var "self" "pc" "stack")) (#any-of? @local.definition.var "self" "pc" "stack"))
; References ; References
(identifier_ref) @reference (identifier_ref) @local.reference
((prefix_op_symbol) @reference) ((prefix_op_symbol) @local.reference)
(bound_prefix_op symbol: (_) @reference) (bound_prefix_op symbol: (_) @local.reference)
((infix_op_symbol) @reference) ((infix_op_symbol) @local.reference)
(bound_infix_op symbol: (_) @reference) (bound_infix_op symbol: (_) @local.reference)
((postfix_op_symbol) @reference) ((postfix_op_symbol) @local.reference)
(bound_postfix_op symbol: (_) @reference) (bound_postfix_op symbol: (_) @local.reference)
(bound_nonfix_op symbol: (_) @reference) (bound_nonfix_op symbol: (_) @local.reference)

View file

@ -1,4 +1,4 @@
[ [
(table) (table)
(table_array_element) (table_array_element)
] @scope ] @local.scope

View file

@ -1,12 +1,12 @@
(turtle_doc) @scope (turtle_doc) @local.scope
(subject (subject
[ [
(prefixed_name) (prefixed_name)
(iri_reference) (iri_reference)
] @definition.var) ] @local.definition.var)
[ [
(prefixed_name) (prefixed_name)
(iri_reference) (iri_reference)
] @reference ] @local.reference

View file

@ -1,27 +1,27 @@
; inherits: ecma ; inherits: ecma
(required_parameter (identifier) @definition) (required_parameter (identifier) @local.definition)
(optional_parameter (identifier) @definition) (optional_parameter (identifier) @local.definition)
; x => x ; x => x
(arrow_function (arrow_function
parameter: (identifier) @definition.parameter) parameter: (identifier) @local.definition.parameter)
;; ({ a }) => null ;; ({ a }) => null
(required_parameter (required_parameter
(object_pattern (object_pattern
(shorthand_property_identifier_pattern) @definition.parameter)) (shorthand_property_identifier_pattern) @local.definition.parameter))
;; ({ a: b }) => null ;; ({ a: b }) => null
(required_parameter (required_parameter
(object_pattern (object_pattern
(pair_pattern (pair_pattern
value: (identifier) @definition.parameter))) value: (identifier) @local.definition.parameter)))
;; ([ a ]) => null ;; ([ a ]) => null
(required_parameter (required_parameter
(array_pattern (array_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))
(required_parameter (required_parameter
(rest_pattern (rest_pattern
(identifier) @definition.parameter)) (identifier) @local.definition.parameter))

View file

@ -2,23 +2,23 @@
(assignment (assignment
key: "LABEL" key: "LABEL"
(value (content) @definition)) (value (content) @local.definition))
(assignment (assignment
key: "GOTO" key: "GOTO"
(value (content) @reference)) (value (content) @local.reference))
;; env vars ;; env vars
(assignment (assignment
key: "ENV" key: "ENV"
(env_var) @definition.var) (env_var) @local.definition.var)
(match (match
key: "ENV" key: "ENV"
(env_var) @reference) (env_var) @local.reference)
(var_sub (env_var) @reference) (var_sub (env_var) @local.reference)
;; misc ;; misc
@ -26,4 +26,4 @@
(attribute) (attribute)
(kernel_param) (kernel_param)
(seclabel) (seclabel)
] @reference ] @local.reference

View file

@ -1,7 +1,7 @@
(grammar) @scope (grammar) @local.scope
(definition) @definition (definition) @local.definition
(label_name) @definition.label (label_name) @local.definition.label
(identifier) @reference (identifier) @local.reference

View file

@ -1,4 +1,4 @@
[ [
(block) (block)
(metadata) (metadata)
] @scope ] @local.scope

Some files were not shown because too many files have changed in this diff Show more