<?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="3" 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="(_ *)?"" attribute="String" context="string" /> <RegExpr String=" *<<" 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" /> <Detect2Chars char="[" char1="/" 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=""" 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"> <Detect2Chars char=">" char1=">" attribute="String" context="#pop" endRegion="wml_lua" /> <IncludeRules context="##Lua" includeAttrib="true"/> </context> <context attribute="Macro String" name="luamacrostring" lineEndContext="#stay"> <Detect2Chars char=">" char1=">" 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="(_ *)?"" attribute="Macro String" context="macroString" /> <RegExpr String=" *<<" 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=""" 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="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>