aboutsummaryrefslogtreecommitdiffstats
path: root/queries/cpp
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-05-23 21:02:43 +0200
committerStephan Seitz <stephan.seitz@fau.de>2020-06-15 11:51:28 +0200
commit167ce6339fb672af9bfd9b5e21a4d18b2f4fb253 (patch)
treef137641988aa816bbc87c3fa660e59adeca26885 /queries/cpp
parentIntroduce base languages for queries (diff)
downloadnvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar.gz
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar.bz2
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar.lz
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar.xz
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.tar.zst
nvim-treesitter-167ce6339fb672af9bfd9b5e21a4d18b2f4fb253.zip
Add C++ highlights.scm
Diffstat (limited to 'queries/cpp')
-rw-r--r--queries/cpp/highlights.scm97
1 files changed, 97 insertions, 0 deletions
diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm
new file mode 100644
index 000000000..e3bce91cb
--- /dev/null
+++ b/queries/cpp/highlights.scm
@@ -0,0 +1,97 @@
+((identifier) @field
+ (match? @field "^_"))
+
+((identifier) @field
+ (match? @field "^m_"))
+
+((identifier) @field
+ (match? @field "_$"))
+
+;(field_expression) @parameter ;; How to highlight this?
+(template_function
+ name: (identifier) @function)
+
+(template_method
+ name: (field_identifier) @method)
+
+(template_function
+ name: (scoped_identifier
+ name: (identifier) @function))
+
+(namespace_identifier) @constant
+
+((namespace_identifier) @type
+ (match? @type "^[A-Z]"))
+((namespace_identifier) @constant
+ (match? @constant "^[A-Z][A-Z_1-9]*$"))
+
+(destructor_name
+ name: (*) @function)
+
+(function_declarator
+ declarator: (scoped_identifier
+ name: (identifier) @function))
+((function_declarator
+ declarator: (scoped_identifier
+ name: (identifier) @constructor))
+ (match? @constructor "^[A-Z]"))
+
+(call_expression
+ function: (scoped_identifier
+ name: (identifier) @function))
+
+(call_expression
+ function: (field_expression
+ field: (field_identifier) @function))
+
+((call_expression
+ function: (scoped_identifier
+ name: (identifier) @constructor))
+(match? @constructor "^[A-Z]"))
+
+((call_expression
+ function: (field_expression
+ field: (field_identifier) @function))
+(match? @function "^[A-Z]"))
+
+;; constructing a type in a intizializer list: Constructor (): **SuperType (1)**
+((field_initializer
+ (field_identifier) @constructor
+ (argument_list))
+ (match? @constructor "^[A-Z]"))
+
+(auto) @keyword
+(class_specifier)
+
+; Constants
+
+;(this) @constant.builtin
+(this) @keyword
+(nullptr) @constant
+
+(true) @boolean
+(false) @boolean
+
+; Keywords
+
+"catch" @exception
+"class" @keyword
+"constexpr" @keyword
+"delete" @operator
+"explicit" @keyword
+"final" @exception
+"friend" @keyword
+"mutable" @keyword
+"namespace" @keyword
+"noexcept" @keyword
+"new" @operator
+"override" @keyword
+"private" @keyword
+"protected" @keyword
+"public" @keyword
+"template" @keyword
+"throw" @keyword
+"try" @exception
+"typename" @keyword
+"using" @keyword
+"virtual" @keyword