# Ruby syntax file for Diffuse # Copyright (C) 2008-2009 Derrick Moser syntax Ruby normal text syntax_files Ruby '\.rb$' syntax_magic Ruby '^#![ \t]*([^ \t/]*/)*(env[ \t]+)?ruby[0-9\.]*([ \t].*)?$' # colours colour ruby_comment 0.2 0.4 0.64 colour ruby_fixme 1.0 0.5 0.0 colour ruby_keyword 0.77 0.63 0.0 colour ruby_import 0.46 0.31 0.48 colour ruby_literal 1.0 0.2 0.8 colour ruby_string 0.8 0.0 0.0 colour ruby_escapedchar 0.46 0.31 0.48 colour ruby_function 0.02 0.6 0.6 colour ruby_constant 0.3 0.6 0.02 colour ruby_punctuation 0.5 0.5 0.5 colour ruby_symbol 0.3 0.6 0.02 colour ruby_variable 0.02 0.6 0.6 colour ruby_regexsep 0.77 0.63 0.0 colour ruby_regex 0.8 0.0 0.0 colour ruby_optionalsep 0.77 0.63 0.0 colour ruby_optional 0.8 0.0 0.0 # whitespace/comments syntax_pattern normal normal text '[ \t\r\n]+' syntax_pattern expr expr text '[ \t\r\n]+' syntax_pattern normal comment ruby_comment '#' syntax_pattern comment normal ruby_comment '(\r\n|\r|\n)$' syntax_pattern comment comment ruby_fixme '\b(TODO|FIXME|XXX)\b' syntax_pattern comment comment ruby_comment '.[^TFX\r\n]*' syntax_pattern normal doc ruby_comment '^=begin\b' syntax_pattern doc normal ruby_comment '^=end\b' syntax_pattern doc doc ruby_fixme '\b(TODO|FIXME|XXX)\b' syntax_pattern doc doc ruby_comment '.[^TFX]*' # "-style strings syntax_pattern normal double_string ruby_string '"' syntax_pattern double_string expr ruby_string '"' syntax_pattern double_string double_string ruby_escapedchar '\\([0-7]{1,3}|x[0-9a-fA-F]{1,2}|C-.|M-(\\C-)?.|c?.)' syntax_pattern double_string double_string ruby_escapedchar '#\{[^\}"]*\}' syntax_pattern double_string double_string ruby_string '.[^\\"#]*' # '-style strings syntax_pattern normal single_string ruby_string "'" syntax_pattern single_string expr ruby_string "'" syntax_pattern single_string single_string ruby_escapedchar "\\\\[\\\\']" syntax_pattern single_string single_string ruby_string ".[^\\\\']*" # `-style strings syntax_pattern normal backquote ruby_string '`' syntax_pattern backquote expr ruby_string '`' syntax_pattern backquote backquote ruby_escapedchar '\\([0-7]{1,3}|x[0-9a-fA-F]{1,2}|C-.|M-(\\C-)?.|c?.)' syntax_pattern backquote backquote ruby_string '.[^\\`]*' # literals syntax_pattern normal expr ruby_literal '(((0|[1-9][0-9])*\.[0-9]*|\.[0-9]+)(e[\+\-]?[0-9]+)?|(0|[1-9][0-9]*)e[\+\-]?[0-9]+|0x[0-9a-f]+|0[0-7]*|[1-9][0-9]*)' ignorecase syntax_pattern normal expr ruby_literal '\b(false|FALSE|nil|NIL|true|TRUE|__FILE__|__LINE__)\b' syntax_pattern normal expr ruby_literal '\\?(\\C-|\\M-(\\C-)?)?[^ \t\r\n]' # variables syntax_pattern normal expr ruby_variable "(@@?[a-z_][a-z_0-9]*|\\$([a-z_][a-z_0-9]*|-[a-z]|[!@&`+1~=/\\\\,;\\.<>0\\*\\$\\?:\"']))\b" ignorecase # symbol syntax_pattern normal expr ruby_symbol ":[a-z_][a-z_0-9]*\b" ignorecase # import syntax_pattern normal normal ruby_import '\b(require)\b' # keywords syntax_pattern normal normal ruby_keyword '\b(alias|and|BEGIN|begin|break|case|defined|do|else|elsif|END|end|ensure|for|if|in|module|next|not|or|redo|rescue|retry|return|then|undef|unless|until|when|while|yield)\b' syntax_pattern normal expr ruby_keyword '\b(self|super)\b' # function/class definitions syntax_pattern normal declaration ruby_keyword '\b(class|def)\b' syntax_pattern declaration declaration text '[ \t]+' syntax_pattern declaration normal ruby_function '\b[a-z_][a-z_0-9]*\b' ignorecase syntax_pattern declaration normal text '' # expressions syntax_pattern normal expression ruby_regexsep '/' syntax_pattern expression expr ruby_regexsep '/[iomxneus]*' syntax_pattern expression expression ruby_escapedchar '\\.' syntax_pattern expression expression ruby_regex '.[^\\/]*' # optional syntax_pattern normal optional ruby_optionalsep '\|' syntax_pattern optional normal ruby_optionalsep '\|' syntax_pattern optional optional ruby_optional '.[^\|]*' # punctuation syntax_pattern normal normal ruby_punctuation '[\[\{\}<>;=\(,~!&\^%\?\+\-\*\.]+' syntax_pattern normal normal ruby_punctuation '(\.|:+)' syntax_pattern normal expr ruby_punctuation '[\)\]]+' syntax_pattern expr normal ruby_punctuation '[/\|]+' # constants syntax_pattern normal expr ruby_constant '\b[A-Z_][a-zA-Z_0-9]*\b[\?!]?' # parsing optimisation syntax_pattern normal expr text '[a-z_][a-z_0-9]*[\?!]?' ignorecase syntax_pattern expr normal ruby_regex ''