1
0
mirror of https://github.com/cmur2/joe-syntax.git synced 2024-11-01 00:56:15 +01:00
joe-syntax/haml.jsf
cn bae250abd9 Haml: not every = is the start of ruby code
If a line already contains plain characters (even whitespace, say everything
whitout a special function like tags etc) then an equal sign will only be
an equals sign not the start of ruby code.
2011-10-25 18:58:15 +02:00

122 lines
1.8 KiB
Plaintext

# JOE syntax highlight file for Haml
=Idle
=Comment green
=Constant cyan
=Escape bold cyan
=Bad bold red
=Brace magenta
=Tag fg_310
=Class yellow
=Id green
=Doctype bold magenta
=Filter blue
:line_start Idle
* idle noeat
# eat indent
" " line_start
"\\" escape_first recolor=-1
"!" doctype1
"%" tag recolor=-1
# implicit <div>
".#" after_tag noeat
"/" html_comment recolor=-1
":" filter recolor=-1
:escape_first Constant
* idle_no_ruby
:idle Constant
* idle_no_ruby
"\n" line_start
"#" maybe_subst
"\\" maybe_subst_escape
"=~-" ruby_call noeat
"&!" maybe_esc_ruby_call
:idle_no_ruby Constant
* idle_no_ruby
"\n" line_start
"#" maybe_subst
"\\" maybe_subst_escape
:doctype1 Idle
* idle recolor=-2
"=" esc_ruby_call recolor=-2
"!" doctype2
:doctype2 Idle
* idle recolor=-3
"!" doctype3 recolor=-3
:doctype3 Doctype
* doctype3
"\n" line_start
:tag Tag
* idle noeat
"a-zA-Z0-9_-" tag
".#{(/" after_tag noeat
:after_tag Idle
* idle noeat
"." class recolor=-1
"#" id recolor=-1
"{" attrA
"(" attrB
"/" tag_close recolor=-1
:class Class
* after_tag noeat
"a-zA-Z0-9_-" class
:id Id
* after_tag noeat
"a-zA-Z0-9_-" id
:attrA Idle
* attrA
"}" after_tag
:attrB Idle
* attrB
")" after_tag
:tag_close Tag
* idle noeat
:html_comment Comment
* html_comment
"\n" line_start
:ruby_call Idle
* line_start call=ruby.ruby(haml)
:maybe_esc_ruby_call Constant
* idle_no_ruby
"=" esc_ruby_call recolor=-2
:esc_ruby_call Idle
* line_start call=ruby.ruby(haml)
"=" esc_ruby_call2
:esc_ruby_call2 Idle
* line_start call=ruby.ruby(haml)
:maybe_subst Constant
* idle_no_ruby
"{" subst recolor=-2
:subst Escape
* subst
"}" idle_no_ruby
:maybe_subst_escape Constant
* idle_no_ruby
:filter Filter
* idle
"a-zA-Z0-9_" filter