2011-08-02 13:58:41 +02:00
|
|
|
# JOE syntax highlight file for Ant's build scripts
|
|
|
|
|
|
|
|
# http://ant.apache.org/
|
|
|
|
|
|
|
|
# using the XML highlighter with better colors since
|
|
|
|
# ant scripts heavily rely on the tags (blue is a bad color here)
|
|
|
|
# instead of their contents
|
|
|
|
|
|
|
|
# Improved XML highlighter by: Brian Candler <B.Candler@pobox.com>
|
|
|
|
|
|
|
|
=Idle
|
|
|
|
=Bad red bold
|
|
|
|
=Tag bold
|
|
|
|
=Attr
|
|
|
|
=Constant cyan
|
|
|
|
=Escape bold cyan
|
|
|
|
=EntityRef magenta
|
|
|
|
=Decl cyan
|
|
|
|
=CommentStart green
|
|
|
|
=CommentBody green
|
|
|
|
=CommentEnd green
|
2011-08-02 15:00:12 +02:00
|
|
|
=PIStart yellow bold
|
|
|
|
=PIBody yellow
|
|
|
|
=PIEnd yellow bold
|
2011-08-02 13:58:41 +02:00
|
|
|
=CdataStart blue bold
|
|
|
|
=CdataBody bold
|
|
|
|
=CdataEnd blue bold
|
|
|
|
|
2011-08-02 15:00:12 +02:00
|
|
|
=Keytag bold magenta #fg_310 # brown
|
|
|
|
|
|
|
|
|
2011-08-02 13:58:41 +02:00
|
|
|
# http://www.w3.org/TR/2004/REC-xml-20040204/
|
|
|
|
#
|
|
|
|
# NOTE: For UNICODE compatibility, the ranges
|
|
|
|
# "A-Za-z_:" -- first character of Name
|
|
|
|
# "A-Za-z0-9._:-" -- subsequent characters of Name
|
|
|
|
# ought to be replaced with some appropriate Unicode character classes
|
|
|
|
|
|
|
|
:content Idle
|
|
|
|
* content
|
|
|
|
"<" tag recolor=-1
|
|
|
|
"&" entityref recolor=-1
|
|
|
|
|
|
|
|
# > is allowed
|
|
|
|
# ">" error noeat recolor=-1
|
|
|
|
|
|
|
|
|
|
|
|
# In several contexts a space is an error, and since a coloured space is
|
|
|
|
# not visible, we colour the next non-space character as well.
|
|
|
|
|
|
|
|
:error Bad
|
|
|
|
* error_visible noeat recolor=-1
|
|
|
|
" \t\r\n" error
|
|
|
|
|
|
|
|
:error_visible Bad
|
|
|
|
* content
|
|
|
|
|
|
|
|
# Matched: &
|
|
|
|
|
|
|
|
:entityref EntityRef
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z0-9._:-" entityref
|
|
|
|
"#" entityref
|
|
|
|
";" content
|
|
|
|
|
|
|
|
# Matched: <
|
|
|
|
|
|
|
|
:tag Tag
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"/" end_tag
|
2011-08-02 15:00:12 +02:00
|
|
|
"A-Za-z_:" start_or_empty_tag buffer
|
2011-08-02 13:58:41 +02:00
|
|
|
"?" pi_start recolor=-2
|
|
|
|
"!" decl recolor=-2 buffer
|
|
|
|
|
|
|
|
# Matched: </
|
|
|
|
|
|
|
|
:end_tag Tag
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z_:" end_tag2
|
|
|
|
|
|
|
|
:end_tag2 Tag
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z0-9._:-" end_tag2
|
|
|
|
" \t\r\n" end_tag2_sp recolor=-1
|
|
|
|
">" content
|
|
|
|
|
|
|
|
:end_tag2_sp Idle
|
|
|
|
* end_tag3 noeat
|
|
|
|
|
|
|
|
:end_tag3 Tag
|
|
|
|
* error noeat recolor=-1
|
|
|
|
" \t\r\n" end_tag3_sp recolor=-1
|
|
|
|
">" content
|
|
|
|
|
|
|
|
:end_tag3_sp Idle
|
|
|
|
* end_tag_3 noeat
|
|
|
|
|
|
|
|
# Matched: <tag
|
|
|
|
|
2011-08-02 15:00:12 +02:00
|
|
|
# compare tag name of start/empty tags with a list
|
|
|
|
# of Ant specific keywords
|
2011-08-02 13:58:41 +02:00
|
|
|
:start_or_empty_tag Tag
|
2011-08-02 15:00:12 +02:00
|
|
|
* decide_tag_type noeat strings
|
|
|
|
"target" kw
|
|
|
|
done
|
2011-08-02 13:58:41 +02:00
|
|
|
"A-Za-z0-9._:-" start_or_empty_tag
|
2011-08-02 15:00:12 +02:00
|
|
|
|
|
|
|
:kw Keytag
|
|
|
|
* decide_tag_type noeat
|
|
|
|
|
|
|
|
:decide_tag_type Tag
|
|
|
|
* error noeat recolor=-1
|
2011-08-02 13:58:41 +02:00
|
|
|
"/" empty_tag
|
2011-08-02 15:00:12 +02:00
|
|
|
" \t\r\n" start_or_empty_tag_sp
|
2011-08-02 13:58:41 +02:00
|
|
|
">" content
|
|
|
|
|
|
|
|
:start_or_empty_tag_sp Idle
|
|
|
|
* tag_space noeat
|
|
|
|
|
|
|
|
# Matched: <tag/
|
|
|
|
|
|
|
|
:empty_tag Tag
|
|
|
|
* error noeat recolor=-1
|
|
|
|
">" content
|
|
|
|
|
|
|
|
# Matched: <tag SPACE
|
|
|
|
|
|
|
|
:tag_space Attr
|
|
|
|
* error noeat recolor=-1
|
|
|
|
" \t\r\n" tag_space_sp recolor=-1
|
|
|
|
"A-Za-z_:" attr
|
|
|
|
"/" empty_tag recolor=-1
|
|
|
|
">" close_tag recolor=-1
|
|
|
|
|
|
|
|
:tag_space_sp Idle
|
|
|
|
* tag_space noeat
|
|
|
|
|
|
|
|
# Matched: <tag attr
|
|
|
|
|
|
|
|
:attr Attr
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z0-9._:-" attr
|
|
|
|
" \t\r\n" attr_sp recolor=-1
|
|
|
|
"=" string
|
|
|
|
|
|
|
|
:attr_sp Idle
|
|
|
|
* attr_before noeat
|
|
|
|
|
|
|
|
:attr_before Attr
|
|
|
|
* error noeat recolor=-1
|
|
|
|
" \t\r\n" attr_sp recolor=-1
|
|
|
|
"=" string
|
|
|
|
|
|
|
|
# Matched: <tag attr=
|
|
|
|
|
|
|
|
:string Attr
|
|
|
|
* error noeat recolor=-1
|
|
|
|
" \t\r\n" string_sp recolor=-1
|
|
|
|
"\"" string_dq recolor=-1
|
|
|
|
"'" string_sq recolor=-1
|
|
|
|
|
|
|
|
:string_sp Idle
|
|
|
|
* string noeat
|
|
|
|
|
|
|
|
# Matched: <tag attr="
|
|
|
|
|
|
|
|
:string_dq Constant
|
|
|
|
* string_dq
|
|
|
|
"<" error noeat recolor=-1
|
|
|
|
"&" char_dq recolor=-1
|
|
|
|
"\"" endstring
|
2011-08-02 15:00:12 +02:00
|
|
|
"$" string_dq call=.antvar()
|
2011-08-02 13:58:41 +02:00
|
|
|
|
|
|
|
# ">" error noeat recolor=-1
|
|
|
|
|
|
|
|
|
|
|
|
:string_sq Constant
|
|
|
|
* string_sq
|
|
|
|
"<" error noeat recolor=-1
|
|
|
|
"&" char_sq recolor=-1
|
|
|
|
"'" endstring
|
2011-08-02 15:00:12 +02:00
|
|
|
"$" string_sq call=.antvar()
|
2011-08-02 13:58:41 +02:00
|
|
|
|
|
|
|
# ">" error noeat recolor=-1
|
|
|
|
|
|
|
|
|
|
|
|
:char_dq EntityRef
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z0-9._:-" char_dq
|
|
|
|
"#" char_dq
|
|
|
|
";" string_dq
|
|
|
|
|
|
|
|
:char_sq EntityRef
|
|
|
|
* error noeat recolor=-1
|
|
|
|
"A-Za-z0-9._:-" char_sq
|
|
|
|
"#" char_sq
|
|
|
|
";" string_sq
|
|
|
|
|
2011-08-02 15:00:12 +02:00
|
|
|
.subr antvar
|
|
|
|
# initial state
|
|
|
|
:maybe_antvar Constant
|
|
|
|
* NULL return
|
|
|
|
"{" antvar recolor=-2
|
2011-08-02 13:58:41 +02:00
|
|
|
|
2011-08-02 15:00:12 +02:00
|
|
|
:antvar Escape
|
|
|
|
* antvar
|
|
|
|
"}" NULL return
|
|
|
|
.end
|
2011-08-02 13:58:41 +02:00
|
|
|
|
|
|
|
# Matched: <tag attr="foo"
|
|
|
|
|
|
|
|
:endstring Attr
|
|
|
|
* error noeat recolor=-1
|
|
|
|
" \t\r\n" tag_space_sp
|
|
|
|
"/" empty_tag recolor=-1
|
|
|
|
">" close_tag recolor=-1
|
|
|
|
|
|
|
|
# This state is just to recolor the final ">" at the end of <tag attr="val">
|
|
|
|
|
|
|
|
:close_tag Tag
|
|
|
|
* content noeat
|
|
|
|
|
|
|
|
# Matched: <?
|
|
|
|
|
|
|
|
:pi_start PIStart
|
|
|
|
* pi noeat recolor=-1
|
|
|
|
|
|
|
|
:pi PIBody
|
|
|
|
* pi
|
|
|
|
"?" pi2
|
|
|
|
|
|
|
|
:pi2 PIBody
|
|
|
|
* pi
|
|
|
|
">" pi_end recolor=-2
|
|
|
|
|
|
|
|
:pi_end PIEnd
|
|
|
|
* content noeat recolor=-1
|
|
|
|
|
|
|
|
# Matched: <!
|
|
|
|
|
|
|
|
:decl Decl
|
|
|
|
* decl strings
|
|
|
|
"!--" comment_start recolor=-5
|
|
|
|
"![CDATA[" cdata_start recolor=-10
|
|
|
|
done
|
|
|
|
"<" decl_nest
|
|
|
|
">" content
|
|
|
|
|
|
|
|
# We allow one level of <...> nesting within declarations
|
|
|
|
|
|
|
|
:decl_nest Decl
|
|
|
|
* decl_nest
|
|
|
|
">" decl
|
|
|
|
|
|
|
|
# Matched: <!--
|
|
|
|
|
|
|
|
:comment_start CommentStart
|
|
|
|
* comment noeat
|
|
|
|
|
|
|
|
:comment CommentBody
|
|
|
|
* comment
|
|
|
|
"-" comment2
|
|
|
|
|
|
|
|
:comment2 CommentBody
|
|
|
|
* comment
|
|
|
|
"-" comment3
|
|
|
|
|
|
|
|
:comment3 CommentBody
|
|
|
|
* comment_error noeat recolor=-3
|
|
|
|
">" comment_end recolor=-3
|
|
|
|
|
|
|
|
:comment_end CommentEnd
|
|
|
|
* content noeat recolor=-1
|
|
|
|
|
|
|
|
# For compatibility, the string "--" (double-hyphen) MUST NOT occur within
|
|
|
|
# comments. [http://www.w3.org/TR/REC-xml/ section 2.5]
|
|
|
|
|
|
|
|
:comment_error Bad
|
|
|
|
* comment
|
|
|
|
"-" comment_error
|
|
|
|
">" comment_end recolor=-3
|
|
|
|
|
|
|
|
# Matched: <![CDATA[
|
|
|
|
|
|
|
|
:cdata_start CdataStart
|
|
|
|
* cdata noeat
|
|
|
|
|
|
|
|
:cdata CdataBody
|
|
|
|
* cdata
|
|
|
|
"]" cdata2
|
|
|
|
|
|
|
|
:cdata2 CdataBody
|
|
|
|
* cdata
|
|
|
|
"]" cdata3
|
|
|
|
|
|
|
|
:cdata3 CdataBody
|
|
|
|
* cdata
|
|
|
|
">" cdata_end recolor=-3
|
|
|
|
|
|
|
|
:cdata_end CdataEnd
|
|
|
|
* content noeat recolor=-1
|