## Here is an example for Ruby. syntax "ruby" "\.rb$" header "^#!.*ruby[-0-9._]*" # Reserved words. color yellow "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module)\>" color yellow "\<(next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>" # Constants. color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*" # Ruby "symbols". icolor magenta "([ ]|^):[0-9A-Z_]+\>" # Some unique things we want to stand out. color brightyellow "\<(__FILE__|__LINE__)\>" # Regular expressions. color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*" # Shell command expansion is in `backticks` or like %x{this}. These are # "double-quotish" (to use a perlism). color brightblue "`[^`]*`" "%x\{[^}]*\}" # Strings, double-quoted. color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!" # Expression substitution. These go inside double-quoted strings, # "like #{this}". color brightgreen "#\{[^}]*\}" # Strings, single-quoted. color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!" # Comments. color cyan "#[^{].*$" "#$" color brightcyan "##[^{].*$" "##$" # "Here" docs. color green start="<<-?'?EOT'?" end="^EOT" # Some common markers. color brightcyan "(XXX|TODO|FIXME|\?\?\?)"