240 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			240 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# JOE syntax highlight file for Elixir
 | 
						|
 | 
						|
# Written by Andrey Lisin (at gmail.com)
 | 
						|
 | 
						|
# TODO
 | 
						|
# - test attributes and docstrings highlighting
 | 
						|
# - maybe highlight arithmetical operations
 | 
						|
# - comprehensions highlighting
 | 
						|
 | 
						|
# Changes
 | 
						|
# - fix atom with underscore highlighting
 | 
						|
# - distinct docstrings and module attributes
 | 
						|
 | 
						|
=Idle
 | 
						|
=Ident
 | 
						|
=Comment
 | 
						|
=Keyword
 | 
						|
=Statement	+Keyword
 | 
						|
=Conditional	+Statement
 | 
						|
=Type
 | 
						|
=DefinedIdent	+Ident
 | 
						|
=DefinedType	+DefinedIdent
 | 
						|
=DefinedFunction +DefinedIdent
 | 
						|
=Operator	+Keyword
 | 
						|
=Constant
 | 
						|
=Boolean	+Constant
 | 
						|
=Number		+Constant
 | 
						|
=String		+Constant
 | 
						|
=StringEscape	+Escape
 | 
						|
=StringVariable +StringEscape
 | 
						|
=Atom		+Constant +DefinedIdent
 | 
						|
=Attribute	+Define +Preproc
 | 
						|
=Brace		+Escape
 | 
						|
=Bracket	+Brace
 | 
						|
=Underscore	+Keyword
 | 
						|
=ModAttr	+Atom		# key in %{key: value}
 | 
						|
 | 
						|
 | 
						|
:idle Idle
 | 
						|
	*		idle
 | 
						|
	"#"		line_comment	noeat
 | 
						|
	"A-Z"		type		recolor=-1
 | 
						|
	"a-z"		ident		noeat
 | 
						|
	"_"		underscore	recolor=-1
 | 
						|
	"'"		single_quoted	recolor=-1
 | 
						|
	"\""		double_quoted	recolor=-1
 | 
						|
	":"		atom		recolor=-1
 | 
						|
	"@"		modattr		recolor=-1
 | 
						|
	"[]"            brack           recolor=-1
 | 
						|
	"{}"		brace		recolor=-1
 | 
						|
	"|"		maybe_pipe
 | 
						|
	"\\"		maybe_opt
 | 
						|
	"-"		maybe_rarrow	recolor=-1
 | 
						|
	"<"		maybe_larrow	recolor=-1
 | 
						|
	"0-9"		decimal		recolor=-1
 | 
						|
	
 | 
						|
:line_comment Comment comment
 | 
						|
	*		line_comment
 | 
						|
	"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
 | 
						|
	"\n"		idle
 | 
						|
	
 | 
						|
:single_quoted String string
 | 
						|
	*		single_quoted
 | 
						|
	"'"		idle
 | 
						|
	
 | 
						|
:double_quoted String string
 | 
						|
	*		double_quoted
 | 
						|
	"#"		maybe_extrapolation
 | 
						|
	"\""		idle
 | 
						|
	
 | 
						|
:maybe_extrapolation String string
 | 
						|
	*		double_quoted   noeat
 | 
						|
	"{"		extrapolation	recolor=-2
 | 
						|
	
 | 
						|
:extrapolation StringVariable string
 | 
						|
	*		extrapolation
 | 
						|
	"}"		double_quoted
 | 
						|
	"\""		double_quoted	noeat
 | 
						|
	
 | 
						|
:atom Atom
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z0-9_"	atom
 | 
						|
	
 | 
						|
:modattr ModAttr
 | 
						|
	*		idle
 | 
						|
	"a-zA-Z0-9_"	modattr
 | 
						|
	" "		maybe_edoc
 | 
						|
	
 | 
						|
:maybe_edoc Idle
 | 
						|
	*		idle
 | 
						|
	" "		maybe_edoc
 | 
						|
	"\""		string_dq_1 	recolor=-1
 | 
						|
	
 | 
						|
:string_dq_1 String string
 | 
						|
	*		double_quoted	recolor=-1
 | 
						|
	"\""		string_dq_2
 | 
						|
	
 | 
						|
:string_dq_2 Comment comment
 | 
						|
	*		idle
 | 
						|
	"\""		docstr_dq	recolor=-3
 | 
						|
	
 | 
						|
:docstr_dq Comment comment
 | 
						|
	*		docstr_dq
 | 
						|
	"\""		docstr_dq_1
 | 
						|
	
 | 
						|
