aboutsummaryrefslogtreecommitdiffstats
path: root/queries/cpp
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-05-23 21:23:05 +0200
committerStephan Seitz <stephan.seitz@fau.de>2020-06-15 11:51:28 +0200
commit1badceea813d321d0d58319d5fc5dde07e98f18f (patch)
treec43d4e066e5f4be2992592c89717d9bc2e20688d /queries/cpp
parentAdd @error highlight to c/highlights.scm (diff)
downloadnvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar.gz
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar.bz2
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar.lz
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar.xz
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.tar.zst
nvim-treesitter-1badceea813d321d0d58319d5fc5dde07e98f18f.zip
Add cpp/locals.scm
Diffstat (limited to 'queries/cpp')
-rw-r--r--queries/cpp/highlights.scm11
-rw-r--r--queries/cpp/locals.scm49
2 files changed, 57 insertions, 3 deletions
diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm
index e3bce91cb..be79098c9 100644
--- a/queries/cpp/highlights.scm
+++ b/queries/cpp/highlights.scm
@@ -61,7 +61,11 @@
(match? @constructor "^[A-Z]"))
(auto) @keyword
-(class_specifier)
+
+;; Parameters
+; normals
+(parameter_list
+ (parameter_declaration) @parameter)
; Constants
@@ -77,14 +81,14 @@
"catch" @exception
"class" @keyword
"constexpr" @keyword
-"delete" @operator
+"delete" @keyword
"explicit" @keyword
"final" @exception
"friend" @keyword
"mutable" @keyword
"namespace" @keyword
"noexcept" @keyword
-"new" @operator
+"new" @keyword
"override" @keyword
"private" @keyword
"protected" @keyword
@@ -95,3 +99,4 @@
"typename" @keyword
"using" @keyword
"virtual" @keyword
+"::" @operator
diff --git a/queries/cpp/locals.scm b/queries/cpp/locals.scm
new file mode 100644
index 000000000..00268442c
--- /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)