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
|