From b4e795d70430d28ecd37f8e1564cbd568d17e0b9 Mon Sep 17 00:00:00 2001 From: Chickenkeeper Date: Fri, 14 Oct 2022 02:31:32 +0100 Subject: Fix C++ syntax highlighting, and improve C & WGSL highlighting (#4079) --- runtime/queries/c/highlights.scm | 162 +++++++++++++++++++++++++-------------- 1 file changed, 105 insertions(+), 57 deletions(-) (limited to 'runtime/queries/c/highlights.scm') diff --git a/runtime/queries/c/highlights.scm b/runtime/queries/c/highlights.scm index 647df05d..c0f5763a 100644 --- a/runtime/queries/c/highlights.scm +++ b/runtime/queries/c/highlights.scm @@ -1,65 +1,104 @@ -(storage_class_specifier) @keyword.storage - -"goto" @keyword -"register" @keyword -"break" @keyword -"case" @keyword -"continue" @keyword -"default" @keyword -"do" @keyword -"else" @keyword -"enum" @keyword -"extern" @keyword -"for" @keyword -"if" @keyword -"inline" @keyword -"return" @keyword "sizeof" @keyword -"struct" @keyword -"switch" @keyword -"typedef" @keyword -"union" @keyword -"volatile" @keyword -"while" @keyword -"const" @keyword [ - "#define" - "#elif" - "#else" - "#endif" - "#if" - "#ifdef" - "#ifndef" - "#include" - (preproc_directive) + "enum" + "struct" + "typedef" + "union" +] @keyword.storage.type + +[ + "const" + "extern" + "inline" + "register" + "volatile" + (storage_class_specifier) +] @keyword.storage.modifier + +[ + "goto" + "break" + "continue" +] @keyword.control + +[ + "do" + "for" + "while" +] @keyword.control.repeat + +[ + "if" + "else" + "switch" + "case" + "default" +] @keyword.control.conditional + +"return" @keyword.control.return + +[ + "defined" + "#define" + "#elif" + "#else" + "#endif" + "#if" + "#ifdef" + "#ifndef" + "#include" + (preproc_directive) ] @keyword.directive -"--" @operator -"-" @operator -"-=" @operator -"->" @operator -"=" @operator -"!=" @operator -"*" @operator -"&" @operator -"&&" @operator -"+" @operator -"++" @operator -"+=" @operator -"<" @operator -"==" @operator -">" @operator -"||" @operator -">=" @operator -"<=" @operator - -"." @punctuation.delimiter -";" @punctuation.delimiter +[ + "+" + "-" + "*" + "/" + "++" + "--" + "%" + "==" + "!=" + ">" + "<" + ">=" + "<=" + "&&" + "||" + "!" + "&" + "|" + "^" + "~" + "<<" + ">>" + "=" + "+=" + "-=" + "*=" + "/=" + "%=" + "<<=" + ">>=" + "&=" + "^=" + "|=" + "?" +] @operator + +(conditional_expression ":" @operator) + +"..." @punctuation + +["," "." ":" ";" "->" "::"] @punctuation.delimiter + +["(" ")" "[" "]" "{" "}"] @punctuation.bracket [(true) (false)] @constant.builtin.boolean -(enumerator) @type.enum.variant +(enumerator name: (identifier) @type.enum.variant) (string_literal) @string (system_lib_string) @string @@ -73,19 +112,28 @@ (call_expression function: (field_expression field: (field_identifier) @function)) +(call_expression (argument_list (identifier) @variable)) (function_declarator - declarator: (identifier) @function) + declarator: [(identifier) (field_identifier)] @function) +(parameter_declaration + declarator: (identifier) @variable.parameter) +(parameter_declaration + (pointer_declarator + declarator: (identifier) @variable.parameter)) (preproc_function_def name: (identifier) @function.special) +(attribute + name: (identifier) @attribute) + (field_identifier) @variable.other.member (statement_identifier) @label (type_identifier) @type -(primitive_type) @type +(primitive_type) @type.builtin (sized_type_specifier) @type ((identifier) @constant - (#match? @constant "^[A-Z][A-Z\\d_]*$")) + (#match? @constant "^[A-Z][A-Z\\d_]*$")) (identifier) @variable -- cgit v1.2.3-70-g09d2