From 91fcdc8d350cd4a06a198c6d19167a80a27c8172 Mon Sep 17 00:00:00 2001 From: Caleb Larsen Date: Sun, 15 Jun 2025 11:43:59 -0500 Subject: [PATCH] Fix: update c++ highlights --- runtime/queries/cpp/highlights.scm | 47 +++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/runtime/queries/cpp/highlights.scm b/runtime/queries/cpp/highlights.scm index 3493ba340..96e2a7e06 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