;; Forked from https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/php/locals.scm ;; Licensed under the Apache License 2.0 ; Scopes ;------- ( (class_declaration name: (name) @definition.type ) @scope (#set! definition.type.scope "parent") ) ( (method_declaration name: (name) @definition.method ) @scope (#set! definition.method.scope "parent") ) ( (function_definition name: (name) @definition.function ) @scope (#set! definition.function.scope "parent") ) (anonymous_function_creation_expression (anonymous_function_use_clause (variable_name (name) @definition.var ) ) ) @scope ; Definitions ;------------ (simple_parameter (variable_name (name) @definition.var ) ) (foreach_statement (pair (variable_name (name) @definition.var ) ) ) (foreach_statement (variable_name (name) @reference (#set! reference.kind "var") ) (variable_name (name) @definition.var ) ) (property_declaration (property_element (variable_name (name) @definition.field ) ) ) (namespace_use_clause (qualified_name (name) @definition.type ) ) ; References ;------------ (named_type (name) @reference (#set! reference.kind "type") ) (named_type (qualified_name) @reference (#set! reference.kind "type") ) (variable_name (name) @reference (#set! reference.kind "var") ) (member_access_expression name: (name) @reference (#set! reference.kind "field") ) (member_call_expression name: (name) @reference (#set! reference.kind "method") ) (function_call_expression function: (qualified_name (name) @reference (#set! reference.kind "function") ) ) (object_creation_expression (qualified_name (name) @reference (#set! reference.kind "type") ) ) (scoped_call_expression scope: (qualified_name (name) @reference (#set! reference.kind "type") ) name: (name) @reference (#set! reference.kind "method") )