:docstr_dq_1 Comment comment
 | 
						|
	*		docstr_dq
 | 
						|
	"\""		docstr_dq_2
 | 
						|
	
 | 
						|
:docstr_dq_2 Comment comment
 | 
						|
	*		docstr_dq
 | 
						|
	"\""		idle
 | 
						|
	
 | 
						|
 | 
						|
 | 
						|
:brace Brace
 | 
						|
	*		idle		noeat
 | 
						|
	
 | 
						|
:brack Bracket
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:maybe_larrow Idle
 | 
						|
	"-"		arrow		recolor=-2
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:maybe_rarrow Idle
 | 
						|
	">"		arrow		recolor=-2
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:arrow Operator
 | 
						|
	*		idle		noeat
 | 
						|
	
 | 
						|
:maybe_pipe Idle
 | 
						|
	*		idle
 | 
						|
	">"		pipe		recolor=-2
 | 
						|
	
 | 
						|
:pipe Operator
 | 
						|
	*		idle		noeat
 | 
						|
	
 | 
						|
:maybe_opt Idle
 | 
						|
	*		idle
 | 
						|
	"\\"		opt		recolor=-2
 | 
						|
	
 | 
						|
:opt Keyword
 | 
						|
	*		idle		noeat
 | 
						|
	
 | 
						|
:decimal Number
 | 
						|
	*		idle		noeat
 | 
						|
	"0-9_"		decimal
 | 
						|
	"."		float
 | 
						|
	
 | 
						|
:float Number
 | 
						|
	*		idle		noeat
 | 
						|
	"0-9"		float
 | 
						|
	
 | 
						|
	
 | 
						|
 | 
						|
	
 | 
						|
:underscore Underscore
 | 
						|
	*		idle		noeat
 | 
						|
	"a-zA-Z0-9?_"	underscore
 | 
						|
	
 | 
						|
	
 | 
						|
:type Type
 | 
						|
	"a-zA-Z0-9_"	type
 | 
						|
	*		idle		noeat
 | 
						|
	
 | 
						|
:ident Ident
 | 
						|
	*		ident1		noeat buffer mark
 | 
						|
	
 | 
						|
:ident1 Ident
 | 
						|
	*		idle		noeat strings
 | 
						|
	"def"					start_func_def
 | 
						|
	"defp"					start_func_def
 | 
						|
	"defmodule" 				start_mod_def
 | 
						|
	"defprotocol"				start_def
 | 
						|
	"defmacro"				start_def
 | 
						|
	"defmacrop" 				start_def
 | 
						|
	"defdelegate"				start_def
 | 
						|
	"defexception" 				start_def
 | 
						|
	"defstruct" 				start_def
 | 
						|
	"defimpl"				start_def
 | 
						|
	"defcallback"				start_def
 | 
						|
	"import"				start_mod_def
 | 
						|
	"require"				start_mod_def
 | 
						|
	"test"					start_def
 | 
						|
	"use"					start_mod_def
 | 
						|
	"alias"					start_mod_def
 | 
						|
	"end"					stmt
 | 
						|
	"do"					kw
 | 
						|
	"for"					loop
 | 
						|
	"if"					cond
 | 
						|
	"else"					cond
 | 
						|
	"unless"				cond
 | 
						|
	"case"					cond
 | 
						|
	"cond"					cond
 | 
						|
	"true"					bool
 | 
						|
	"false"					bool
 | 
						|
	"fn"					kw
 | 
						|
done
 | 
						|
	"a-zA-Z_0-9"	ident1
 | 
						|
	":"		attr		noeat recolormark
 | 
						|
	
 | 
						|
:attr Attribute
 | 
						|
	*		idle
 | 
						|
	
 | 
						|
:kw Keyword
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:stmt Statement
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:cond Conditional
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:bool Boolean
 | 
						|
	*		idle		noeat
 | 
						|
 | 
						|
:start_def Statement
 | 
						|
	*		def
 | 
						|
	
 | 
						|
:start_mod_def Statement
 | 
						|
	*		moddef
 | 
						|
 | 
						|
:start_func_def Statement
 | 
						|
	*		funcdef
 | 
						|
	
 | 
						|
:def DefinedIdent
 | 
						|
	*		def
 | 
						|
	" ("		idle		noeat
 | 
						|
 | 
						|
:funcdef DefinedFunction
 | 
						|
	*		funcdef
 | 
						|
	" ("		idle		noeat
 | 
						|
	
 | 
						|
:moddef DefinedType
 | 
						|
	*		moddef
 | 
						|
	" "		idle		noeat
 | 
						|
	"\n"		idle
 |