153 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# JOE syntax highlight file for YAML
 | 
						|
# by Christian Nicolai (http://mycrobase.de)
 | 
						|
 | 
						|
# TODO: Could use numbers vs strings for Constant, but it's a bit of work
 | 
						|
#       Array elements with colons get misidentified as keys
 | 
						|
 | 
						|
=Idle
 | 
						|
=Comment
 | 
						|
=Constant
 | 
						|
=String		+Constant
 | 
						|
=Number		+Constant
 | 
						|
=Escape
 | 
						|
=StringEscape	+Escape +String
 | 
						|
=Type
 | 
						|
=Bad
 | 
						|
=Brace
 | 
						|
 | 
						|
=Key		+Attr +Type +String
 | 
						|
=Directive	+Keyword
 | 
						|
=Reference	+Label +DefinedIdent
 | 
						|
=LocalType	+DefinedType +Type
 | 
						|
=BlockDelim	+Operator
 | 
						|
 | 
						|
=BadTab		+Bad
 | 
						|
 | 
						|
:line_start Idle
 | 
						|
	*		maybe_key	noeat
 | 
						|
	"\t"		bad_tab		recolor=-1
 | 
						|
	" "		line_start
 | 
						|
 | 
						|
:idle Constant
 | 
						|
	*		idle
 | 
						|
	"\n"		line_start
 | 
						|
	"%"		directive	recolor=-1
 | 
						|
	"#"		line_comment	recolor=-1
 | 
						|
	"'"		string_sq_1	recolor=-1
 | 
						|
	"\""		string_dq_1	recolor=-1
 | 
						|
	"{[]}"		brace		recolor=-1
 | 
						|
	"."		maybe_block_end1
 | 
						|
	"*&"		maybe_reference
 | 
						|
	"!"		maybe_typecast
 | 
						|
 | 
						|
:maybe_key Idle
 | 
						|
	*		maybe_key1	recolor=-1 mark
 | 
						|
	"\n%#'\"{[]}*&!"	idle		noeat
 | 
						|
	"-"		maybe_block1	mark
 | 
						|
 | 
						|
:maybe_key1 Constant
 | 
						|
	*		idle		noeat
 | 
						|
	":"		key
 | 
						|
	" a-zA-Z0-9_-"	maybe_key1
 | 
						|
 | 
						|
# necessary to include the :
 | 
						|
:key Key
 | 
						|
	*		key_end		noeat recolormark
 | 
						|
 | 
						|
:key_end Key
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
# mark bad tabs until the first non-whitespace
 | 
						|
:bad_tab BadTab
 | 
						|
	*		line_start	noeat
 | 
						|
 | 
						|
:line_comment Comment comment
 | 
						|
	*		line_comment
 | 
						|
	"\n"		line_start
 | 
						|
	"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
 | 
						|
 | 
						|
:brace Brace
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:directive Directive
 | 
						|
	*		directive
 | 
						|
	"\n"		line_start
 | 
						|
 | 
						|
:string_sq_1 String string
 | 
						|
	*		string_sq	noeat
 | 
						|
 | 
						|
:string_sq String string
 | 
						|
	*		string_sq
 | 
						|
	"\'"		idle
 | 
						|
	"\\"		string_sq_esc	recolor=-1
 | 
						|
 | 
						|
:string_sq_esc StringEscape string
 | 
						|
	*		string_sq
 | 
						|
	"\n"		string_sq	recolor=-2
 | 
						|
 | 
						|
:string_dq_1 String string
 | 
						|
	*		string_dq	noeat
 | 
						|
 | 
						|
:string_dq String string
 | 
						|
	*		string_dq
 | 
						|
	"\""		idle
 | 
						|
	"\\"		string_dq_esc	recolor=-1
 | 
						|
 | 
						|
:string_dq_esc StringEscape string
 | 
						|
	*		string_dq
 | 
						|
	"\n"		string_dq	recolor=-2
 | 
						|
 | 
						|
:maybe_block1 Constant
 | 
						|
	*		maybe_key1	noeat
 | 
						|
	"-"		maybe_block2
 | 
						|
 | 
						|
:maybe_block2 Constant
 | 
						|
	*		maybe_key1	noeat
 | 
						|
	"-"		block		recolor=-3
 | 
						|
 | 
						|
:block BlockDelim
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:maybe_block_end1 String string
 | 
						|
	*		idle		noeat
 | 
						|
	"."		maybe_block_end2
 | 
						|
 | 
						|
:maybe_block_end2 String string
 | 
						|
	*		idle		noeat
 | 
						|
	"."		block_end	recolor=-3
 | 
						|
 | 
						|
:block_end BlockDelim
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:maybe_reference Constant
 | 
						|
	*		idle
 | 
						|
	"a-zA-Z_"	reference	recolor=-2
 | 
						|
 | 
						|
:reference Reference
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z0-9_"	reference
 | 
						|
 | 
						|
:maybe_typecast Constant
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z_"	local_type	recolor=-1
 | 
						|
	"!"		builtin_type
 | 
						|
 | 
						|
:builtin_type Idle
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z"	builtin_type2	buffer
 | 
						|
 | 
						|
:builtin_type2 Idle
 | 
						|
	*		idle		noeat strings
 | 
						|
	"str"		type
 | 
						|
	"float"		type
 | 
						|
	"binary"	type
 | 
						|
done
 | 
						|
	"a-zA-Z_"	builtin_type2
 | 
						|
 | 
						|
:type Type
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:local_type LocalType
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z_"	local_type
 |