mirror of
https://github.com/cmur2/joe-syntax.git
synced 2024-11-08 22:56:14 +01:00
Brand new Haml highlighter
The main features of Haml can be correctly parsed according to http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html. There exist some limitations inherently comming from the limitations of state machine based highlighters (without side effects)... this parsers sucks with multiline comments, strings etc since the indent based grouping can't be evaluated.
This commit is contained in:
parent
0c2921e849
commit
2b59cf9e90
11
ftyperc
11
ftyperc
@ -866,6 +866,15 @@
|
||||
*.erb
|
||||
-syntax erb
|
||||
|
||||
.html.erb
|
||||
ERB within HTML
|
||||
*.html.erb
|
||||
-syntax htmlerb
|
||||
|
||||
Haml
|
||||
*.haml
|
||||
-syntax haml
|
||||
-istep 2
|
||||
-indentc 32
|
||||
-autoindent
|
||||
-smarthome
|
||||
-smartbacks
|
||||
|
115
haml.jsf
Normal file
115
haml.jsf
Normal file
@ -0,0 +1,115 @@
|
||||
# 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
|
||||
|
||||
:idle Constant
|
||||
* idle
|
||||
"\n" line_start
|
||||
"=~-" ruby_call noeat
|
||||
"&!" maybe_esc_ruby_call
|
||||
"#" 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
|
||||
"=" 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
|
||||
"{" subst recolor=-2
|
||||
|
||||
:subst Escape
|
||||
* subst
|
||||
"}" idle
|
||||
|
||||
:maybe_subst_escape Constant
|
||||
* idle
|
||||
|
||||
:filter Filter
|
||||
* idle
|
||||
"a-zA-Z0-9_" filter
|
8
ruby.jsf
8
ruby.jsf
@ -40,7 +40,11 @@
|
||||
:rest Idle
|
||||
* rest
|
||||
"#" line_comment recolor=-1
|
||||
.ifdef haml
|
||||
"\n" NULL return
|
||||
.else
|
||||
"\n" idle
|
||||
.endif
|
||||
"{}" brace recolor=-1
|
||||
"0" first_digit recolor=-1
|
||||
"1-9" decimal recolor=-1
|
||||
@ -183,7 +187,11 @@ done
|
||||
.endif
|
||||
# might be TODO label
|
||||
"BFHNTX" line_comment noeat call=.comment_todo()
|
||||
.ifdef haml
|
||||
"\n" NULL return
|
||||
.else
|
||||
"\n" idle
|
||||
.endif
|
||||
|
||||
:line_comment_maybe_erb_end Comment
|
||||
">" NULL recolor=-2 return
|
||||
|
Loading…
Reference in New Issue
Block a user