summaryrefslogtreecommitdiff
path: root/queries/cpp/locals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'queries/cpp/locals.scm')
-rw-r--r--queries/cpp/locals.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/queries/cpp/locals.scm b/queries/cpp/locals.scm
new file mode 100644
index 00000000..00268442
--- /dev/null
+++ b/queries/cpp/locals.scm
@@ -0,0 +1,49 @@
+
+;; Class / struct defintions
+(class_specifier) @scope
+(struct_specifier) @scope
+
+
+(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) )
+
+;; 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)