state tcsh extends HighlightEntry
{
/#/ {
comment_face (true);
language_print ($0);
call (eat_one_line);
comment_face (false);
}
/\"/ {
string_face (true);
language_print ($0);
call (c_string);
string_face (false);
}
/^#!/ {
reference_face (true);
language_print ($0);
call (eat_one_line);
reference_face (false);
}
/\b(%|:|@|al(ias|loc)|b(g|indkey|reak(|sw)|uiltins|ye)\
|c(ase()|d|hdir|o(mplete|ntinue))|d(efault|irs)\
|e(cho(|tc)|lse|nd(|if|sw)|val|x(ec|it))|f(g|iletest|oreach)\
|g(et(spath|xvers)|lob|oto)|h(ashstat|istory|up)|i(f|nlib)|jobs|kill\
|l(imit|og(|in|out)|s-F)|migrate|n(ewgrp|ice|o(hup|tify))|onintr\
|p(opd|rintenv|ushd)|r(e(hash|peat)|ootnode)\
|s(ched|et(|env|path|spath|t(c|y)|xvers)|hift|ource|top|uspend|witch)\
|t(elltc|ime)|u(mask|n(alias|complete|hash|iverse|limit|set(|env)))\
|ver|w(a(it|rp|tchlog)|h(ere|i(ch|le))))\b/ {
keyword_face (true);
language_print ($0);
keyword_face (false);
}
/\b(a(ddsuffix|fsuser|mpm|rgv|uto(correct|expand|l(ist|ogout)))\
|backslash_quote|c(dpath|orrect|wd)|d(extract|irs(file|tack)|unique)\
|e(cho(|_style)|dit|llipsis)|fi(gnore|lec)|gid\
|h(ist(chars|dup|file|list|ory)|ome)|i(gnoreeof|nputmode)\
|l(ist(jobs|links|max(|rows))|oginsh)|ma(il|tchbeep)\
|no(beep|clobber|glob|kanji|nomatch|stat|tify)|o(id|wd)\
|p(ath|r(intexitvalue|ompt(|2|3))|ushd(silent|tohome))\
|r(ec(exact|ognize_only_executables)|mstar)\
|s(ave(dirs|hist)|ched|h(ell|lvl|owdots)|tatus|ymlinks)\
|t(csh|erm|period|ty)|u(id|ser)|v(er(bose|sion)|isiblebell)\
|w(atch|how|ordchars))\b/ {
builtin_face (true);
language_print ($0);
builtin_face (false);
}
}