2006-06-01 21:23:28 +04:00
## Here is an example for Ruby.
2014-05-17 00:21:34 +04:00
2018-02-07 13:25:46 +03:00
syntax ruby "\.rb$"
2014-09-21 19:29:40 +04:00
header "^#!.*ruby[-0-9._]*"
2017-11-19 13:10:53 +03:00
magic "Ruby script"
2015-04-18 14:35:23 +03:00
linter ruby -w -c
2016-05-25 23:13:50 +03:00
comment "#"
2014-05-17 00:21:34 +04:00
2015-02-21 13:34:15 +03:00
# 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)\>"
2014-05-17 00:21:34 +04:00
# Constants.
2006-07-07 17:54:38 +04:00
color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*"
2014-05-17 00:21:34 +04:00
# Ruby "symbols".
2006-06-01 21:23:28 +04:00
icolor magenta "([ ]|^):[0-9A-Z_]+\>"
2014-05-17 00:21:34 +04:00
# Some unique things we want to stand out.
2006-06-01 21:23:28 +04:00
color brightyellow "\<(__FILE__|__LINE__)\>"
2014-05-17 00:21:34 +04:00
# Regular expressions.
2006-06-01 21:23:28 +04:00
color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
2014-05-17 00:21:34 +04:00
# Shell command expansion is in `backticks` or like %x{this}. These are
# "double-quotish" (to use a perlism).
2006-06-01 21:23:28 +04:00
color brightblue "`[^`]*`" "%x\{[^}]*\}"
2014-05-17 00:21:34 +04:00
# Strings, double-quoted.
2006-06-01 21:23:28 +04:00
color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
2014-05-17 00:21:34 +04:00
# Expression substitution. These go inside double-quoted strings,
# "like #{this}".
2006-06-01 21:23:28 +04:00
color brightgreen "#\{[^}]*\}"
2014-05-17 00:21:34 +04:00
# Strings, single-quoted.
2006-06-01 21:23:28 +04:00
color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
2014-05-17 00:21:34 +04:00
# Comments.
2006-06-01 21:23:28 +04:00
color cyan "#[^{].*$" "#$"
color brightcyan "##[^{].*$" "##$"
2014-05-17 00:21:34 +04:00
# "Here" docs.
2006-06-08 16:49:57 +04:00
color green start="<<-?'?EOT'?" end="^EOT"
2014-05-17 00:21:34 +04:00
# Some common markers.
2006-06-01 21:23:28 +04:00
color brightcyan "(XXX|TODO|FIXME|\?\?\?)"