mirror of
				https://github.com/cmur2/joe-syntax.git
				synced 2025-11-03 18:25:08 +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:
		
							
								
								
									
										11
									
								
								ftyperc
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ftyperc
									
									
									
									
									
								
							@@ -866,6 +866,15 @@
 | 
				
			|||||||
*.erb
 | 
					*.erb
 | 
				
			||||||
-syntax erb
 | 
					-syntax erb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 .html.erb
 | 
					 ERB within HTML
 | 
				
			||||||
*.html.erb
 | 
					*.html.erb
 | 
				
			||||||
-syntax htmlerb
 | 
					-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 Idle
 | 
				
			||||||
	*		rest
 | 
						*		rest
 | 
				
			||||||
	"#"		line_comment	recolor=-1
 | 
						"#"		line_comment	recolor=-1
 | 
				
			||||||
 | 
					.ifdef haml
 | 
				
			||||||
 | 
						"\n"		NULL		return
 | 
				
			||||||
 | 
					.else
 | 
				
			||||||
	"\n"		idle
 | 
						"\n"		idle
 | 
				
			||||||
 | 
					.endif
 | 
				
			||||||
	"{}"		brace		recolor=-1
 | 
						"{}"		brace		recolor=-1
 | 
				
			||||||
	"0"		first_digit	recolor=-1
 | 
						"0"		first_digit	recolor=-1
 | 
				
			||||||
	"1-9"		decimal		recolor=-1
 | 
						"1-9"		decimal		recolor=-1
 | 
				
			||||||
@@ -183,7 +187,11 @@ done
 | 
				
			|||||||
.endif
 | 
					.endif
 | 
				
			||||||
	# might be TODO label
 | 
						# might be TODO label
 | 
				
			||||||
	"BFHNTX"	line_comment	noeat call=.comment_todo()
 | 
						"BFHNTX"	line_comment	noeat call=.comment_todo()
 | 
				
			||||||
 | 
					.ifdef haml
 | 
				
			||||||
 | 
						"\n"		NULL		return
 | 
				
			||||||
 | 
					.else
 | 
				
			||||||
	"\n"		idle
 | 
						"\n"		idle
 | 
				
			||||||
 | 
					.endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:line_comment_maybe_erb_end Comment
 | 
					:line_comment_maybe_erb_end Comment
 | 
				
			||||||
	">"		NULL		recolor=-2 return
 | 
						">"		NULL		recolor=-2 return
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user