diff --git a/runtime/syntax/c++.micro b/runtime/syntax/c++.micro new file mode 100644 index 00000000..bcf1e929 --- /dev/null +++ b/runtime/syntax/c++.micro @@ -0,0 +1,41 @@ +## Here is an example for C++. +## +syntax "c++" "\.c(c|pp|xx)$" "\.h(h|pp|xx)$" "\.ii?$" "\.(def)$" +color identifier "\b[A-Z_][0-9A-Z_]+\b" +color type "\b(auto|float|double|bool|char|int|short|long|sizeof|enum|void|static|const|constexpr|struct|union|typedef|extern|(un)?signed|inline)\b" +color type "\b((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\b" +color statement "\b(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\b" +color statement "\b(for|if|while|do|else|case|default|switch)\b" +color statement "\b(try|throw|catch|operator|new|delete)\b" +color statement "\b(goto|continue|break|return)\b" +color preproc "^[[:space:]]*#[[:space:]]*(define|pragma|include|(un|ifn?)def|endif|el(if|se)|if|warning|error)" +color constant "'([^'\\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'" + +## +## GCC builtins +color statement "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__" + +#Operator Color +color statement "[.:;,+*|=!\%]" "<" ">" "/" "-" "&" + +#Parenthetical Color +# color magenta "[(){}]" "\[" "\]" + +color constant.number "\b[0-9]+\b" "\b0x[0-9A-Fa-f]+\b" +color constant.number "\b(true|false)\b" "NULL" + +## +## String highlighting. You will in general want your brightblacks and +## strings to come last, because syntax highlighting rules will be +## applied in the order they are read in. +color constant.string ""(\\.|[^"])*"" +## +## This string is VERY resource intensive! +#color cyan start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*"" + +## Comment highlighting +color comment "//.*" +color comment start="/\*" end="\*/" + +## Trailing whitespace +#color ,green "[[:space:]]+$" diff --git a/runtime/syntax/c.micro b/runtime/syntax/c.micro index 10a3b8ad..6ffd2281 100644 --- a/runtime/syntax/c.micro +++ b/runtime/syntax/c.micro @@ -1,10 +1,10 @@ -## Here is an example for C/C++. +## Here is an example for C. ## -syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$" "\.(def)$" +syntax "c" "\.(c|C)$" "\.(h|H)$" "\.ii?$" "\.(def)$" color identifier "\b[A-Z_][0-9A-Z_]+\b" -color type "\b(auto|float|double|bool|char|int|short|long|sizeof|enum|void|static|const|constexpr|struct|union|typedef|extern|(un)?signed|inline)\b" +color type "\b(float|double|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\b" color type "\b((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\b" -color statement "\b(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\b" +color statement "\b(typename|mutable|volatile|register|explicit)\b" color statement "\b(for|if|while|do|else|case|default|switch)\b" color statement "\b(try|throw|catch|operator|new|delete)\b" color statement "\b(goto|continue|break|return)\b" @@ -22,7 +22,7 @@ color statement "[.:;,+*|=!\%]" "<" ">" "/" "-" "&" # color magenta "[(){}]" "\[" "\]" color constant.number "\b[0-9]+\b" "\b0x[0-9A-Fa-f]+\b" -color constant.number "\b(true|false)\b" "NULL" +color constant.number "NULL" ## ## String highlighting. You will in general want your brightblacks and