Browse Source

New highlighter for Ruby's ERB and HTML embedded ERB

Ruby code inside ERB tags (whether in plain or HTML environment) is highlighted
via the ruby.jsf colorer.
pull/3/head
cn 10 years ago
parent
commit
09bdf55037
5 changed files with 74 additions and 1 deletions
  1. +31
    -0
      erb.jsf
  2. +8
    -0
      ftyperc
  3. +7
    -0
      html.jsf
  4. +11
    -0
      htmlerb.jsf
  5. +17
    -1
      ruby.jsf

+ 31
- 0
erb.jsf View File

@ -0,0 +1,31 @@
# JOE syntax highlight file for plain ERB
=Idle
=Keyword bold
=Bad bold red
=Brace magenta
=ERB yellow
:content Idle
* content
"<" maybe_erb_start
:maybe_erb_start Idle
* content noeat
"%" maybe_erb_eq recolor=-2
:maybe_erb_eq ERB
* rtn_ruby noeat call=ruby.ruby(erb)
"=" rtn_ruby call=ruby.ruby(erb)
:rtn_ruby ERB
* content noeat
:erb ERB
* erb
"%" maybe_erb_end
:maybe_erb_end ERB
* erb
">" content

+ 8
- 0
ftyperc View File

@ -860,3 +860,11 @@
-syntax whitespace
--force
--spaces
plain ERB
*.erb
-syntax erb
.html.erb
*.html.erb
-syntax htmlerb

+ 7
- 0
html.jsf View File

@ -81,11 +81,18 @@
.else
"?" xml_pi recolor=-2
.endif
.ifdef erb
"%" maybe_erb_eq
.endif
# this state allows php and perl to recolor the ?> %> or &> properly.
:rtn_php TagEdge
* idle noeat
:maybe_erb_eq TagEdge
* rtn_php noeat call=ruby.ruby(erb)
"=" rtn_php call=ruby.ruby(erb)
:tag_name_first Mystery
* tag_idle noeat
"-A-Za-z0-9._:" tag_name recolor=-1


+ 11
- 0
htmlerb.jsf View File

@ -0,0 +1,11 @@
# JOE syntax highlight file for HTML embedded ERB
=Idle
=Keyword bold
=Bad bold red
=Brace magenta
=ERB yellow
:begin Idle
* NULL noeat call=html.html(erb)

+ 17
- 1
ruby.jsf View File

@ -27,11 +27,13 @@
# Detect pod
:idle Idle
* rest noeat
* NULL noeat call=.ruby()
"=" pod_start
# Rest of line
.subr ruby
:rest Idle
* rest
"#" line_comment recolor=-1
@ -59,7 +61,16 @@
:after_term Idle
* rest noeat
" \t)" after_term
.ifdef erb
"/" rest
"%" after_term_erb_end
.else
"/%" rest
.endif
:after_term_erb_end Idle
* rest noeat
">" NULL recolor=-2 return
:pod_start Idle
* pod_start
@ -430,6 +441,9 @@ done
* match noeat
" \t" after_term noeat
"xrqQw" match
.ifdef erb
">" NULL recolor=-2 return
.endif
:match Idle
* inmatch save_c recolor=-1
@ -539,6 +553,8 @@ done
* rest noeat
"a-zA-Z0-9_" global_var
.end
.subr comment_todo
# initial state
:comment_todo_init Comment


Loading…
Cancel
Save