nvim-treesitter/queries/ocaml/locals.scm

78 lines
1.6 KiB
Scheme
Raw 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
(external (value_name) @local.definition.var)
2020-09-21 02:11:46 +02:00
(type_binding (type_constructor) @local.definition.type)
2020-09-21 02:11:46 +02:00
(abstract_type (type_constructor) @local.definition.type)
2020-09-21 02:11:46 +02: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
(module_parameter (module_name) @local.definition.namespace)
2020-09-21 02:11:46 +02:00
(module_type_definition (module_type_name) @local.definition.type)
; References
;------------
2020-09-21 02:11:46 +02:00
(value_path .
(value_name) @local.reference
(#set! reference.kind "var"))
2020-09-21 02:11:46 +02: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
(module_path .
(module_name) @local.reference
(#set! reference.kind "type"))
2020-09-21 02:11:46 +02:00
(module_type_path .
(module_type_name) @local.reference
(#set! reference.kind "type"))