Created
March 30, 2021 19:00
-
-
Save fennecdjay/2ca2ea92490565e9264e8ec7c26652bc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Syntax highlighting for C and C++ files. | |
syntax c "\.([ch](pp|xx)?|C|cc|c\+\+|cu|H|hh|ii?)$" | |
header "-\*-.*\<C(\+\+)?((;|\s).*)?-\*-" | |
magic "^(C|C\+\+) (source|program)" | |
comment "//" | |
# Constants. | |
color brightred "\<[A-Z_][0-9A-Z_]*\>" | |
# Labels. | |
color brightmagenta "^[[:space:]]*[A-Z_a-z]+:[[:space:]]*$" | |
# Types and related keywords. | |
color green "\<(auto|bool|char|const|double|enum|extern|float|inline|int|long|restrict|short|signed|sizeof|static|struct|typedef|union|unsigned|void)\>" | |
color green "\<([[:lower:]][[:lower:]_]*|(u_?)?int(8|16|32|64))_t\>" | |
color green "\<(_(Alignas|Alignof|Atomic|Bool|Complex|Generic|Imaginary|Noreturn|Static_assert|Thread_local))\>" | |
color green "\<(class|explicit|friend|mutable|namespace|override|private|protected|public|register|template|this|typename|using|virtual|volatile)\>" | |
# Flow control. | |
color brightyellow "\<(if|else|for|while|do|switch|case|default)\>" | |
color brightyellow "\<(try|throw|catch|operator|new|delete)\>" | |
color magenta "\<(break|continue|goto|return)\>" | |
# Single-quoted stuff (characters, backslash escapes, hex and octal byte codes). | |
color brightmagenta "'([^'\]|\\(["'\abfnrtv]|x[0-9A-Fa-f]{1,2}|[0-3]?[0-7]{1,2}))'" | |
# GCC builtins. | |
color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" | |
# Strings. (In general you will want your strings and comments to come last, | |
# because highlighting rules are applied in the order they are read in.) | |
color brightyellow ""([^"]|\\")*"" "#[[:space:]]*include[[:space:]]+<[^[:blank:]=]*>" | |
# Preprocessor directives. | |
color brightcyan start="^[[:space:]]*#[[:space:]]*(if(n?def)?|elif|warning|error|pragma)\>" end="(\`|[^\\])$" | |
color brightcyan "^[[:space:]]*#[[:space:]]*((define|else|endif|include(_next)?|line|undef)\>|$)" | |
# Comments. | |
color brightblue "//.*" | |
color brightblue start="/\*" end="\*/" | |
# Reminders. | |
color brightwhite,yellow "\<(FIXME|TODO|XXX)\>" | |
# Trailing whitespace. | |
color ,green "[[:space:]]+$" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment