You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kate/data/wml.xml

211 lines
11 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
Thread for discussions: http://www.wesnoth.org/forum/viewtopic.php?f=21&t=13781
Alternatively try the "normal" way: #kate@freenode, kwrite-devel@kde.org
Changelog (0.35 and later):
***************************
* 0.42
- 2011-11-15 <shadowm2006@gmail.com>:
* Added preprocessor directives: #error, #warning
* Added highlighting for the wmlxgettext annotation metadirective (po:)
* 0.41
- 2011-04-15 <shadowm2006@gmail.com>:
* Added preprocessor directives: #if(n)have, #if(n)ver
* Revalidated against language.dtd
* 0.40
- 2010-06-13 <devel@the-user.org>:
* Added lua-highlighting between << and >>.
* Added pango-highlighting between " and "
* Folding for macro-strings between paretheses
* Changed colors.
* This file is licensed under GPLv2+
* 0.37
- 2008-03-29 <shadowm2006@gmail.com>:
* WML preprocessor directive (define, if) blocks can be collapsed/expanded
* attribute_name = "string" WML constructs (note the space surrounding '=') are recognized too
(designed considering the mainline about.cfg structure case
* Changed various context names and styles
- 2008-03-21 <shadowm2006@gmail.com>:
* WML nodes and multiline preprocessing macro/include blocks can be collapsed/expanded
* WML nodes that are opened and closed in a single line are properly highlighted now
* 0.36
- 2008-03-05 <shadowm2006@gmail.com>:
* Added wmlscope to list of utility control commands
* 0.35
- 2008-02-23 <shadowm2006@gmail.com>:
* Made it possible to comment/uncomment line(s) using the default
CTRL-D / CTRL-SHIFT-D shortcuts
- 2008-01-27 <shadowm2006@gmail.com>:
* Added the *.pbl file name pattern
* Made the standard alerts (i.e. TODO, HACK, FIXME,...) be highlighted too
* Made the key comments for Wesnoth's mainline maintenance scripts be highlighted (at the moment
they are only used for wmllint and wmlindent)
- 2008-01-?? <shadowm2006@gmail.com>:
* Made #textdomain another preprocessor directive, as is handled by the game at /src/serialization/preprocessor.cpp
line 634 and around
- 2007-11-?? <shadowm2006@gmail.com>:
* Minor improvements?
- 2007-11-?? <shadowm2006@gmail.com>:
* Made the new #ifndef directive be recognized (implemented on Wesnoth 1.3.11 and later)
-->
<language name="Wesnoth Markup Language" section="Markup" extensions="*.cfg;*.pbl;*.CFG;*.PBL" version="1"
kateversion="2.3" casesensitive="true" author="Zachary Palmer (zep01@bahj.com), modif. by Ignacio Riquelme Morelle (shadowm2006@gmail.com) and Jonathan Schmidt-Dominé (devel@the-user.org)" license="GPL">
<highlighting>
<list name="alerts_wml_utils">
<item> wmllint</item>
<item> wmlindent</item>
<item> wmlscope</item>
<item> po</item>
</list>
<list name="preprocessor_directive_statements">
<item>#textdomain</item>
<item>#else</item>
<item>#undef</item>
<item>#error</item>
<item>#warning</item>
</list>
<list name="preprocessor_block_begin_statements">
<item>#define</item>
<item>#ifdef</item>
<item>#ifndef</item>
<item>#ifhave</item>
<item>#ifnhave</item>
<item>#ifver</item>
<item>#ifnver</item>
</list>
<list name="preprocessor_block_end_statements">
<item>#enddef</item>
<item>#endif</item>
</list>
<contexts>
<!-- Main contexts -->
<context attribute="Normal WML Text" name="text" lineEndContext="#stay">
<RegExpr String="(_ *)?&quot;" attribute="String" context="string" />
<RegExpr String=" *&lt;&lt;" attribute="String" context="luastring" beginRegion="wml_lua" />
<keyword String="preprocessor_directive_statements" attribute="Preprocessor" context="preprocessor" />
<keyword String="preprocessor_block_begin_statements" attribute="Preprocessor" context="preprocessor" beginRegion="wmlpp_block" />
<keyword String="preprocessor_block_end_statements" attribute="Preprocessor" context="preprocessor" endRegion="wmlpp_block" />
<DetectChar char="#" attribute="Comment" context="comment" />
<DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
<!--<DetectChar char="[" attribute="WML Node" context="section" firstNonSpace="true" />-->
<RegExpr String="\[(?!/)" attribute="WML Node" context="section" beginRegion="wml_node" />
<RegExpr String="\[/" attribute="WML Node" context="section" endRegion="wml_node" />
<RegExpr String="(\w|,| )+=" attribute="WML Attribute" context="value"
lookAhead="true" />
<IncludeRules context="variableSubstitutionRule" />
</context>
<context attribute="String" lineEndContext="#stay" name="string">
<DetectChar char="&quot;" attribute="String" context="#pop" />
<DetectChar char="{" attribute="Macro/Include" context="macro" />
<IncludeRules context="variableSubstitutionRule" />
<IncludeRules context="##Pango" includeAttrib="false"/>
</context>
<context attribute="String" name="luastring" lineEndContext="#stay">
<RegExpr String="&gt;&gt;" attribute="String" context="#pop" endRegion="wml_lua" />
<IncludeRules context="##Lua" includeAttrib="true"/>
</context>
<context attribute="Macro String" name="luamacrostring" lineEndContext="#stay">
<RegExpr String="&gt;&gt;" attribute="Macro String" context="#pop" endRegion="wml_lua" />
<IncludeRules context="##Lua" includeAttrib="true"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="comment">
<keyword attribute="Maintenance script statement" context="#stay" String="alerts_wml_utils" />
<IncludeRules context="##Alerts" />
</context>
<context attribute="Macro/Include" lineEndContext="#stay" name="macro">
<DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block"/>
<RegExpr String="(_ *)?&quot;" attribute="Macro String" context="macroString" />
<RegExpr String=" *&lt;&lt;" attribute="Macro String" context="luamacrostring" beginRegion="wml_lua" />
<DetectChar char="(" attribute="Macro String" context="macroString2" beginRegion="macro_paren_string" />
<DetectChar char="}" attribute="Macro/Include" context="#pop" endRegion="macro_block" />
<IncludeRules context="variableSubstitutionRule" />
</context>
<context attribute="Macro String" lineEndContext="#stay" name="macroString">
<DetectChar char="&quot;" attribute="Macro String" context="#pop" />
<DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
<IncludeRules context="variableSubstitutionRule" />
<IncludeRules context="##Pango" includeAttrib="false"/>
</context>
<context attribute="Macro String" lineEndContext="#stay" name="macroString2">
<DetectChar char=")" attribute="Macro String" context="#pop" endRegion="macro_paren_string" />
<DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
<IncludeRules context="text" />
</context>
<context attribute="WML Node" lineEndContext="error" name="section">
<DetectChar char="]" attribute="WML Node" context="#pop" />
</context>
<context attribute="WML Attribute" lineEndContext="#pop" name="value">
<DetectChar char="=" attribute="Normal WML Text" context="#pop" />
</context>
<context attribute="Preprocessor" lineEndContext="#pop" name="preprocessor">
</context>
<context attribute="Error" lineEndContext="#pop" name="error">
</context>
<context attribute="Variable Substitution" lineEndContext="#pop"
name="variableSubstitution">
<DetectChar char="|" attribute="Variable Substitution" context="#pop" />
<DetectChar char="$" attribute="Variable Substitution" context="variableSubstitution" />
<DetectChar char="[" attribute="Variable Subscript" context="variableSubscript" />
<RegExpr String="[^A-Za-z0-9_\.]" attribute="Variable Substitution" context="#pop"
lookAhead="true" />
</context>
<context attribute="Variable Subscript" lineEndContext="error" name="variableSubscript">
<DetectChar char="]" attribute="Variable Subscript" context="#pop" />
</context>
<!-- Include contexts -->
<context attribute="Variable Substitution" lineEndContext="#pop" name="variableSubstitutionRule">
<DetectChar char="$" attribute="Variable Substitution" context="variableSubstitution" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal WML Text" defStyleNum="dsNormal" />
<itemData name="Normal Text" defStyleNum="dsString" /> <!--For Pango-->
<itemData name="Maintenance script statement" defStyleNum="dsAlert"/>
<itemData name="String" defStyleNum="dsString" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Macro/Include" defStyleNum="dsFunction" />
<itemData name="WML Node" defStyleNum="dsKeyword" />
<itemData name="WML Attribute" defStyleNum="dsDataType" />
<itemData name="Preprocessor" defStyleNum="dsOthers" />
<itemData name="Error" defStyleNum="dsError" />
<itemData name="Macro String" defStyleNum="dsChar" />
<itemData name="Variable Substitution" defStyleNum="dsDecVal" />
<itemData name="Variable Subscript" defStyleNum="dsBaseN" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#"/>
</comments>
<keywords casesensitive="1"/>
</general>
</language>