Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/cpp/highlights.scm')
| -rw-r--r-- | runtime/queries/cpp/highlights.scm | 180 |
1 files changed, 35 insertions, 145 deletions
diff --git a/runtime/queries/cpp/highlights.scm b/runtime/queries/cpp/highlights.scm index 96e2a7e0..3348ef3c 100644 --- a/runtime/queries/cpp/highlights.scm +++ b/runtime/queries/cpp/highlights.scm @@ -1,47 +1,10 @@ ; inherits: c -; Constants - -(this) @variable.builtin -(null) @constant.builtin - -; Types - -(using_declaration ("using" "namespace" (identifier) @namespace)) -(using_declaration ("using" "namespace" (qualified_identifier name: (identifier) @namespace))) -(namespace_definition name: (namespace_identifier) @namespace) -(namespace_identifier) @namespace - -(auto) @type -"decltype" @type - -(ref_qualifier ["&" "&&"] @type.builtin) -(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) @@ -49,128 +12,55 @@ (template_method name: (field_identifier) @function) -; Support up to 4 levels of nesting of qualifiers -; i.e. a::b::c::d::func(); +(template_function + name: (identifier) @function) + (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))))) + name: (identifier) @function)) (function_declarator declarator: (field_identifier) @function) -; Constructors +; Types -(class_specifier - (type_identifier) @type - (field_declaration_list - (function_definition - (function_declarator - (identifier) @constructor))) - (#eq? @type @constructor)) -(destructor_name "~" @constructor - (identifier) @constructor) +((namespace_identifier) @type + (#match? @type "^[A-Z]")) -; Parameters +(auto) @type -(parameter_declaration - declarator: (reference_declarator (identifier) @variable.parameter)) -(optional_parameter_declaration - declarator: (identifier) @variable.parameter) +; Constants + +(this) @variable.builtin +(nullptr) @constant ; Keywords -(template_argument_list (["<" ">"] @punctuation.bracket)) -(template_parameter_list (["<" ">"] @punctuation.bracket)) -(default_method_clause "default" @keyword) - -"static_assert" @function.special - -[ - "<=>" - "[]" - "()" -] @operator - - -; These casts are parsed as function calls, but are not. -((identifier) @keyword (#eq? @keyword "static_cast")) -((identifier) @keyword (#eq? @keyword "dynamic_cast")) -((identifier) @keyword (#eq? @keyword "reinterpret_cast")) -((identifier) @keyword (#eq? @keyword "const_cast")) - -[ - "co_await" - "co_return" - "co_yield" - "concept" - "delete" - "new" - "operator" - "requires" - "using" -] @keyword - -[ - "catch" - "noexcept" - "throw" - "try" -] @keyword.control.exception - - -[ - "and" - "and_eq" - "bitor" - "bitand" - "not" - "not_eq" - "or" - "or_eq" - "xor" - "xor_eq" -] @keyword.operator - -[ - "class" - "namespace" - "typename" - "template" -] @keyword.storage.type - -[ - "constexpr" - "constinit" - "consteval" - "mutable" -] @keyword.storage.modifier - -; Modifiers that aren't plausibly type/storage related. -[ - "explicit" - "friend" - "virtual" - (virtual_specifier) ; override/final - "private" - "protected" - "public" - "inline" ; C++ meaning differs from C! -] @keyword +"catch" @keyword +"class" @keyword +"constexpr" @keyword +"delete" @keyword +"explicit" @keyword +"final" @keyword +"friend" @keyword +"mutable" @keyword +"namespace" @keyword +"noexcept" @keyword +"new" @keyword +"override" @keyword +"private" @keyword +"protected" @keyword +"public" @keyword +"template" @keyword +"throw" @keyword +"try" @keyword +"typename" @keyword +"using" @keyword +"virtual" @keyword ; Strings |