Unnamed repository; edit this file 'description' to name the repository.
Fix: update c++ highlights (#13772)
CalebLarsen 8 months ago
parent ada8004 · commit 1246549
-rw-r--r--runtime/queries/cpp/highlights.scm47
1 files changed, 39 insertions, 8 deletions
diff --git a/runtime/queries/cpp/highlights.scm b/runtime/queries/cpp/highlights.scm
index 3493ba34..96e2a7e0 100644
--- a/runtime/queries/cpp/highlights.scm
+++ b/runtime/queries/cpp/highlights.scm
@@ -12,8 +12,6 @@
(namespace_definition name: (namespace_identifier) @namespace)
(namespace_identifier) @namespace
-(qualified_identifier name: (identifier) @type.enum.variant)
-
(auto) @type
"decltype" @type
@@ -21,12 +19,29 @@
(reference_declarator ["&" "&&"] @type.builtin)
(abstract_reference_declarator ["&" "&&"] @type.builtin)
+; -------
; Functions
-
-
+; -------
+; Support up to 4 levels of nesting of qualifiers
+; i.e. a::b::c::d::func();
(call_expression
function: (qualified_identifier
name: (identifier) @function))
+(call_expression
+ function: (qualified_identifier
+ name: (qualified_identifier
+ name: (identifier) @function)))
+(call_expression
+ function: (qualified_identifier
+ name: (qualified_identifier
+ name: (qualified_identifier
+ name: (identifier) @function))))
+(call_expression
+ function: (qualified_identifier
+ name: (qualified_identifier
+ name: (qualified_identifier
+ name: (qualified_identifier
+ name: (identifier) @function)))))
(template_function
name: (identifier) @function)
@@ -34,26 +49,42 @@
(template_method
name: (field_identifier) @function)
-; Support up to 3 levels of nesting of qualifiers
-; i.e. a::b::c::func();
+; Support up to 4 levels of nesting of qualifiers
+; i.e. a::b::c::d::func();
(function_declarator
declarator: (qualified_identifier
name: (identifier) @function))
-
(function_declarator
declarator: (qualified_identifier
name: (qualified_identifier
name: (identifier) @function)))
-
(function_declarator
declarator: (qualified_identifier
name: (qualified_identifier
name: (qualified_identifier
name: (identifier) @function))))
+(function_declarator
+ declarator: (qualified_identifier
+ name: (qualified_identifier
+ name: (qualified_identifier
+ name: (qualified_identifier
+ name: (identifier) @function)))))
(function_declarator
declarator: (field_identifier) @function)
+; Constructors
+
+(class_specifier
+ (type_identifier) @type
+ (field_declaration_list
+ (function_definition
+ (function_declarator
+ (identifier) @constructor)))
+ (#eq? @type @constructor))
+(destructor_name "~" @constructor
+ (identifier) @constructor)
+
; Parameters
(parameter_declaration