syntax "awk" "\.awk$"
header "^#!.*bin/(env +)?awk( |$)"

color brightyellow "\$[A-Za-z0-9_!@#$*?-]+"
color brightyellow "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>"
color brightyellow "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>"
color brightyellow "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>"
color brightblue "\<(function|extension|BEGIN|END)\>"
color red "[-+*/%^|!=&<>?;:]|\\|\[|\]"
color brightblack  "\<(for|if|while|do|else|in|delete|exit)\>"
color brightblack  "\<(break|continue|return)\>"
color brightblue "\<(close|getline|next|nextfile|print|printf|system|fflush)\>"
color brightblue "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>"
color brightblue "\<(asort|asorti|gensub|gsub|index|length|match)\>"
color brightblue "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>"
color brightblue "\<(mktime|strftime|systime)\>"
color brightblue "\<(and|compl|lshift|or|rshift|xor)\>"
color brightblue "\<(bindtextdomain|dcgettext|dcngettext)\>"
color magenta   "/.*[^\]/"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\."
color cyan "(^|[[:space:]])#([^{].*)?$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightyellow     "\<[A-Z_][0-9A-Z_]+\>"
color green      "\<(float|double|bool|char|int|short|long|void|(un)?signed)\>"
color green      "\<[a-z0-9_]+_t\>"
color brightblack   "\<(struct|enum|static|const|union|typedef|extern)\>"
color brightblack   "\<(for|if|while|do|else|case|default|switch)\>"
color brightblack   "\<(return|inline|sizeof|auto|register|volatile|restrict)\>"
color brightblack   "\<(try|throw|catch|operator|new|delete)\>"
color brightred      "\<(goto|break|continue)\>"
color brightcyan "\<(true|false)\>"
color red  "[-+/*=<>?:!~%&|^]"
color blue    "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'"
color brightyellow     "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)"
color magenta "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
color yellow    ""(\\.|[^"])*"|<[A-Za-z_./-]+>"
color magenta    "\\([\"'abfnrtv\\]|[0-3]?[0-7]{1,2}|x[A-Fa-f0-9]{1,2}|$)"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "cmake" "CMakeLists\.txt$|\.cmake$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightcyan  "\<(ON|OFF|TRUE|FALSE|YES|NO)\>"
color brightyellow "\$\{[A-Za-z0-9_!@#$*?-]+\}"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\([()#$^]|\\|\")"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "coffeescript" "\.coffee$"
header "^#!.*/(env +)?coffee"

color red "[!&|=/*+-<>]|\<(and|or|is|isnt|not)\>"
color brightblue "[A-Za-z_][A-Za-z0-9_]*:[[:space:]]*(->|\()" "->"
color black    "[()]"
color brightblack  "\<(for|of|continue|break|isnt|null|unless|this|else|if|return)\>"
color brightblack  "\<(try|catch|finally|throw|new|delete|typeof|in|instanceof)\>"
color brightblack  "\<(debugger|switch|while|do|class|extends|super)\>"
color brightblack  "\<(undefined|then|unless|until|loop|of|by|when)\>"
color brightcyan  "\<(true|false|yes|no|on|off)\>"
color brightyellow "@[A-Za-z0-9_]*"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "colortest" "ColorTest$"

color black "\<PLAIN\>"

color red "\<red\>"
color green "\<green\>"
color yellow "\<yellow\>"
color blue "\<blue\>"
color magenta "\<magenta\>"
color cyan "\<cyan\>"

color brightred "\<brightred\>"
color brightgreen "\<brightgreen\>"
color brightyellow "\<brightyellow\>"
color brightblue "\<brightblue\>"
color brightmagenta "\<brightmagenta\>"
color brightcyan "\<brightcyan\>"
syntax "c#" "\.cs$"

# Class
color brightmagenta  "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?"

# Annotation
color magenta   "@[A-Za-z]+"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color green     "\<(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\>"
color brightblack  "\<(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\>"
color brightblack  "\<(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\>"
# LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can)
color brightblack  "\<(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\>"
color brightred     "\<(break|continue)\>"
color brightcyan "\<(true|false)\>"
color red "[-+/*=<>?:!~%&|]"
color blue   "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\([btnfr]|'|\"|\\)"
color magenta   "\\u[A-Fa-f0-9]{4}"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "css" "\.s?css$"

# Selectors
color green     "\<(a|abbr|address|area|article|aside|audio|b|base|bdo|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|eventsource|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|mark|map|menu|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|ruby|rp|rt|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|ul|var|video|wbr)\>"
color red "[>+~*]"
color brightyellow "[.#][A-Za-z_][A-Za-z0-9_-]*"
color red ":(active|focus|hover|link|visited|first-child|lang|valid|invalid|not|selection)\>"
color red ":(after|before|first-line|first-letter|root|target)\>"
color yellow   "\[[^\[]*\]"
color black    start="\{" end="\}"

# Sass
color brightmagenta  "(^|[[:space:]])@(include|mixin)\>"
color brightyellow "\$[A-Za-z0-9_-]+"

color brightmagenta  "(^|[[:space:]])@(charset|font-face|media|page|import)\>"
color red "[*]"
color brightcyan  "\<(above|absolute|always|armenian|auto|avoid|baseline|behind|below|bidi-override|blink|block|bolder|bold|bottom|capitalize|center-left|center-right|center|circle|cjk-ideographic|close-quote|collapse|compact|condensed|continuous|crop|crosshair|cross|cue-after|cue-before|cursive|dashed|decimal|decimal-leading-zero|default|digits|disc|dotted|double|embed|e-resize|expanded|extra-condensed|extra-expanded|fantasy|far-left|far-right|faster|fast|fixed|fixed|georgian|groove|hebrew|help|hide|higher|high|hiragana-iroha|hiragana|inherit|inline|inline-block|inline-table|inset|inside|invert|italic|justify|katakana-iroha|katakana|landscape|large|larger|left|left-side|leftwards|level|lighter|line-through|list-item|loud|lower-alpha|lowercase|lower-greek|lower-latin|lower-roman|lower|low|ltr|marker|medium|medium|middle|mix|monospace|move|narrower|ne-resize|no-close-quote|none|no-open-quote|no-repeat|normal|nowrap|n-resize|nw-resize|oblique|once|open-quote|outset|outside|overline|pointer|portait|relative|repeat-x|repeat-y|repeat|ridge|right-side|right|rightwards|rlt|run-in|sans-serif|scroll|scroll|semi-condensed|semi-expanded|separate|se-resize|serif|show|silent|slower|slow|small-caps|smaller|small|soft|solid|spell-out|square|s-resize|static|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|text-bottom|text|text-top|thick|thin|top|top|transparent|ultra-condensed|ultra-expanded|underline|upper-alpha|uppercase|upper-latin|upper-roman|visible|wait|wider|w-resize|x-fast|x-high|x-large|x-loud|x-low|x-slow|x-small|x-soft|xx-large|xx-small|pre-wrap|break-word)([[:space:];,]|$)"
color brightyellow ":[[:space:]]*(code|hidden|table|pre)\>"
color brightblack  "\<(background-attachment|background-clip|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-radius|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|marker-offset|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numerical|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|transition|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index)[[:space:]]*:"
color brightwhite,red  "-(ms|moz|apple|khtml|wap|webkit|o|xv)-[a-z][a-z-]+"
color black    "[:;,]"
color blue   "\<(0|[\+-]?[1-9][0-9]*)"
color blue   "[\+-]?([0-9]+|[0-9]*\.[0-9]+)(%|e(m|x)|p(x|t|c)|in|ft|(m|c)m|k?Hz|deg|g?rad|m?s)"
color blue   "#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\>"
color red "\!important\>"
color brightblue "[a-z-]*(-[a-z]+)?\(" "\(|\)"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "cython" "\.(pyx|pxd|pyi)$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightblack  "\<(and|as|assert|break|class|continue|def|del|elif|else|except)\>"
color brightblack  "\<(exec|finally|for|from|global|if|import|in|is|lambda|not|or)\>"
color brightblack  "\<(pass|print|raise|return|try|while|with|yield|None)\>"
color brightblack  "\<(DEF|ELIF|ELSE|IF)\>"

color brightblack  "\<(cp?def( inline)?|cimport|cppclass|ctypedef|extern|include)\>"
color brightblack  "\<(namespace|property|struct)\>"
color green     "\<(bint|char|double|int|public|void|unsigned)\>"

color red "[.:;,+*|=!\%@<>/&-]"
color brightyellow    "@[A-Za-z0-9_]+"
color brightmagenta  "__[A-Za-z0-9_]+__"
color brightcyan  "\<(True|False)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow   "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
color yellow   "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
color yellow   start=""""[^"]" end="""""
color yellow   start="'''[^']" end="'''"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "dot" "\.(dot|gv)$"

color brightblack   "\<(digraph|edge|graph|node|subgraph)\>"
color magenta "\<(arrowhead|arrowsize|arrowtail|bgcolor|center|color|constraint|decorateP|dir|distortion|fillcolor|fontcolor|fontname|fontsize|headclip|headlabel|height|labelangle|labeldistance|labelfontcolor|labelfontname|labelfontsize|label|layers|layer|margin|mclimit|minlen|name|nodesep|nslimit|ordering|orientation|pagedir|page|peripheries|port_label_distance|rankdir|ranksep|rank|ratio|regular|rotate|samehead|sametail|shapefile|shape|sides|size|skew|style|tailclip|taillabel|URL|weight|width)\>"
color red  "=|->|--"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
syntax "email"

color magenta "^>([^>].*|$)"
color blue "^>>([^>].*|$)"
color green "^>>>.*"
syntax "gitconfig" "git(config|modules)$|\.git/config$"

color brightcyan "\<(true|false)\>"
color brightblack "^[[:space:]]*[^=]*="
color brightmagenta "^[[:space:]]*\[.*\]$"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"

syntax "gitmsg" "COMMIT_EDITMSG$"

color magenta   "\\."
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "glsl" "\.(frag|vert|fp|vp|glsl)$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color green     "\<(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\>"
color green     "\<gl_(DepthRangeParameters|PointParameters|MaterialParameters|LightSourceParameters|LightModelParameters|LightModelProducts|LightProducts|FogParameters)\>"
color brightblack  "\<(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\>"
color brightred     "\<(break|continue)\>"
color brightcyan "\<(true|false)\>"
color red "[-+/*=<>?:!~%&|^]"
color blue   "\<([0-9]+|0x[0-9a-fA-F]*)\>"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "go" "\.go$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightblue "\<(append|cap|close|complex|copy|delete|imag|len)\>"
color brightblue "\<(make|new|panic|print|println|protect|real|recover)\>"
color green     "\<(u?int(8|16|32|64)?|float(32|64)|complex(64|128))\>"
color green     "\<(uintptr|byte|rune|string|interface|bool|map|chan|error)\>"
color brightblack  "\<(package|import|const|var|type|struct|func|go|defer|nil|iota)\>"
color brightblack  "\<(for|range|if|else|case|default|switch|return)\>"
color brightred     "\<(go|goto|break|continue)\>"
color brightcyan "\<(true|false)\>"
color red "[-+/*=<>!~%&|^]|:="
color blue   "\<([0-9]+|0x[0-9a-fA-F]*)\>|'.'"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\[abfnrtv'\"\\]"
color magenta   "\\([0-7]{3}|x[A-Fa-f0-9]{2}|u[A-Fa-f0-9]{4}|U[A-Fa-f0-9]{8})"
color yellow   "`[^`]*`"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "html" "\.html?$"
header "<!doctype html"

color magenta "\<(accept|accept-charset|accesskey|action|alt|async|autocomplete|autofocus|autoplay|border|challenge|charset|checked|cite|class|cols|colspan|content|contenteditable|contextmenu|controls|coords|crossorigin|data-[a-z-]+|datetime|default|defer|dir|dirname|disabled|draggable|dropzone|enctype|for|form|formaction|formenctype|formmethod|formnovalidate|formtarget|headers|height|hidden|high|href|hreflang|http-equiv|icon|id|ismap|keytype|kind|label|lang|list|loop|low|manifest|max|maxlength|media|mediagroup|method|min|multiple|muted|name|novalidate|open|optimum|pattern|placeholder|poster|preload|pubdate|radiogroup|readonly|rel|required|reversed|rows|rowspan|sandbox|spellcheck|scope|scoped|seamless|selected|shape|size|sizes|span|src|srcdoc|srclang|start|step|style|tabindex|target|title|type|typemustmatch|usemap|value|width|wrap)\>"
color brightwhite,red   "</?[A-Za-z0-9_]+[ >]"
color brightmagenta       "</?(a|abbr|address|area|article|aside|audio|b|base|bdo|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|eventsource|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|mark|map|menu|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|ruby|rp|rt|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|ul|var|video|wbr)[ >]"
color yellow    "=([A-Za-z0-9!$%*\^(){}#|:;_~@+,.?/\\-]|\[|\])+"
color red  "="
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color black     start=">" end="<"
color brightmagenta       "[<>]"

# Embedded template languages
color brightyellow  "\{\{[^}]*\}\}|<%=.*%>"
color brightblue  start="<\?" end="\?>"
color brightblue  start="<%[^=]" end="%>"
color brightblue  start="\{%" end="%\}"

color magenta    "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);"
color cyan   start="<!--" end="-->"
color cyan   "<!(doctype|DOCTYPE)[^>]*>"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "ini" "\.(ini|desktop|lfl|override)$" "(mimeapps\.list|pinforc|setup\.cfg)$" "weechat/.+\.conf$"
header "^\[[A-Za-z]+\]$"

color brightcyan "\<(true|false)\>"
color brightblack "^[[:space:]]*[^=]*="
color brightmagenta "^[[:space:]]*\[.*\]$"
color red "[=;]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "inputrc" "inputrc$"

color red   "\<(off|none)\>"
color green "\<on\>"
color brightblue   "\<set|\$include\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta     "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "java" "\.java$"

# Class
color brightmagenta  "class +[A-Za-z0-9]+ *((implements|extends) +[A-Za-z0-9.]+)?"

# Annotation
color magenta   "@[A-Za-z]+"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color green     "\<(boolean|byte|char|double|float|int|long|short|String|void)\>"
color brightblack  "\<(case|catch|default|do|else|finally|for|if)\>"
color brightblack  "\<(new|return|switch|this|throw|transient|try|while)\>"
color brightblack  "\<(abstract|class|extends|final|implements|import|instanceof)\>"
color brightblack  "\<(interface|native|package|private|protected|public|static)\>"
color brightblack  "\<(strictfp|super|synchronized|throws|volatile|null)\>"
color brightred     "\<(break|continue)\>"
color brightcyan "\<(true|false)\>"
color red "[-+/*=<>?:!~%&|]"
color blue   "\<([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\([btnfr]|'|\"|\\)"
color magenta   "\\u[A-Fa-f0-9]{4}"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "JavaScript" "\.js$"

color blue   "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>"
color blue   "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
color blue   "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightblack  "\<(break|case|catch|continue|default|delete|do|else|finally)\>"
color brightblack  "\<(for|function|get|if|in|instanceof|new|return|set|switch)\>"
color brightblack  "\<(switch|this|throw|try|typeof|var|void|while|with)\>"
color brightblack  "\<(null|undefined|NaN)\>"
color brightcyan "\<(true|false)\>"
color green     "\<(Array|Boolean|Date|Enumerator|Error|Function|Math)\>"
color green     "\<(Number|Object|RegExp|String)\>"
color red "[-+/*=<>!~%?:&|]"
color magenta   "/[^*]([^/]|(\\/))*[^\\]/[gim]*"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "json" "\.json$"
header "^\{$"

color blue   "\<[-]?[1-9][0-9]*([Ee][+-]?[0-9]+)?\>"  "\<[-]?[0](\.[0-9]+)?\>"
color brightblack  "\<null\>"
color brightcyan "\<(true|false)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow "\"(\\"|[^"])*\"[[:space:]]*:"  "'(\'|[^'])*'[[:space:]]*:"
color magenta   "\\u[0-9a-fA-F]{4}|\\[bfnrt'"/\\]"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "keymap" "\.(k|key)?map$|Xmodmap$"

color brightblack  "\<(add|clear|compose|keycode|keymaps|keysym|remove|string)\>"
color brightblack  "\<(control|alt|shift)\>"
color blue   "\<[0-9]+\>"
color red "="
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan  "^!.*$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "KickStart" "\.ks$" "\.kickstart$"

color brightmagenta  "%[a-z]+"
color brightblack  "^[[:space:]]*(install|cdrom|text|graphical|volgroup|logvol|reboot|timezone|lang|keyboard|authconfig|firstboot|rootpw|user|firewall|selinux|repo|part|partition|clearpart|bootloader)"
color brightblack  "--(name|mirrorlist|baseurl|utc)(=|\>)"
color brightyellow "\$(releasever|basearch)\>"

# Packages and groups
color brightblack "^@[A-Za-z][A-Za-z-]*"
color brightred   "^-@[a-zA-Z0-9*-]+"
color red         "^-[a-zA-Z0-9*-]+"

color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "ledger" "(^|\.|/)ledger$"

color brightmagenta  "^([0-9]{4}/[0-9]{2}/[0-9]{2}|[=~]) .*"
color blue   "^[0-9]{4}/[0-9]{2}/[0-9]{2}"
color brightyellow "^~ .*"
color brightblue "^= .*"
color brightblack  "^[[:space:]]+\(?[A-Za-z ]+(:[A-Za-z ]+)*\)?"
color red "[*]"
color cyan  "^[[:space:]]*;.*"
syntax "lisp" "(emacs|zile)$" "\.(el|li?sp|scm|ss)$"

color brightblue "\([a-z-]+"
color red "\(([-+*/<>]|<=|>=)|'"
color black    "\("
color blue   "\<[0-9]+\>"
icolor brightblack "\<nil\>"
color brightcyan  "\<[tT]\>"
color yellow   "\"(\\.|[^"])*\""
color magenta   "'[A-Za-z][A-Za-z0-9_-]+"
color magenta   "\\.?"
color cyan  "(^|[[:space:]]);.*"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "lua" "\.lua$"
header "^#!.*lua(jit)?$"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*([({'"]|\[=*\[)"
color brightblack  "\<(do|end|while|repeat|until|if|elseif|then|else)\>"
color brightblack  "\<(for|in|function|local|return|nil)\>"
color brightred     "\<(goto|break)\>"
color brightcyan "\<(true|false)\>"
color red "[-+:*/%^=#<>]|~=|\.\.|\[|\]|\<(not|and|or)\>"
color brightwhite,red  "[`!@$&|?]|!="
color black    "\.{3,}|[({'"]"
color blue   "\<([0-9]+)(\.[0-9]+)?([Ee][+-]?[0-9]+)?\>|0x[0-9a-fA-F]*"
color brightmagenta  "::[A-Za-z_][A-Za-z0-9_]*::"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\([0-9]{1,3}|x[A-Fa-f0-9]{2}|[abefntrv'"\\]|\[|\])"
color yellow   start="\[\[" end="\]\]"
color yellow   start="\[=\[" end="\]=\]"
color yellow   start="\[==\[" end="\]==\]"
color cyan  "^#!.*" "(^|[[:space:]])\-\-.*$"
color cyan  start="\-\-\[\[" end="\]\]"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
set tabstospaces # Tab key inserts spaces (Ctrl+t for verbatim mode)
set tabsize 4    # Insert 4 spaces per tab
set fill 76      # Justify command (Ctrl+j) wraps at 76 columns
set autoindent   # Jump to the current indent level after inserting a newline
set morespace    # Use the second row (usually blank) for editing space
set quickblank   # Clear status messages after a single keystroke
set multibuffer  # Allow opening multiple files (Alt+< and Alt+> to switch)
set historylog   # Remember command history
set smooth       # Scroll one line at a time
set const        # Show cursor position at the bottom of the screen
set nohelp       # Remove the help bar from the bottom of the screen
set regexp       # Enable regular expression mode for find (Ctrl+r to disable)
set smarthome    # Home key jumps to first non-whitespace character

# Annoyances
unbind ^C all
unbind ^G all

# File
bind ^O insert main
bind ^N insert main
bind ^S writeout main
bind ^Q cancel all
bind ^W cancel all
bind ^Q exit main
bind ^W exit main

# Edit
bind ^A mark main
bind ^C copytext main
bind ^X cut main
bind ^V uncut main
bind ^Z undo main
bind ^Y redo main
bind ^T verbatim main
bind F5 refresh all
bind F8 autoindent main
bind F12 autoindent main

# Search
bind ^F whereis all
bind ^H replace all
bind ^I casesens search
bind ^I casesens replace
bind ^R regex search
bind ^R regex replace
bind ^L gotoline main
bind F3 searchagain main
bind ^] findbracket main

# Default highlighting
syntax "default"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "makefile" "([Mm]akefile|\.ma?k)$"
header "^#!.*/(env +)?[bg]?make( |$)"

color brightblack  "\<(ifeq|ifdef|ifneq|ifndef|else|endif)\>"
color brightblack  "^(export|include|override)\>"
color brightmagenta  "^[^:=	]+:"
color red "[=,%]" "\+=|\?=|:=|&&|\|\|"
color brightblue "\$\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]"
color brightblue "\$\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]"
color brightblue "\$\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]"
color brightblue "\$\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]"
color brightblue "\$\((value|warning|wildcard|word|wordlist|words)[[:space:]]"
color black    "[()$]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow "\$+(\{[^} ]+\}|\([^) ]+\))"
color brightyellow "\$[@^<*?%|+]|\$\([@^<*?%+-][DF]\)"
color magenta   "\$\$|\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color cyan  "^	@#.*"

# Show trailing whitespace
color ,green "[[:space:]]+$"
syntax "man" "\.[1-9]x?$"

color brightmagenta "\.(S|T)H.*$"
color brightblack "\.(BR?|I[PR]?).*$"
color brightyellow   "\.(S|T)H|\.TP|\.(BR?|I[PR]?|PP)|\\f[BIPR]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow  "\.(br|DS|RS|RE|PD)"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "markdown" "\.(md|mkd|mkdn|markdown)$"

# Emphasis
color green "(^|[[:space:]])(_[^ ][^_]*_|\*[^ ][^*]*\*)"

# Strong emphasis
color brightgreen "(^|[[:space:]])(__[^ ][^_]*__|\*\*[^ ][^*]*\*\*)"

color brightmagenta  "^=====*$|^-----*$|^#{1,6}.*"
color blue   "^[[:space:]]*[\*+-] |^[[:space:]]*[0-9]+\. "
color black    "^[[:space:]]+"
color magenta   "\(([CcRr]|[Tt][Mm])\)" "\.{3}" "(^|[[:space:]])\-\-($|[[:space:]])"
color brightyellow "\!?\[[^]]*\]([[:space:]]*\[[^]]*\]|\(.*\))?"
color brightyellow "^\[.*\]:[[:space:]]*[^"]*"
color yellow   "`[^`]*`|^ {4}[^-+*].*"
color cyan  "^>.*"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "mpdconf" "mpd\.conf$"

color brightblack "\<(user|group|bind_to_address|host|port|plugin|name|type)\>"
color brightblack "\<((music|playlist)_directory|(db|log|state|pid|sticker)_file)\>"
color brightmagenta "^(input|audio_output|decoder)[[:space:]]*\{|\}"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "nanorc" "nanorc$"

color green     "^i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
color brightblack  "^(set|unset)[[:space:]]+(allow_insecure_backup|autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|poslog|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|softwrap|speller|suspend|suspendenable|tabsize|tabstospaces|tempfile|undo|view|whitespace|wordbounds)\>"
color brightblack  "^(bind|i?color|set|unset|syntax|header|magic)\>"
color red "^unbind\>"
color brightblack  "^i?color\>" "\<(start|end)="
color brightyellow    "^include\>"

color brightblack  "^(PLAIN|TYPE|STRING|MACRO|NUMBER|VARIABLE|OPERATOR|~?KEYWORD):"
color brightblack  "^(BOOLEAN|SECTION|REGEXP|FUNCTION|ESCAPE|COMMENT|WARNING|JUMP):"
color brightblack  "^(TAG|ATTRIBUTE):"
color brightyellow    "^\+(TODO|LINT|STRING|BOOLEAN|FUNCTION|INI|(C|HASH)COMMENT)$"

color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "nginx" "nginx.*\.conf$" "\.nginx$"
header "^(server|upstream)[a-z ]*\{$"

color brightmagenta  "\<(events|server|http|location|upstream)[[:space:]]*\{"
color brightblack  "(^|[[:space:]{;])(access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth_basic|auth_basic_user_file|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|default_type|deny|directio|directio_alignment|disable_symlinks|empty_gif|env|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|log_format|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|port_in_redirect|postpone_output|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_header|proxy_read_timeout|proxy_redirect|proxy_send_timeout|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|working_directory|xml_entities|xslt_stylesheet|xslt_types)([[:space:]]|$)"
color black    "[{}]"
color brightcyan  "\<(on|off)\>"
color brightyellow "\$[A-Za-z][A-Za-z0-9_]*"
color red "[*]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow   start="'$" end="';$"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "patch" "\.(patch|diff)$"

color brightgreen "^\+.*"
color green "^\+\+\+.*"
color brightred "^-.*"
color red "^---.*"
color blue "^@@.*"
color magenta "^diff.*"

syntax "peg" "\.l?peg$"

color brightblack  "^[[:space:]]*[A-Za-z][A-Za-z0-9_]*[[:space:]]*<-"
color blue   "\^[+-]?[0-9]+"
color red "[-+*?^/!&]|->|<-|=>"
color brightyellow    "%[A-Za-z][A-Za-z0-9_]*"
color magenta   "\[[^]]*\]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan  "(^|[[:space:]])\-\-.*$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "php" "\.php$"

color red "[-+/*=<>?:!~%&|]"
color brightmagenta  "(<\?(php)?|\?>)"
color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color green     "\<(float|global|double|bool|char|int|enum|const)\>"
color brightblack  "\<(class|new|private|public|function|for|foreach|if|while|do|var)\>"
color brightblack  "\<(return|else|elseif|case|default|switch)\>"
color brightred     "\<(goto|break|continue)\>"
color brightcyan "\<(true|false)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow "\$[A-Za-z_][A-Za-z0-9_]*"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "pkg-config" "\.pc$"

color brightblack  "^(Name|Description|URL|Version|Conflicts|Cflags):"
color brightblack  "^(Requires|Libs)(\.private)?:"
color red "="
color brightyellow "\$\{[A-Za-z_][A-Za-z0-9_]*\}"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "pkgbuild" "PKGBUILD$" "\.install$"

color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)"
color brightblack  "\<(case|do|done|elif|else|esac|fi|for|function|if)\>"
color brightblack  "\<(in|select|then|time|until|while)\>"
color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>"
color green     "\<(pkgname|pkgver|pkgrel|epoch|pkgdesc|arch|url|license)\>"
color green     "\<(groups|depends|makedepends|checkdepends|optdepends)\>"
color green     "\<(provides|conflicts|replaces|backup|options|^install)\>"
color green     "\<(changelog|source|noextract)\>"
color green     "\<(md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\>"
color green     "\<(srcdir|pkgdir)\>"
color brightyellow    "\<(strip|docs|libtool|emptydirs|zipman|purge|upx)\>"
color brightyellow    "\<(ccache|distcc|buildflags|makeflags)\>"
color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color yellow   ""(\\.|[^"])*""
color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`"
color yellow   "'(\\.|[^'])*'"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "po" "\.pot?$"

color brightblack  "\<(msgid|msgstr)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "privoxy-config" "privoxy/config$"

color brightblack "(accept-intercepted-requests|actionsfile|admin-address|allow-cgi-request-crunching|buffer-limit|compression-level|confdir|connection-sharing|debug|default-server-timeout|deny-access|enable-compression|enable-edit-actions|enable-remote-http-toggle|enable-remote-toggle|enforce-blocks|filterfile|forward|forwarded-connect-retries|forward-socks4|forward-socks4a|forward-socks5|handle-as-empty-doc-returns-ok|hostname|keep-alive-timeout|listen-address|logdir|logfile|max-client-connections|permit-access|proxy-info-url|single-threaded|socket-timeout|split-large-forms|templdir|toggle|tolerate-pipelining|trustfile|trust-info-url|user-manual)[[:space:]]"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"

syntax "privoxy-action" "\.action$"

color brightred   "[{[:space:]]\-block([[:space:]{}]|$)"
color brightgreen "[{[:space:]]\+block([[:space:]{}]|$)"

color brightred   "-(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)"
color brightgreen "\+(add-header|change-x-forwarded-for|client-header-filter|client-header-tagger|content-type-overwrite|crunch-client-header|crunch-if-none-match|crunch-incoming-cookies|crunch-outgoing-cookies|crunch-server-header|deanimate-gifs|downgrade-http-version|fast-redirects|filter|force-text-mode|forward-override|handle-as-empty-document|handle-as-image|hide-accept-language|hide-content-disposition|hide-from-header|hide-if-modified-since|hide-referrer|hide-user-agent|limit-connect|overwrite-last-modified|prevent-compression|redirect|server-header-filter|server-header-tagger|session-cookies-only|set-image-blocker)"
color black            "[{}]"
color magenta           "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"

syntax "privoxy-filter" "\.filter$"

color brightblack  "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER): [a-z-]+"
color brightblue "^(FILTER|CLIENT-HEADER-FILTER|CLIENT-HEADER-TAGGER|SERVER-HEADER-FILTER|SERVER-HEADER-TAGGER):"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"

syntax "python" "\.py$" "jhbuildrc$"
header "^#!.*/(env +)?python[-0-9._]*( |$)"

color brightblack  "\<(as|assert|break|class|continue|def|del|elif|else|except)\>"
color brightblack  "\<(exec|finally|for|from|global|if|import|lambda)\>"
color brightblack  "\<(pass|print|raise|return|try|while|with|yield|None)\>"
color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color red "[-+*/|=%<>&~^]|\<(and|not|or|is|in)\>"
color brightyellow    "@[A-Za-z0-9_]+"
color brightmagenta  "__[A-Za-z0-9_]+__"
color brightcyan  "\<(True|False)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow   "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
color yellow   "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
color yellow   start=""""[^"]" end="""""
color yellow   start="'''[^']" end="'''"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "rpmspec" "\.spec$" "\.rpmspec$"

color brightblack  "\<(Icon|ExclusiveOs|ExcludeOs):"
color brightblack  "\<(BuildArch|BuildArchitectures|ExclusiveArch|ExcludeArch):"
color brightblack  "\<(Conflicts|Obsoletes|Provides|Requires|Requires\(.*\)|Enhances|Suggests|BuildConflicts|BuildRequires|Recommends|PreReq|Supplements):"
color brightblack  "\<(Epoch|Serial|Nosource|Nopatch):"
color brightblack  "\<(AutoReq|AutoProv|AutoReqProv):"
color brightblack  "\<(Copyright|License|Summary|Summary\(.*\)|Distribution|Vendor|Packager|Group|Source[0-9]*|Patch[0-9]*|BuildRoot|Prefix):"
color brightblack  "\<(Name|Version|Release|Url|URL):"
color brightblack  start="^(Source|Patch)" end=":"
color brightblack  "(i386|i486|i586|i686|athlon|ia64|alpha|alphaev5|alphaev56|alphapca56|alphaev6|alphaev67|sparc|sparcv9|sparc64armv3l|armv4b|armv4lm|ips|mipsel|ppc|ppc|iseries|ppcpseries|ppc64|m68k|m68kmint|Sgi|rs6000|i370|s390x|s390|noarch)"
color brightblack  "(ifarch|ifnarch|ifos|ifnos)"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightyellow    "%(if|else|endif|define|global|undefine)"
color brightyellow    "%_?([A-Z_a-z_0-9_]*)"
color brightyellow    start="%\{" end="\}"
color brightyellow    start="%\{__" end="\}"
color brightyellow "\$(RPM_BUILD_ROOT)\>"
color brightmagenta  "^%(build$|changelog|check$|clean$|description)"
color brightmagenta  "^%(files|install$|package|prep$)"
color brightmagenta  "^%(pre|preun|pretrans|post|postun|posttrans)"
color brightmagenta  "^%(trigger|triggerin|triggerpostun|triggerun|verifyscript)"
color cyan "(^|[[:space:]])#([^{].*)?$"
color blue   "^\*.*$"
color ,green "[[:space:]]+$"
color ,red "	+"
color brightwhite,cyan "TODO:?"
syntax "ruby" "\.rb$|Rakefile$"

color brightblack "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>"
color yellow  "(^|[[:space:]]):[A-Za-z0-9_]+\>"
color magenta  "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color cyan start="^=begin$" end="^=end$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "sed" "\.sed$"
header "^#!.*bin/(env +)?sed( |$)"

color red "[|^$.*+]"
color brightyellow "\{[0-9]+,?[0-9]*\}"
color magenta   "\\."
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "sh" "\.sh$" "\.bash$" "bashrc$" "bash_profile$"
header "^#!.*/(env +)?(ba|k|pdk)?sh[-0-9_]*( |$)"

color brightblue "^[A-Za-z0-9_+-]+[[:space:]]*\(\)"
color brightblack  "\<(case|do|done|elif|else|esac|fi|for|function|if)\>"
color brightblack  "\<(in|select|then|time|until|while)\>"
color brightblue "\<(echo|exit|export|let|local|read|return|set|shift|umask|unset)\>"
color brightblue "\<(source)\>"
color red "[{}()<>!=&|;`$]|\\|\[|\]|-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color yellow   ""(\\.|[^"])*""
color brightyellow "\$\{?[A-Za-z0-9_!@#$*?-]+\}?|`[^`]*`"
color yellow   "'(\\.|[^'])*'"
color magenta   "\\.?"
color cyan "(^|[[:space:]])#([^{].*)?$"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "sql" "\.sql$" "sqliterc$"

icolor brightblack "\<(ALL|ASC|AS|ALTER|AND|ADD|AUTO_INCREMENT)\>"
icolor brightblack "\<(BETWEEN|BINARY|BOTH|BY|BOOLEAN)\>"
icolor brightblack "\<(CHANGE|CHECK|COLUMNS|COLUMN|CROSS|CREATE)\>"
icolor brightblack "\<(DATABASES|DATABASE|DATA|DELAYED|DESCRIBE|DESC|DISTINCT|DELETE|DROP|DEFAULT)\>"
icolor brightblack "\<(ENCLOSED|ESCAPED|EXISTS|EXPLAIN)\>"
icolor brightblack "\<(FIELDS|FIELD|FLUSH|FOR|FOREIGN|FUNCTION|FROM)\>"
icolor brightblack "\<(GROUP|GRANT|HAVING)\>"
icolor brightblack "\<(IGNORE|INDEX|INFILE|INSERT|INNER|INTO|IDENTIFIED|IN|IS|IF)\>"
icolor brightblack "\<(JOIN|KEYS|KILL|KEY)\>"
icolor brightblack "\<(LEADING|LIKE|LIMIT|LINES|LOAD|LOCAL|LOCK|LOW_PRIORITY|LEFT|LANGUAGE)\>"
icolor brightblack "\<(MODIFY|NATURAL|NOT|NULL|NEXTVAL)\>"
icolor brightblack "\<(OPTIMIZE|OPTION|OPTIONALLY|ORDER|OUTFILE|OR|OUTER|ON)\>"
icolor brightblack "\<(PROCEDURE|PROCEDURAL|PRIMARY)\>"
icolor brightblack "\<(READ|REFERENCES|REGEXP|RENAME|REPLACE|RETURN|REVOKE|RLIKE|RIGHT)\>"
icolor brightblack "\<(SHOW|SONAME|STATUS|STRAIGHT_JOIN|SELECT|SETVAL|SET)\>"
icolor brightblack "\<(TABLES|TERMINATED|TO|TRAILING|TRUNCATE|TABLE|TEMPORARY|TRIGGER|TRUSTED)\>"
icolor brightblack "\<(UNIQUE|UNLOCK|USE|USING|UPDATE|VALUES|VARIABLES|VIEW)\>"
icolor brightblack "\<(WITH|WRITE|WHERE|ZEROFILL|TYPE|XOR)\>"
color green     "\<(VARCHAR|TINYINT|TEXT|DATE|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|FLOAT|DOUBLE|DECIMAL|DATETIME|TIMESTAMP|TIME|YEAR|UNSIGNED|CHAR|TINYBLOB|TINYTEXT|BLOB|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|ENUM|BOOL|BINARY|VARBINARY)\>"

# SQLite meta commands
icolor brightblack "\.\<(databases|dump|echo|exit|explain|header(s)?|help)\>"
icolor brightblack "\.\<(import|indices|mode|nullvalue|output|prompt|quit|read)\>"
icolor brightblack "\.\<(schema|separator|show|tables|timeout|width)\>"
color brightcyan  "\<(ON|OFF)\>"

color blue   "\<([0-9]+)\>"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color yellow   "`(\\.|[^\\`])*`"
color cyan  "\-\-.*$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "systemd" "\.(service|socket)$"
header "^\[Unit\]$"

color brightblack  "^(Accept|After|Alias|AllowIsolate|Also|ANSI_COLOR|_AUDIT_LOGINUID|_AUDIT_SESSION|Backlog|Before|BindIPv6Only|BindsTo|BindToDevice|BlockIOReadBandwidth|BlockIOWeight|BlockIOWriteBandwidth|_BOOT_ID|Broadcast|BUG_REPORT_URL|BusName|Capabilities|CapabilityBoundingSet|CHASSIS|cipher|class|_CMDLINE|CODE_FILE|CODE_FUNC|CODE_LINE|_COMM|Compress|ConditionACPower|ConditionCapability|ConditionDirectoryNotEmpty|ConditionFileIsExecutable|ConditionFileNotEmpty|ConditionHost|ConditionKernelCommandLine|ConditionNull|ConditionPathExists|ConditionPathExistsGlob|ConditionPathIsDirectory|ConditionPathIsMountPoint|ConditionPathIsReadWrite|ConditionPathIsSymbolicLink|ConditionSecurity|ConditionVirtualization|Conflicts|ControlGroup|ControlGroupAttribute|ControlGroupModify|ControlGroupPersistent|controllers|Controllers|CPE_NAME|CPUAffinity|CPUSchedulingPolicy|CPUSchedulingPriority|CPUSchedulingResetOnFork|CPUShares|CrashChVT|CrashShell|__CURSOR|debug|DefaultControllers|DefaultDependencies|DefaultLimitAS|DefaultLimitCORE|DefaultLimitCPU|DefaultLimitDATA|DefaultLimitFSIZE|DefaultLimitLOCKS|DefaultLimitMEMLOCK|DefaultLimitMSGQUEUE|DefaultLimitNICE|DefaultLimitNOFILE|DefaultLimitNPROC|DefaultLimitRSS|DefaultLimitRTPRIO|DefaultLimitRTTIME|DefaultLimitSIGPENDING|DefaultLimitSTACK|DefaultStandardError|DefaultStandardOutput|Description|DeviceAllow|DeviceDeny|DirectoryMode|DirectoryNotEmpty|Documentation|DumpCore|entropy|Environment|EnvironmentFile|ERRNO|event_timeout|_EXE|ExecReload|ExecStart|ExecStartPost|ExecStartPre|ExecStop|ExecStopPost|ExecStopPre|filter|FONT|FONT_MAP|FONT_UNIMAP|ForwardToConsole|ForwardToKMsg|ForwardToSyslog|FreeBind|freq|FsckPassNo|fstab|_GID|Group|GuessMainPID|HandleHibernateKey|HandleLidSwitch|HandlePowerKey|HandleSuspendKey|hash|HibernateKeyIgnoreInhibited|HOME_URL|_HOSTNAME|ICON_NAME|ID|IdleAction|IdleActionSec|ID_LIKE|ID_MODEL|ID_MODEL_FROM_DATABASE|IgnoreOnIsolate|IgnoreOnSnapshot|IgnoreSIGPIPE|InaccessibleDirectories|InhibitDelayMaxSec|init|IOSchedulingClass|IOSchedulingPriority|IPTOS|IPTTL|JobTimeoutSec|JoinControllers|KeepAlive|KEYMAP|KEYMAP_TOGGLE|KillExcludeUsers|KillMode|KillOnlyUsers|KillSignal|KillUserProcesses|LidSwitchIgnoreInhibited|LimitAS|LimitCORE|LimitCPU|LimitDATA|LimitFSIZE|LimitLOCKS|LimitMEMLOCK|LimitMSGQUEUE|LimitNICE|LimitNOFILE|LimitNPROC|LimitRSS|LimitRTPRIO|LimitRTTIME|LimitSIGPENDING|LimitSTACK|link_priority|valueListenDatagram|ListenFIFO|ListenMessageQueue|ListenNetlink|ListenSequentialPacket|ListenSpecial|ListenStream|LogColor|LogLevel|LogLocation|LogTarget|luks|_MACHINE_ID|MakeDirectory|Mark|MaxConnections|MaxFileSec|MaxLevelConsole|MaxLevelKMsg|MaxLevelStore|MaxLevelSyslog|MaxRetentionSec|MemoryLimit|MemorySoftLimit|MESSAGE|MESSAGE_ID|MessageQueueMaxMessages|MessageQueueMessageSize|__MONOTONIC_TIMESTAMP|MountFlags|NAME|NAutoVTs|Nice|NonBlocking|NoNewPrivileges|NotifyAccess|OnActiveSec|OnBootSec|OnCalendar|OnFailure|OnFailureIsolate|OnStartupSec|OnUnitActiveSec|OnUnitInactiveSec|OOMScoreAdjust|Options|output|PAMName|PartOf|PassCredentials|PassSecurity|PathChanged|PathExists|PathExistsGlob|PathModified|PermissionsStartOnly|_PID|PIDFile|PipeSize|PowerKeyIgnoreInhibited|PRETTY_HOSTNAME|PRETTY_NAME|Priority|PRIORITY|PrivateNetwork|PrivateTmp|PropagatesReloadTo|pss|RateLimitBurst|RateLimitInterval|ReadOnlyDirectories|ReadWriteDirectories|__REALTIME_TIMESTAMP|ReceiveBuffer|RefuseManualStart|RefuseManualStop|rel|ReloadPropagatedFrom|RemainAfterExit|RequiredBy|Requires|RequiresMountsFor|RequiresOverridable|Requisite|RequisiteOverridable|ReserveVT|ResetControllers|Restart|RestartPreventExitStatus|RestartSec|RootDirectory|RootDirectoryStartOnly|RuntimeKeepFree|RuntimeMaxFileSize|RuntimeMaxUse|RuntimeWatchdogSec|samples|scale_x|scale_y|Seal|SecureBits|_SELINUX_CONTEXT|SendBuffer|SendSIGKILL|Service|ShowStatus|ShutdownWatchdogSec|size|SmackLabel|SmackLabelIPIn|SmackLabelIPOut|SocketMode|Sockets|SourcePath|_SOURCE_REALTIME_TIMESTAMP|SplitMode|StandardError|StandardInput|StandardOutput|StartLimitAction|StartLimitBurst|StartLimitInterval|static_node|StopWhenUnneeded|Storage|string_escape|none|replaceSuccessExitStatus|SupplementaryGroups|SUPPORT_URL|SuspendKeyIgnoreInhibited|SyslogFacility|SYSLOG_FACILITY|SyslogIdentifier|SYSLOG_IDENTIFIER|SyslogLevel|SyslogLevelPrefix|SYSLOG_PID|SystemCallFilter|SYSTEMD_ALIAS|_SYSTEMD_CGROUP|_SYSTEMD_OWNER_UID|SYSTEMD_READY|_SYSTEMD_SESSION|_SYSTEMD_UNIT|_SYSTEMD_USER_UNIT|SYSTEMD_WANTS|SystemKeepFree|SystemMaxFileSize|SystemMaxUse|SysVStartPriority|TCPCongestion|TCPWrapName|timeout|TimeoutSec|TimeoutStartSec|TimeoutStopSec|TimerSlackNSec|Transparent|_TRANSPORT|tries|TTYPath|TTYReset|TTYVHangup|TTYVTDisallocate|Type|_UID|UMask|Unit|User|UtmpIdentifier|VERSION|VERSION_ID|WantedBy|Wants|WatchdogSec|What|Where|WorkingDirectory)="
color brightblue "^\.include\>"
color red "="
color brightmagenta  "^\[(Unit|Install|Service|Socket)\]"
color brightyellow "\$MAINPID"
color brightcyan "\<(true|false)\>"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "tex" "\.(tex|cls|ltx|sty|dtx|ins|bbl)$"

color brightyellow   "\\[A-Za-z]+"
color brightmagenta "\\section"
color cyan "%.*"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "vala" "\.vala$"

color green     "\<(float|double|bool|char|int|uint|short|long|void|(un)?signed)\>"
color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightblack  "\<(for|if|while|do|else|case|default|switch|try|throw|catch)\>"
color brightblack  "\<(inline|typedef|struct|enum|union|extern|static|const)\>"
color brightblack  "\<(operator|new|delete|return|null)\>"
color brightblack  "\<(class|override|private|public|signal|this|weak)\>"
color brightred     "\<(goto|break|continue)\>"
color brightcyan "\<(true|false)\>"
color blue   "\<([0-9]+)\>"
color red "[-+/*=<>?:!~%&|]" "->"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])//.*"
color cyan start="/\*" end="\*/"
color brightwhite,cyan "TODO:?"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "vi" "(^|/|\.)(ex|vim)rc$|\.vim"

color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
color black    "[(]"
color brightblack  "\<([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\>"
color brightblack  "\<(snor|nun|nm|set|if|endif|let|unlet)\>"
color red "[!&=]"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan  "(^|[[:space:]])\"[^"]*$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "xml" "\.([jrs]html?|sgml?|xml|opml|xslt?|plist)$"
header "<\?xml"

color brightmagenta  start="<" end=">"
color brightblack  " [a-z_-]+="
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color brightwhite,red  "&"
color magenta   "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);"
color cyan  start="<!--" end="-->"
color cyan  start="<!DOCTYPE" end=">"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "xresources" "X(defaults|resources)$"

color green     "^[[:alnum:]]+\*"
color brightyellow "\*[[:alnum:]]+\:"
color blue   "\<[0-9]+\>"
color red "[*:=]"
color brightcyan "\<(true|false)\>"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "yaml" "\.ya?ml$"
header "^---" "%YAML"

color green     "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) "
color brightcyan  "\<(YES|yes|Y|y|ON|on|NO|no|N|n|OFF|off)\>"
color brightcyan "\<(true|false)\>"
color red ":[[:space:]]" "\[" "\]" ":[[:space:]]+[|>]" "^[[:space:]]*- "
color brightyellow "[[:space:]][\*&][A-Za-z0-9]+"
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color cyan "(^|[[:space:]])#([^{].*)?$"
color brightmagenta  "^---" "^\.\.\." "^%YAML" "^%TAG"
color ,green "[[:space:]]+$"
color ,red "	+"
syntax "yum" "\.repo$|yum.*\.conf$"

color brightblack "^[[:space:]]*[^=]*="
color brightmagenta "^[[:space:]]*\[.*\]$"
color brightyellow "\$(releasever|arch|basearch|uuid|YUM[0-9])"
color cyan "(^|[[:space:]])#([^{].*)?$"
color ,green "[[:space:]]+$"
color ,red "	+"
