1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 06:20:05 +08:00
SpaceVim/bundle/nvim-treesitter/queries/ocaml/locals.scm
2022-04-14 12:01:23 +08:00

78 lines
1.5 KiB
Scheme

; Scopes
;-------
[
(compilation_unit)
(structure)
(signature)
(module_binding)
(functor)
(let_binding)
(match_case)
(class_binding)
(class_function)
(method_definition)
(let_expression)
(fun_expression)
(for_expression)
(let_class_expression)
(object_expression)
(attribute_payload)
] @scope
; Definitions
;------------
(value_pattern) @definition.var
(let_binding
pattern: (value_name) @definition.var
(set! definition.var.scope "parent"))
(let_binding
pattern: (tuple_pattern (value_name) @definition.var)
(set! definition.var.scope "parent"))
(let_binding
pattern: (record_pattern (field_pattern (value_name) @definition.var))
(set! definition.var.scope "parent"))
(external (value_name) @definition.var)
(type_binding (type_constructor) @definition.type)
(abstract_type (type_constructor) @definition.type)
(method_definition (method_name) @definition.method)
(module_binding
(module_name) @definition.namespace
(set! definition.namespace.scope "parent"))
(module_parameter (module_name) @definition.namespace)
(module_type_definition (module_type_name) @definition.type)
; References
;------------
(value_path .
(value_name) @reference
(set! reference.kind "var"))
(type_constructor_path .
(type_constructor) @reference
(set! reference.kind "type"))
(method_invocation
(method_name) @reference
(set! reference.kind "method"))
(module_path .
(module_name) @reference
(set! reference.kind "type"))
(module_type_path .
(module_type_name) @reference
(set! reference.kind "type"))