mirror of
https://github.com/zyedidia/micro.git
synced 2024-10-27 04:31:18 +03:00
0859f4aa36
* highlighter: Fix region & pattern detection * syntax/sh: Highlight upper case options too * syntax/c(pp): Try to synchronize the rules to lower the maintenance effort * syntax/ruby: Fix explicit filename detection in directories * highlighter: Respect skip rules in regions * syntax/sh: Fix parameter expansion, cond. flags and generalize filename via "" * syntax/php|vi: Correct strings in comments to comments only Additionally improve vimscript comment handling. * highlighter: Remove problematic start|end check in find(all)Index() ...and additionally remove recursive region end detection
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
filetype: ruby
|
|
|
|
detect:
|
|
filename: "\\.(rb|rake|gemspec)$|^(.*[\\/])?(Gemfile|config.ru|Rakefile|Capfile|Vagrantfile|Guardfile|Appfile|Fastfile|Pluginfile|Podfile|\\.?[Bb]rewfile)$"
|
|
header: "^#!.*/(env +)?ruby( |$)"
|
|
|
|
rules:
|
|
- comment.bright:
|
|
start: "##"
|
|
end: "$"
|
|
rules:
|
|
- todo: "(XXX|TODO|FIXME|BUG|\\?\\?\\?)"
|
|
- comment:
|
|
start: "#"
|
|
end: "$"
|
|
rules:
|
|
- todo: "(XXX|TODO|FIXME|BUG|\\?\\?\\?)"
|
|
|
|
- statement: "\\b(BEGIN|END|alias|and|begin|break|case|class|def|defined\\?|do|else|elsif|end|ensure|for|if|in|module|next|nil|not|or|private|protected|public|redo|rescue|retry|return|self|super|then|undef|unless|until|when|while|yield)\\b"
|
|
- constant: "(\\$|@|@@)?\\b[A-Z]+[0-9A-Z_a-z]*"
|
|
- constant.number: "(?i)\\b0x[0-9a-fA-F][0-9a-f_]*\\b"
|
|
- constant.number: "(?i)\\b0b[01][01_]*\\b"
|
|
- constant.number: "(?i)\\b[0-9][0-9_]*(['.'][0-9_]+)?(e[\\-]?[0-9_]+)?\\b"
|
|
# Ruby "Symbols"
|
|
- constant: "(i?)([ ]|^):[0-9A-Z_]+\\b"
|
|
- constant: "\\b(__FILE__|__LINE__)\\b"
|
|
- constant: "/([^/]|(\\\\/))*/[iomx]*|%r\\{([^}]|(\\\\}))*\\}[iomx]*"
|
|
|
|
- constant.string:
|
|
start: "'"
|
|
end: "'"
|
|
skip: "\\\\."
|
|
rules: []
|
|
|
|
- constant.string:
|
|
start: "\""
|
|
end: "\""
|
|
skip: "\\\\."
|
|
rules:
|
|
- symbol.brackets:
|
|
start: "#\\{"
|
|
end: "\\}"
|
|
rules:
|
|
- default: ".*"
|
|
|
|
- constant.string.exec:
|
|
start: "`"
|
|
end: "`"
|
|
skip: "\\\\."
|
|
rules:
|
|
- symbol.brackets:
|
|
start: "#\\{"
|
|
end: "\\}"
|
|
rules:
|
|
- default: ".*"
|
|
|
|
- constant.string: "%[QW]?\\{[^}]*\\}|%[QW]?\\([^)]*\\)|%[QW]?<[^>]*>|%[QW]?\\[[^]]*\\]|%[QW]?\\$[^$]*\\$|%[QW]?\\^[^^]*\\^|%[QW]?![^!]*!"
|
|
- constant.string: "%[qw]\\{[^}]*\\}|%[qw]\\([^)]*\\)|%[qw]<[^>]*>|%[qw]\\[[^]]*\\]|%[qw]\\$[^$]*\\$|%[qw]\\^[^^]*\\^|%[qw]![^!]*!"
|
|
- constant.string.exec: "%[x]\\{[^}]*\\}|%[x]\\([^)]*\\)|%[x]<[^>]*>|%[x]\\[[^]]*\\]|%[x]\\$[^$]*\\$|%[x]\\^[^^]*\\^|%[x]![^!]*!"
|
|
- constant.bool: "\\b(true|false|nil|TRUE|FALSE|NIL)\\b"
|
|
- symbol.operator: "[-+/*=<>!~%&|^]|\\b:"
|
|
- symbol.brackets: "([(){}]|\\[|\\])"
|
|
- constant.macro:
|
|
start: "<<-?'?EOT'?"
|
|
end: "^EOT"
|
|
rules: []
|
|
|
|
- preproc.shebang: "^#!.+?( |$)"
|