;; Forked from https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/ocaml/locals.scm ;; Licensed under the Apache License 2.0 ; 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") )