Warning, /frameworks/syntax-highlighting/data/syntax/wml.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language>
0003 <!--
0004 Thread for discussions: http://www.wesnoth.org/forum/viewtopic.php?f=21&t=13781
0005 Alternatively try the "normal" way: #kate @ irc.libera.chat, kwrite-devel@kde.org
0006 Changelog (0.35 and later):
0007 ***************************
0008 * 0.42.1
0009 - 2019-01-01 <nibgonz@gmail.com>
0010 * Fix infinite loop between the "section" & "error" contexts.
0011 * Only highlight tags with valid name format.
0012 * Don't highlight array indices as tags.
0013 * Use new default styles & fix embedded Lua code.
0014 * 0.42
0015 - 2011-11-15 <shadowm2006@gmail.com>:
0016 * Added preprocessor directives: #error, #warning
0017 * Added highlighting for the wmlxgettext annotation metadirective (po:)
0018 * 0.41
0019 - 2011-04-15 <shadowm2006@gmail.com>:
0020 * Added preprocessor directives: #if(n)have, #if(n)ver
0021 * Revalidated against language.dtd
0022
0023 * 0.40
0024 - 2010-06-13 <devel@the-user.org>:
0025 * Added lua-highlighting between << and >>.
0026 * Added pango-highlighting between " and "
0027 * Folding for macro-strings between paretheses
0028 * Changed colors.
0029 * This file is licensed under GPLv2+
0030
0031 * 0.37
0032 - 2008-03-29 <shadowm2006@gmail.com>:
0033 * WML preprocessor directive (define, if) blocks can be collapsed/expanded
0034 * attribute_name = "string" WML constructs (note the space surrounding '=') are recognized too
0035 (designed considering the mainline about.cfg structure case
0036 * Changed various context names and styles
0037
0038 - 2008-03-21 <shadowm2006@gmail.com>:
0039 * WML nodes and multiline preprocessing macro/include blocks can be collapsed/expanded
0040 * WML nodes that are opened and closed in a single line are properly highlighted now
0041 * 0.36
0042 - 2008-03-05 <shadowm2006@gmail.com>:
0043 * Added wmlscope to list of utility control commands
0044
0045 * 0.35
0046 - 2008-02-23 <shadowm2006@gmail.com>:
0047 * Made it possible to comment/uncomment line(s) using the default
0048 CTRL-D / CTRL-SHIFT-D shortcuts
0049 - 2008-01-27 <shadowm2006@gmail.com>:
0050 * Added the *.pbl file name pattern
0051 * Made the standard alerts (i.e. TODO, HACK, FIXME,...) be highlighted too
0052 * Made the key comments for Wesnoth's mainline maintenance scripts be highlighted (at the moment
0053 they are only used for wmllint and wmlindent)
0054 - 2008-01-?? <shadowm2006@gmail.com>:
0055 * Made #textdomain another preprocessor directive, as is handled by the game at /src/serialization/preprocessor.cpp
0056 line 634 and around
0057 - 2007-11-?? <shadowm2006@gmail.com>:
0058 * Minor improvements?
0059 - 2007-11-?? <shadowm2006@gmail.com>:
0060 * Made the new #ifndef directive be recognized (implemented on Wesnoth 1.3.11 and later)
0061 -->
0062
0063 <language name="Wesnoth Markup Language" section="Markup" extensions="*.cfg;*.pbl;*.CFG;*.PBL" version="8"
0064 kateversion="5.79" 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">
0065 <highlighting>
0066 <list name="alerts_wml_utils">
0067 <item>wmllint</item>
0068 <item>wmlindent</item>
0069 <item>wmlscope</item>
0070 <item>po</item>
0071 </list>
0072 <list name="preprocessor_directive_statements">
0073 <item>#textdomain</item>
0074 <item>#else</item>
0075 <item>#undef</item>
0076 <item>#error</item>
0077 <item>#warning</item>
0078 </list>
0079 <list name="preprocessor_block_begin_statements">
0080 <item>#define</item>
0081 <item>#ifdef</item>
0082 <item>#ifndef</item>
0083 <item>#ifhave</item>
0084 <item>#ifnhave</item>
0085 <item>#ifver</item>
0086 <item>#ifnver</item>
0087 </list>
0088 <list name="preprocessor_block_end_statements">
0089 <item>#enddef</item>
0090 <item>#endif</item>
0091 </list>
0092 <contexts>
0093 <!-- Main contexts -->
0094 <context attribute="Normal WML Text" name="text" lineEndContext="#stay">
0095 <RegExpr String="(_ *)?"" attribute="String" context="string" />
0096
0097 <RegExpr String=" *<<" attribute="String" context="luastring" beginRegion="wml_lua" />
0098
0099 <keyword String="preprocessor_directive_statements" attribute="Preprocessor" context="preprocessor" />
0100 <keyword String="preprocessor_block_begin_statements" attribute="Preprocessor" context="preprocessor" beginRegion="wmlpp_block" />
0101 <keyword String="preprocessor_block_end_statements" attribute="Preprocessor" context="preprocessor" endRegion="wmlpp_block" />
0102
0103 <DetectChar char="#" attribute="Comment" context="comment" />
0104
0105 <DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
0106
0107 <!-- Tags: https://wiki.wesnoth.org/SyntaxWML#Tag_and_Attribute_Structures -->
0108 <RegExpr String="\[/\s*\w*\s*\]" attribute="WML Node" context="#stay" endRegion="wml_node" />
0109 <RegExpr String="\[\+?\w*\]" attribute="WML Node" context="#stay" beginRegion="wml_node" />
0110
0111 <RegExpr String="(\w|,| )+=" attribute="WML Attribute" context="value"
0112 lookAhead="true" />
0113
0114 <IncludeRules context="variableSubstitutionRule" />
0115
0116 <!-- This avoids highlighting array indices as tags -->
0117 <RegExpr String="(\w+|\])\[(?!/)" attribute="Normal WML Text" context="#stay" />
0118 </context>
0119
0120 <context attribute="String" lineEndContext="#stay" name="string">
0121 <DetectChar char=""" attribute="String" context="#pop" />
0122 <DetectChar char="{" attribute="Macro/Include" context="macro" />
0123 <IncludeRules context="variableSubstitutionRule" />
0124 <IncludeRules context="##Pango" includeAttrib="false"/>
0125 </context>
0126
0127 <context attribute="Normal WML Text" name="luastring" lineEndContext="#stay">
0128 <Detect2Chars char=">" char1=">" attribute="String" context="#pop" endRegion="wml_lua" />
0129 <IncludeRules context="Normal##Lua" includeAttrib="true"/>
0130 </context>
0131
0132 <context attribute="Normal WML Text" name="luamacrostring" lineEndContext="#stay">
0133 <Detect2Chars char=">" char1=">" attribute="Macro String" context="#pop" endRegion="wml_lua" />
0134 <IncludeRules context="Normal##Lua" includeAttrib="true"/>
0135 </context>
0136
0137 <context attribute="Comment" lineEndContext="#pop" name="comment">
0138 <DetectSpaces />
0139 <keyword attribute="Maintenance script statement" context="#stay" String="alerts_wml_utils" />
0140 <IncludeRules context="##Comments" />
0141 </context>
0142
0143 <context attribute="Macro/Include" lineEndContext="#stay" name="macro">
0144 <DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block"/>
0145 <RegExpr String="(_ *)?"" attribute="Macro String" context="macroString" />
0146 <RegExpr String=" *<<" attribute="Macro String" context="luamacrostring" beginRegion="wml_lua" />
0147 <DetectChar char="(" attribute="Macro String" context="macroString2" beginRegion="macro_paren_string" />
0148 <DetectChar char="}" attribute="Macro/Include" context="#pop" endRegion="macro_block" />
0149 <IncludeRules context="variableSubstitutionRule" />
0150 </context>
0151
0152 <context attribute="Macro String" lineEndContext="#stay" name="macroString">
0153 <DetectChar char=""" attribute="Macro String" context="#pop" />
0154 <DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
0155 <IncludeRules context="variableSubstitutionRule" />
0156 <IncludeRules context="##Pango" includeAttrib="false"/>
0157 </context>
0158
0159 <context attribute="Macro String" lineEndContext="#stay" name="macroString2">
0160 <DetectChar char=")" attribute="Macro String" context="#pop" endRegion="macro_paren_string" />
0161 <DetectChar char="{" attribute="Macro/Include" context="macro" beginRegion="macro_block" />
0162 <IncludeRules context="text" />
0163 </context>
0164
0165 <context attribute="WML Attribute" lineEndContext="#pop" name="value">
0166 <DetectChar char="=" attribute="Normal WML Text" context="#pop" />
0167 </context>
0168
0169 <context attribute="Preprocessor" lineEndContext="#pop" name="preprocessor">
0170 </context>
0171
0172 <context attribute="Error" lineEndContext="#stay" name="error">
0173 </context>
0174
0175 <context attribute="Variable Substitution" lineEndContext="#pop"
0176 name="variableSubstitution">
0177 <DetectChar char="|" attribute="Variable Substitution" context="#pop" />
0178 <DetectChar char="$" attribute="Variable Substitution" context="variableSubstitution" />
0179 <DetectChar char="[" attribute="Variable Subscript" context="variableSubscript" />
0180 <RegExpr String="[^A-Za-z0-9_\.]" attribute="Variable Substitution" context="#pop"
0181 lookAhead="true" />
0182 </context>
0183
0184 <context attribute="Variable Subscript" lineEndContext="error" name="variableSubscript">
0185 <DetectChar char="]" attribute="Variable Subscript" context="#pop" />
0186 </context>
0187
0188 <!-- Include contexts -->
0189 <context attribute="Variable Substitution" lineEndContext="#pop" name="variableSubstitutionRule">
0190 <DetectChar char="$" attribute="Variable Substitution" context="variableSubstitution" />
0191 </context>
0192
0193 </contexts>
0194 <itemDatas>
0195 <itemData name="Normal WML Text" defStyleNum="dsNormal" />
0196 <itemData name="Maintenance script statement" defStyleNum="dsAlert"/>
0197 <itemData name="String" defStyleNum="dsString" />
0198 <itemData name="Comment" defStyleNum="dsComment" />
0199 <itemData name="Macro/Include" defStyleNum="dsFunction" />
0200 <itemData name="WML Node" defStyleNum="dsKeyword" />
0201 <itemData name="WML Attribute" defStyleNum="dsAttribute" />
0202 <itemData name="Preprocessor" defStyleNum="dsPreprocessor" />
0203 <itemData name="Error" defStyleNum="dsError" />
0204 <itemData name="Macro String" defStyleNum="dsChar" />
0205 <itemData name="Variable Substitution" defStyleNum="dsDecVal" />
0206 <itemData name="Variable Subscript" defStyleNum="dsBaseN" />
0207 </itemDatas>
0208 </highlighting>
0209 <general>
0210 <comments>
0211 <comment name="singleLine" start="#" position="afterwhitespace"/>
0212 </comments>
0213 <keywords casesensitive="1"/>
0214 </general>
0215 </language>
0216 <!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->