mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-02 19:46:58 -04:00
This makes smart_rename work also for types out of the box and we don't need to search for the path of actual node.
66 lines
1.5 KiB
Scheme
66 lines
1.5 KiB
Scheme
|
|
;; Class / struct defintions
|
|
(class_specifier) @scope
|
|
(struct_specifier) @scope
|
|
|
|
(reference_declarator
|
|
(identifier) @definition.var)
|
|
|
|
(struct_specifier
|
|
name: (type_identifier) @definition.type)
|
|
|
|
(struct_specifier
|
|
name: (scoped_type_identifier
|
|
name: (type_identifier) @definition.type))
|
|
|
|
(class_specifier
|
|
name: (type_identifier) @definition.type)
|
|
|
|
(class_specifier
|
|
name: (scoped_type_identifier
|
|
name: (type_identifier) @definition.type))
|
|
|
|
(alias_declaration
|
|
name: (type_identifier) @definition.type)
|
|
|
|
;template <typename T>
|
|
(type_parameter_declaration
|
|
(type_identifier) @definition.type)
|
|
|
|
;; Namespaces
|
|
(namespace_definition
|
|
name: (identifier) @definition.namespace
|
|
body: (_) @scope)
|
|
|
|
((namespace_identifier) @reference
|
|
(set! reference.kind "namespace"))
|
|
|
|
;; Function defintions
|
|
(template_function
|
|
name: (identifier) @definition.function) @scope
|
|
|
|
(template_method
|
|
name: (field_identifier) @definition.method) @scope
|
|
|
|
(template_function
|
|
name: (scoped_identifier
|
|
name: (identifier) @definition.function)) @scope
|
|
|
|
(function_declarator
|
|
declarator: (scoped_identifier
|
|
name: (type_identifier) @definition.function)) @scope
|
|
|
|
(field_declaration
|
|
declarator: (function_declarator
|
|
(field_identifier) @definition.method))
|
|
|
|
(lambda_expression) @scope
|
|
|
|
;; Control structures
|
|
(try_statement
|
|
body: (_) @scope)
|
|
|
|
(catch_clause) @scope
|
|
|
|
(destructor_name
|
|
name: (_) @constructor)
|