nvim-treesitter/runtime/queries/cpp/locals.scm

79 lines
1.8 KiB
Scheme
Raw Permalink Normal View History

; inherits: c
2024-01-06 15:05:50 +09:00
; Parameters
2020-08-15 09:24:24 -05:00
(variadic_parameter_declaration
declarator: (variadic_declarator
(identifier) @local.definition.parameter))
2024-01-06 15:05:50 +09:00
2020-08-15 09:24:24 -05:00
(optional_parameter_declaration
declarator: (identifier) @local.definition.parameter)
2024-01-06 15:05:50 +09:00
; Class / struct definitions
(class_specifier) @local.scope
2020-05-23 21:23:05 +02:00
(reference_declarator
(identifier) @local.definition.var)
2020-05-23 21:23:05 +02:00
(variadic_declarator
(identifier) @local.definition.var)
2020-05-23 21:23:05 +02:00
(struct_specifier
name: (qualified_identifier
name: (type_identifier) @local.definition.type))
2020-05-23 21:23:05 +02:00
(class_specifier
name: (type_identifier) @local.definition.type)
2020-05-23 21:23:05 +02:00
2021-11-28 18:29:47 +01:00
(concept_definition
name: (identifier) @local.definition.type)
2021-11-28 18:29:47 +01:00
2020-05-23 21:23:05 +02:00
(class_specifier
name: (qualified_identifier
name: (type_identifier) @local.definition.type))
2020-05-23 21:23:05 +02:00
(alias_declaration
name: (type_identifier) @local.definition.type)
;template <typename T>
(type_parameter_declaration
(type_identifier) @local.definition.type)
2024-01-06 15:05:50 +09:00
(template_declaration) @local.scope
2024-01-06 15:05:50 +09:00
; Namespaces
2020-08-15 09:24:24 -05:00
(namespace_definition
name: (namespace_identifier) @local.definition.namespace
body: (_) @local.scope)
(namespace_definition
name: (nested_namespace_specifier) @local.definition.namespace
body: (_) @local.scope)
2020-07-11 00:10:17 +02:00
((namespace_identifier) @local.reference
2024-01-06 15:05:50 +09:00
(#set! reference.kind "namespace"))
2020-07-11 00:10:17 +02:00
2024-01-06 15:05:50 +09:00
; Function definitions
2020-05-23 21:23:05 +02:00
(template_function
name: (identifier) @local.definition.function) @local.scope
2020-05-23 21:23:05 +02:00
(template_method
name: (field_identifier) @local.definition.method) @local.scope
2020-05-23 21:23:05 +02:00
2021-03-07 21:06:37 +01:00
(function_declarator
declarator: (qualified_identifier
name: (identifier) @local.definition.function)) @local.scope
2020-05-23 21:23:05 +02:00
(field_declaration
declarator: (function_declarator
(field_identifier) @local.definition.method))
2020-05-23 21:23:05 +02:00
(lambda_expression) @local.scope
2020-05-23 21:23:05 +02:00
2024-01-06 15:05:50 +09:00
; Control structures
2020-05-23 21:23:05 +02:00
(try_statement
body: (_) @local.scope)
2020-05-23 21:23:05 +02:00
(catch_clause) @local.scope
2021-11-28 18:29:47 +01:00
(requires_expression) @local.scope