joe-syntax/ruby.jsf

424 lines
6.3 KiB
Plaintext
Raw Normal View History

# JOE syntax highlight file for Ruby
# Oh No! It's another perl!
# <<EOF1, <<EOF2 is not working. Only EOF1 is seen. It should wait for the
# EOF2.
=Idle
=Preproc blue
=Comment green
=POD green
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=Bad bold red
=Var yellow
# Detect pod
:idle Idle
* rest noeat
"=" pod_start
# Rest of line
:rest Idle
* rest
"#" line_comment_i recolor=-1
"\n" idle
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float
"\"" string recolor=-1
"'" char recolor=-1
"`" backtick recolor=-1
"/" regex recolor=-1
"<" maybe_inc
"$" not_string buffer
"%" pstring
"a-zA-Z_" ident buffer
# / / regex not allowed after terms
:after_term Idle
* rest noeat
" )]" after_term
"/%" rest
:pod_start Idle
* pod_start
"\n" pod_block
:pod_block POD
* pod_block
"=" pod_ident buffer
:pod_ident POD
* pod_block noeat strings
"=end" rest
done
"a-zA-Z0-9_" pod_ident
:maybe_inc Idle
* after_term noeat
"<" maybe_inc1
:maybe_inc1 Idle
* after_term noeat
"-" allow_space
"'\"" quoted_inc_start save_c recolor=-1
"A-Za-z_" inc buffer noeat
:allow_space Idle
* after_term noeat
"'\"" quoted_inc_start_allow save_c recolor=-1
"A-Za-z_" inc_allow buffer noeat
:quoted_inc_start Var
* quoted_inc buffer
:quoted_inc_start_allow Var
* quoted_inc_allow buffer
:quoted_inc Var
* quoted_inc
& skipline save_s
:quoted_inc_allow Var
* quoted_inc_allow
& skipline_allow save_s
:inc Var
* skipline save_s noeat
"A-Za-z0-9_" inc
:inc_allow Var
* skipline_allow save_s noeat
"A-Za-z0-9_" inc_allow
# Should be treated as a normal line here...
:skipline Idle
* skipline
"\n" next_line
:skipline_allow Idle
* skipline_allow
"\n" next_line_allow
:todelim Constant
* todelim
"\n" next_line strings
"&" founddelim
done
:todelim_allow Constant
* todelim_allow
"\n" next_line_allow strings
"&" founddelim
done
# eat \n so it's not in string.
:next_line Constant
* todelim buffer
"\n" next_line
:next_line_allow Constant
* todelim_allow buffer
" \n" next_line_allow
:founddelim Var
* idle noeat
:regex Constant
* regex
"\\" regex_quote recolor=-1
"/" after_term
:regex_quote Escape
* regex
:not_string Idle
* rest noeat
"A-Za-z_" ident
"\"'`#/" rest
:line_comment Comment
* line_comment
"\n" rest
:line_comment_i Comment
* line_comment_i
"\n" idle
:end_of_file_comment Comment
* end_of_file_comment
:first_digit Constant
* after_term noeat
"x" hex
"b" binary
"." float
"eE" epart
"0-7" octal
"89" bad_number recolor=-1
:bad_number Bad
* after_term noeat
"0-9" bad_number
:octal Constant
* after_term noeat
"0-7_" octal
"89" bad_number recolor=-1
:binary Constant
* after_term noeat
"01_" binary
"2-9" bad_number recolor=-1
:hex Constant
* after_term noeat
"0-9A-Fa-f_" hex
:decimal Constant
* after_term noeat
"0-9_" decimal
"eE" epart
"." float
:maybe_float Constant
* after_term recolor=-2 noeat
"0-9" float recolor=-2
:float Constant
* after_term noeat
"eE" epart
"0-9_" float
:epart Constant
* after_term noeat
"0-9+\-" enum
:enum Constant
* after_term noeat
"0-9_" enum
:string Constant
* string
"\"" after_term
"\\" string_escape recolor=-1
"$@" string_subst recolor=-1
:string_subst Escape
* string noeat recolor=-1
"a-zA-Z_0-9" string_subst
:string_escape Escape
* string
"x" string_hex1
"c" string_ctrl
"N" string_named
"0-7" string_octal2
"\n" string recolor=-2
:string_named Escape
* string
"{" string_named_rest
:string_named_rest Escape
* string_named_rest
"}" string
:string_ctrl Escape
* string
:string_hex1 Escape
* string noeat
"{" string_unicode
"0-9a-fA-F" string_hex2
:string_unicode Escape
* string_unicode
"}" string
:string_hex2 Escape
* string noeat
"0-9a-fA-F" string
:string_octal2 Escape
* string noeat
"0-7" string_octal3
:string_octal3 Escape
* string noeat
"0-7" string
# Only \\ and \' allowed in single quoted strings
:char Constant
* char
"\n" reset
"'" after_term
"\\" char_escape recolor=-1
:char_escape Escape
* char recolor=-2
"\\'" char
:backtick Constant
* backtick
"`" after_term
"\\" backtick_escape recolor=-1
"$@" backtick_subst recolor=-1
:backtick_subst Escape
* backtick noeat recolor=-1
"a-zA-Z_0-9" backtick_subst
:backtick_escape Escape
* backtick
"x" backtick_hex1
"c" backtick_ctrl
"N" backtick_named
"0-7" backtick_octal2
"\n" backtick recolor=-2
:backtick_named Escape
* backtick
"{" backtick_named_rest
:backtick_named_rest Escape
* backtick_named_rest
"}" backtick
:backtick_ctrl Escape
* backtick
:backtick_hex1 Escape
* backtick noeat
"{" backtick_unicode
"0-9a-fA-F" backtick_hex2
:backtick_unicode Escape
* backtick_unicode
"}" backtick
:backtick_hex2 Escape
* backtick noeat
"0-9a-fA-F" backtick
:backtick_octal2 Escape
* backtick noeat
"0-7" backtick_octal3
:backtick_octal3 Escape
* backtick noeat
"0-7" backtick
:ident Idle
* after_term noeat strings
"BEGIN" kw
"END" kw
"alias" kw
"and" kw
"begin" kw
"break" kw
"case" kw
"class" kw
"def" kw
"defined" kw
"do" kw
"else" kw
"elsif" kw
"end" kw
"ensure" kw
"false" kw
"for" kw
"if" kw
"in" kw
"module" kw
"next" kw
"nil" kw
"not" kw
"or" kw
"redo" kw
"rescue" kw
"retry" kw
"return" kw
"self" kw
"super" kw
"then" kw
"true" kw
"undef" kw
"unless" kw
"until" kw
"when" kw
"while" kw
"yield" kw
done
"a-zA-Z0-9_" ident
:kw Keyword
* rest noeat
:pstring Idle
* match noeat
" " after_term noeat
"xrqQw" match
:match Idle
* inmatch save_c recolor=-1
" " match
:inmatch Constant
* inmatch
& after_term
"\\" inmatch_quote recolor=-1
:inmatch_quote Escape
* inmatch
:subst Idle
* insubst save_c recolor=-1
"<([{`" delim_insubst save_c recolor=-1
" " subst
:insubst Constant
* insubst
& inrepl
"\\" insubst_quote recolor=-1
:insubst_quote Escape
* insubst
:inrepl Constant
* inrepl
& after_term
"\\" inrepl_quote
:inrepl_quote Escape
* inrepl
:delim_insubst Constant
* delim_insubst
& delim_repl
"\\" delim_quote
:delim_quote Escape
* delim_insubst
:delim_repl Constant
* repl save_c recolor=-1
" " delim_repl
:repl Constant
* repl
& after_term
"\\" repl_quote
:repl_quote Escape
* repl