File: //usr/share/joe/syntax/haml.jsf
# JOE syntax highlight file for Haml
# by Christian Nicolai (http://mycrobase.de)
=Idle
=Comment
=Constant
=Escape
=Bad
=Brace
=TagName	+Keyword
=TagEnd		+Keyword
=Id		+DefinedIdent
=Class		+Type
=Doctype	+Preproc
=Filter		+Operator +Keyword
: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 TagName
	*		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 TagEnd
	*		idle		noeat
:html_comment 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