nvim-treesitter/runtime/queries/ocaml/locals.scm

88 lines
1.7 KiB
Scheme
Raw Permalink Normal View History

; Scopes
;-------
[
2020-09-21 02:11:46 +02:00
(compilation_unit)
(structure)
(signature)
(module_binding)
(functor)
(let_binding)
2020-09-21 02:11:46 +02:00
(match_case)
(class_binding)
(class_function)
(method_definition)
2020-09-21 02:11:46 +02:00
(let_expression)
(fun_expression)
(for_expression)
2020-09-21 02:11:46 +02:00
(let_class_expression)
(object_expression)
(attribute_payload)
] @local.scope
; Definitions
;------------
(value_pattern) @local.definition.var
2020-09-21 02:11:46 +02:00
(let_binding
pattern: (value_name) @local.definition.var
(#set! definition.var.scope "parent"))
2020-09-21 02:11:46 +02:00
(let_binding
pattern: (tuple_pattern
(value_name) @local.definition.var)
(#set! definition.var.scope "parent"))
2020-09-21 02:11:46 +02:00
(let_binding
pattern: (record_pattern
(field_pattern
(value_name) @local.definition.var))
(#set! definition.var.scope "parent"))
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(external
(value_name) @local.definition.var)
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(type_binding
(type_constructor) @local.definition.type)
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(abstract_type
(type_constructor) @local.definition.type)
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(method_definition
(method_name) @local.definition.method)
2020-09-21 02:11:46 +02:00
(module_binding
(module_name) @local.definition.namespace
(#set! definition.namespace.scope "parent"))
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(module_parameter
(module_name) @local.definition.namespace)
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(module_type_definition
(module_type_name) @local.definition.type)
; References
;------------
2024-01-06 15:05:50 +09:00
(value_path
.
(value_name) @local.reference
(#set! reference.kind "var"))
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(type_constructor_path
.
(type_constructor) @local.reference
(#set! reference.kind "type"))
2020-09-21 02:11:46 +02:00
(method_invocation
(method_name) @local.reference
(#set! reference.kind "method"))
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(module_path
.
(module_name) @local.reference
(#set! reference.kind "type"))
2020-09-21 02:11:46 +02:00
2024-01-06 15:05:50 +09:00
(module_type_path
.
(module_type_name) @local.reference
(#set! reference.kind "type"))