diff options
Diffstat (limited to 'runtime/queries/c/highlights.scm')
-rw-r--r-- | runtime/queries/c/highlights.scm | 167 |
1 files changed, 108 insertions, 59 deletions
diff --git a/runtime/queries/c/highlights.scm b/runtime/queries/c/highlights.scm index 647df05d..8122216d 100644 --- a/runtime/queries/c/highlights.scm +++ b/runtime/queries/c/highlights.scm @@ -1,71 +1,111 @@ -(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 + +[ + "extern" + "register" + (type_qualifier) + (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 +(pointer_declarator "*" @type.builtin) +(abstract_pointer_declarator "*" @type.builtin) + +[ + "+" + "-" + "*" + "/" + "++" + "--" + "%" + "==" + "!=" + ">" + "<" + ">=" + "<=" + "&&" + "||" + "!" + "&" + "|" + "^" + "~" + "<<" + ">>" + "=" + "+=" + "-=" + "*=" + "/=" + "%=" + "<<=" + ">>=" + "&=" + "^=" + "|=" + "?" +] @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 (null) @constant -(number_literal) @constant.numeric.integer +(number_literal) @constant.numeric (char_literal) @constant.character (call_expression @@ -73,19 +113,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 -(sized_type_specifier) @type +(primitive_type) @type.builtin +(sized_type_specifier) @type.builtin ((identifier) @constant - (#match? @constant "^[A-Z][A-Z\\d_]*$")) + (#match? @constant "^[A-Z][A-Z\\d_]*$")) (identifier) @variable |