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/d.xml

349 lines
16 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
========================================================================
D.XML supports syntax highlighting for the D programming language under Kate.
Copyright (C) 2004 - Simon J Mackenzie <project.katedxml@smackoz.fastmail.fm>
This code is released under the LGPL as part of kdelibs/kate.
========================================================================
D is a next generation language written by Walter Bright of Digital Mars fame.
Digital Mars C, C++ and D Compilers can be obtained from http://www.digitalmars.com/
========================================================================
Updates for D.XML can be obtained from http://kate.kde.org/hl/
UPDATE HISTORY:-
2004.08.15 - D.XML 1.36 - D 0.98 - Current release of D.
- package, writef(strictly speaking writyef isn't a keyword) - keywords are now supported.
2004.??.?? - D.XML 1.35 - D 0.?? - Not sure how this release got posted!
2004.05.23 - D.XML 1.34 - D 0.90 - updated.
2004.05.19 - D.XML 1.33 - D 0.89 - mixin - keyword is now supported.
2004.05.19 - D.XML 1.32 - D 0.77 - pragma, typeof - keywords are now supported.
2004.05.19 - D.XML 1.31 - D 0.76 - is - keyword is now supported.
2003.09.06 - D.XML 1.30 - D 0.71 - foreach - keyword is now supported.
2003.08.18 - D.XML 1.20 - D 0.69 - floats are now supported.
- embedded underscores in integer and float literals are now supported.
2003.08.11 - D.XML 1.10 - updated.
2003.07.18 - D.XML 1.00 - First released.
TODO:-
- Kate string translation cannot handle \" as a literal within a D string. The " will be interpreted as an end of string marker
when it should be ignored because of the preceding back-slash.
========================================================================
-->
<language name="D" section="Sources" extensions="*.d;*.D" mimetype="text/x-dsrc" version="1.36" kateversion="2.2" casesensitive="true" author="Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
<highlighting>
<list name="keywords">
<item> abstract </item>
<item> alias </item>
<item> align </item>
<item> asm </item>
<item> auto </item>
<item> body </item>
<item> break </item>
<item> case </item>
<item> cast </item>
<item> catch </item>
<item> class </item>
<item> const </item>
<item> continue </item>
<item> default </item>
<item> delegate </item>
<item> delete </item>
<item> deprecated </item>
<item> do </item>
<item> else </item>
<item> enum </item>
<item> export </item>
<item> false </item>
<item> final </item>
<item> finally </item>
<item> for </item>
<item> foreach </item>
<item> function </item>
<item> goto </item>
<item> if </item>
<item> in </item>
<item> inout </item>
<item> interface </item>
<item> invariant </item>
<item> is </item>
<item> mixin </item>
<item> new </item>
<item> null </item>
<item> out </item>
<item> override </item>
<item> package </item>
<item> private </item>
<item> protected </item>
<item> public </item>
<item> return </item>
<item> static </item>
<item> struct </item>
<item> super </item>
<item> switch </item>
<item> synchronized </item>
<item> template </item>
<item> this </item>
<item> throw </item>
<item> true </item>
<item> try </item>
<item> typedef </item>
<item> typeof </item>
<item> union </item>
<item> volatile </item>
<item> while </item>
<item> with </item>
</list>
<list name="modules">
<item> module </item>
<item> import </item>
</list>
<list name="types">
<item> void </item>
<item> bit </item>
<item> byte </item>
<item> ubyte </item>
<item> short </item>
<item> ushort </item>
<item> int </item>
<item> uint </item>
<item> long </item>
<item> ulong </item>
<item> cent </item>
<item> ucent </item>
<item> float </item>
<item> double </item>
<item> real </item>
<item> ireal </item>
<item> ifloat </item>
<item> idouble </item>
<item> creal </item>
<item> cfloat </item>
<item> cdouble </item>
<item> char </item>
<item> wchar </item>
<item> dchar </item>
</list>
<list name="phobos">
<item> printf </item>
<item> writef </item>
</list>
<list name="linkage">
<item> extern </item>
</list>
<list name="ltypes">
<item> C </item>
<item> D </item>
<item> Windows </item>
<item> Pascal </item>
</list>
<list name="debug">
<item> debug </item>
</list>
<list name="assert">
<item> assert </item>
</list>
<list name="pragma">
<item> pragma </item>
</list>
<list name="ptypes">
<item> msg </item>
</list>
<list name="version">
<item> version </item>
</list>
<list name="vtypes">
<item> DigitalMars </item>
<item> X86 </item>
<item> AMD64 </item>
<item> Windows </item>
<item> Win32 </item>
<item> Win64 </item>
<item> linux </item>
<item> LittleEndian </item>
<item> BigEndian </item>
<item> D_InlineAsm </item>
<item> none </item>
</list>
<list name="unittest">
<item> unittest </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="normal">
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<keyword attribute="Module" context="ModuleName" String="modules"/>
<keyword attribute="Type" context="#stay" String="types"/>
<keyword attribute="Phobos Library" context="#stay" String="phobos"/>
<keyword attribute="Linkage" context="Linkage" String="linkage"/>
<keyword attribute="Debug" context="#stay" String="debug"/>
<keyword attribute="Assert" context="#stay" String="assert"/>
<keyword attribute="Pragma" context="Pragmas" String="pragma"/>
<keyword attribute="Version" context="Version" String="version"/>
<keyword attribute="Unit Test" context="#stay" String="unittest"/>
<Detect2Chars attribute="Wysiwyg" context="Wysiwyg" char="r" char1="&quot;"/>
<Detect2Chars attribute="Hex" context="Hex" char="x" char1="&quot;"/>
<RegExpr attribute="Normal Text" context="#pop" String="[_a-z][\w]*" insensitive="true"/>
<RegExpr attribute="Pragma" context="#pop" String="\#[ ]*line"/>
<RegExpr attribute="Escape String" context="#pop" String="\\[n|t|&quot;]"/>
<RegExpr attribute="Escape String" context="#pop" String="(\\r\\n)"/>
<RegExpr attribute="Escape String" context="#pop" String="\\0[0-7]+"/>
<RegExpr attribute="Escape String" context="#pop" String="\\u[\d]+" insensitive="true"/>
<RegExpr attribute="Escape String" context="#pop" String="\\x[\da-fA-F]+"/>
<RegExpr attribute="Binary" context="#pop" String="0b[01]+[_01]*[ ]*\.\.[ ]*0b[01]+[_01]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Octal" context="#pop" String="0[0-7]+[_0-7]*[ ]*\.\.[ ]*0[0-7]+[_0-7]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Hex" context="#pop" String="0x[\da-f]+[_\da-f]*[ ]*\.\.[ ]*0x[\da-f]+[_\da-f]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Integer" context="#pop" String="[\d]+[_\d]*(UL|LU|U|L)?[ ]*\.\.[ ]*[\d]+[_\d]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Float" context="#pop" String="[\d]*[_\d]*\.[_\d]*(e-|e|e\+)?[\d]+[_\d]*(F|L|I|FI|LI|)?" insensitive="true"/>
<RegExpr attribute="Float" context="#pop" String="[\d]*[_\d]*\.?[_\d]*(e-|e|e\+)[\d]+[_\d]*(F|L|I|FI|LI|)?" insensitive="true"/>
<RegExpr attribute="Float" context="#pop" String="0x[\da-f]+[_\da-f]*\.[_\da-f]*(p-|p|p\+)?[\da-f]+[_\da-f]*(F|L|I|FI|LI)?" insensitive="true"/>
<RegExpr attribute="Float" context="#pop" String="0x[\da-f]+[_\da-f]*\.?[_\da-f]*(p-|p|p\+)[\da-f]+[_\da-f]*(F|L|I|FI|LI)?" insensitive="true"/>
<RegExpr attribute="Binary" context="#pop" String="0B[01]+[_01]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Octal" context="#pop" String="0[0-7]+[_0-7]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Hex" context="#pop" String="0x[\da-f]+[_\da-f]*(UL|LU|U|L)?" insensitive="true"/>
<RegExpr attribute="Integer" context="#pop" String="[\d]+[_\d]*(UL|LU|U|L)?" insensitive="true"/>
<DetectChar attribute="Char" context="Char" char="'"/>
<DetectChar attribute="String" context="String" char="&quot;"/>
<DetectChar attribute="Wysiwyg" context="Wysiwyg" char="`"/>
<Detect2Chars attribute="Comment" context="CommentLine" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="CommentBlockA" char="/" char1="*" beginRegion="CommentA"/>
<Detect2Chars attribute="Comment" context="CommentBlockB" char="/" char1="+" beginRegion="CommentB"/>
<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="BraceA" />
<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="BraceA" />
</context>
<context attribute="Module Name" lineEndContext="#stay" name="ModuleName">
<DetectChar attribute="Normal Text" context="#stay" char=","/>
<DetectChar attribute="Normal Text" context="#pop" char=";"/>
<Detect2Chars attribute="Comment" context="CommentLine" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="CommentBlockA" char="/" char1="*" beginRegion="CommentA"/>
<Detect2Chars attribute="Comment" context="CommentBlockB" char="/" char1="+" beginRegion="CommentB"/>
</context>
<context attribute="Linkage" lineEndContext="#pop" name="Linkage">
<keyword attribute="Type" context="#pop" String="types"/>
<DetectChar attribute="Normal Text" context="#stay" char="("/>
<keyword attribute="Linkage Type" context="#stay" String="ltypes"/>
<DetectChar attribute="Normal Text" context="#pop" char=")"/>
<DetectChar attribute="Normal Text" context="#pop" char=";"/>
</context>
<context attribute="Version" lineEndContext="#pop" name="Version">
<DetectChar attribute="Normal Text" context="#pop" char="="/>
<DetectChar attribute="Normal Text" context="#stay" char="("/>
<keyword attribute="Version Type" context="#stay" String="vtypes"/>
<RegExpr attribute="Normal Text" context="#pop" String="\w" insensitive="true"/>
<DetectChar attribute="Normal Text" context="#pop" char=")"/>
</context>
<context attribute="Pragma" lineEndContext="#pop" name="Pragmas">
<DetectChar attribute="Normal Text" context="#stay" char="("/>
<keyword attribute="Version Type" context="#stay" String="ptypes"/>
<keyword attribute="Version Type" context="#stay" String="vtypes"/>
<RegExpr attribute="Keyword" context="#pop" String="[_a-z][\w]*" insensitive="true"/>
<DetectChar attribute="Normal Text" context="#pop" char=","/>
<DetectChar attribute="Normal Text" context="#pop" char=")"/>
</context>
<context attribute="Wysiwyg" lineEndContext="#stay" name="Wysiwyg">
<DetectChar attribute="Wysiwyg" context="#pop" char="&quot;"/>
<DetectChar attribute="Wysiwyg" context="#pop" char="`"/>
</context>
<context attribute="Hex" lineEndContext="#stay" name="Hex">
<DetectChar attribute="Hex" context="#pop" char="&quot;"/>
</context>
<context attribute="Char" lineEndContext="#stay" name="Char">
<Detect2Chars attribute="Char" context="#stay" char="\" char1="'"/>
<Detect2Chars attribute="Char" context="#stay" char="\" char1="\"/>
<DetectChar attribute="Char" context="#pop" char="'"/>
</context>
<context attribute="String" lineEndContext="#stay" name="String">
<DetectChar attribute="String" context="#pop" char="&quot;"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentLine">
</context>
<context attribute="Comment" lineEndContext="#stay" name="CommentBlockA">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentA"/>
</context>
<context attribute="Comment" lineEndContext="#stay" name="CommentBlockB">
<Detect2Chars attribute="Comment" context="#pop" char="+" char1="/" endRegion="CommentB"/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword" color="#000000" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Module" defStyleNum="dsKeyword" color="#0000ff" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Module Name" defStyleNum="dsKeyword" color="#0000ff" selColor="#ffffff" bold="1" italic="1"/>
<itemData name="Type" defStyleNum="dsDataType"/>
<itemData name="Phobos Library" defStyleNum="dsKeyword" color="#000000" selColor="#ffffff" bold="1" italic="1"/>
<itemData name="Linkage" defStyleNum="dsKeyword" color="#ff0000" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Linkage Type" defStyleNum="dsDataType" color="#ff0000" selColor="#ffffff" bold="1" italic="1"/>
<itemData name="Debug" defStyleNum="dsKeyword" color="#ff00ff" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Assert" defStyleNum="dsKeyword" color="#0000ff" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Version" defStyleNum="dsKeyword" color="#ff0000" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Version Type" defStyleNum="dsDataType" color="#ff0000" selColor="#ffffff" bold="1" italic="1"/>
<itemData name="Unit Test" defStyleNum="dsKeyword" color="#ff00ff" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Pragma" defStyleNum="dsKeyword" color="#00aa00" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Integer" defStyleNum="dsDecVal"/>
<itemData name="Binary" defStyleNum="dsBaseN" color="#00dddd" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Octal" defStyleNum="dsBaseN" color="#00aaaa" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Hex" defStyleNum="dsBaseN" color="#006666" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Escape String" defStyleNum="dsString" color="#00aa00" selColor="#ff0000" bold="0" italic="0"/>
<itemData name="String" defStyleNum="dsString" color="#00aa00" selColor="#ff0000" bold="0" italic="0"/>
<itemData name="Char" defStyleNum="dsChar" color="#ff00ff" selColor="#ff00ff" bold="0" italic="0"/>
<itemData name="Wysiwyg" defStyleNum="dsChar" color="#a100a1" selColor="#ff00ff" bold="0" italic="0"/>
<itemData name="Comment" defStyleNum="dsComment"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//"/>
<comment name="multiLine" start="/+" end="+/"/>
</comments>
<keywords casesensitive="true"/>
</general>
</language>