2006-06-01 21:23:28 +04:00
|
|
|
## Here is an example for C/C++.
|
2014-05-15 16:52:30 +04:00
|
|
|
|
2014-02-22 20:57:23 +04:00
|
|
|
syntax "c" "\.(c(c|pp|xx|\+\+)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"
|
2014-05-15 16:52:30 +04:00
|
|
|
magic "(ASCII|UTF-8 Unicode) C(\+\+)? program text"
|
2016-05-25 23:13:50 +03:00
|
|
|
comment "//"
|
2014-05-15 16:52:30 +04:00
|
|
|
|
2014-05-17 00:21:34 +04:00
|
|
|
color brightred "\<[A-Z_][0-9A-Z_]+\>"
|
2013-06-14 06:48:59 +04:00
|
|
|
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
|
2006-09-16 06:40:31 +04:00
|
|
|
color green "\<((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\>"
|
2017-02-20 21:07:25 +03:00
|
|
|
color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|override|using|mutable|volatile|register|explicit)\>"
|
2006-06-01 21:23:28 +04:00
|
|
|
color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
|
|
|
|
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
|
|
|
|
color magenta "\<(goto|continue|break|return)\>"
|
2010-03-21 08:04:03 +03:00
|
|
|
color brightcyan "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)"
|
2006-06-01 21:23:28 +04:00
|
|
|
color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
|
2014-02-23 20:07:44 +04:00
|
|
|
|
2014-05-15 16:52:30 +04:00
|
|
|
# GCC builtins.
|
2006-06-01 21:23:28 +04:00
|
|
|
color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
|
2014-02-23 20:07:44 +04:00
|
|
|
|
2014-05-15 16:52:30 +04:00
|
|
|
# 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.
|
2016-02-07 16:14:23 +03:00
|
|
|
color brightyellow ""([^"]|\\")*"" "<[^[:blank:]=]*>"
|
2015-12-29 19:48:25 +03:00
|
|
|
# Multiline strings. This regex is VERY resource intensive,
|
|
|
|
# and sometimes colours things that shouldn't be coloured.
|
|
|
|
###color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
|
2006-06-01 21:23:28 +04:00
|
|
|
|
2014-05-15 16:52:30 +04:00
|
|
|
# Comments.
|
2006-06-01 21:23:28 +04:00
|
|
|
color brightblue "//.*"
|
2006-08-02 23:30:24 +04:00
|
|
|
color brightblue start="/\*" end="\*/"
|
2007-04-12 02:18:16 +04:00
|
|
|
|
2014-05-15 16:52:30 +04:00
|
|
|
# Reminders.
|
2016-02-07 16:14:23 +03:00
|
|
|
color ,yellow "\<(FIXME|TODO|XXX)\>"
|
2014-04-13 19:57:05 +04:00
|
|
|
|
2014-05-15 16:52:30 +04:00
|
|
|
# Trailing whitespace.
|
2007-04-12 02:18:16 +04:00
|
|
|
color ,green "[[:space:]]+$"
|