# 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