diff options
Diffstat (limited to 'runtime/queries/cpp/locals.scm')
| -rw-r--r-- | runtime/queries/cpp/locals.scm | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/runtime/queries/cpp/locals.scm b/runtime/queries/cpp/locals.scm new file mode 100644 index 000000000..b24ada85f --- /dev/null +++ b/runtime/queries/cpp/locals.scm @@ -0,0 +1,78 @@ +; inherits: c + +; Parameters +(variadic_parameter_declaration + declarator: (variadic_declarator + (identifier) @local.definition.parameter)) + +(optional_parameter_declaration + declarator: (identifier) @local.definition.parameter) + +; Class / struct definitions +(class_specifier) @local.scope + +(reference_declarator + (identifier) @local.definition.var) + +(variadic_declarator + (identifier) @local.definition.var) + +(struct_specifier + name: (qualified_identifier + name: (type_identifier) @local.definition.type)) + +(class_specifier + name: (type_identifier) @local.definition.type) + +(concept_definition + name: (identifier) @local.definition.type) + +(class_specifier + name: (qualified_identifier + name: (type_identifier) @local.definition.type)) + +(alias_declaration + name: (type_identifier) @local.definition.type) + +;template <typename T> +(type_parameter_declaration + (type_identifier) @local.definition.type) + +(template_declaration) @local.scope + +; Namespaces +(namespace_definition + name: (namespace_identifier) @local.definition.namespace + body: (_) @local.scope) + +(namespace_definition + name: (nested_namespace_specifier) @local.definition.namespace + body: (_) @local.scope) + +((namespace_identifier) @local.reference + (#set! reference.kind "namespace")) + +; Function definitions +(template_function + name: (identifier) @local.definition.function) @local.scope + +(template_method + name: (field_identifier) @local.definition.method) @local.scope + +(function_declarator + declarator: (qualified_identifier + name: (identifier) @local.definition.function)) @local.scope + +(field_declaration + declarator: (function_declarator + (field_identifier) @local.definition.method)) + +(lambda_expression) @local.scope + +; Control structures +(try_statement + body: (_) @local.scope) + +(catch_clause) @local.scope + +(requires_expression) @local.scope |
