| ## Here is an example for Ruby. |
| |
| syntax "ruby" "\.rb$" |
| header "^#!.*ruby[-0-9._]*" |
| linter ruby -w -c |
| comment "#" |
| |
| # 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|\?\?\?)" |