## Here is an example for Ruby. ## syntax "Ruby" "\.rb$" "Gemfile" "config.ru" "Rakefile" "Capfile" "Vagrantfile" header "^#!.*/(env +)?ruby( |$)" magic "Ruby script" linter ruby -w -c comment "#" ## Asciibetical list of reserved words color yellow "\<(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)\>" ## 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|\?\?\?)" ## Trailing spaces color ,green "[[:space:]]+$"