]> git.xonotic.org Git - xonotic/gmqcc.git/blob - syntax/kate/qc.xml
Cleanups
[xonotic/gmqcc.git] / syntax / kate / qc.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE language SYSTEM "language.dtd">
3 <language name="QuakeC" section="Sources"
4           version="1.00" kateversion="2.4"
5           indenter="cstyle"
6           extensions="*.qc;*.QC;*.qh"
7           mimetype=""
8           priority="5"
9           author="Dale Weiler">
10   <highlighting>
11     <list name="keywords">
12       <item> break </item>
13       <item> case </item>
14       <item> continue </item>
15       <item> default </item>
16       <item> do </item>
17       <item> else </item>
18       <item> enum </item>
19       <item> for </item>
20       <item> goto </item>
21       <item> if </item>
22       <item> return </item>
23       <item> switch </item>
24       <item> typedef </item>
25       <item> while </item>
26       <item> nil </item>
27     </list>
28     <list name="types">
29       <item> const </item>
30       <item> vector </item>
31       <item> float </item>
32       <item> void </item>
33       <item> string </item>
34     </list>
35     <contexts>
36       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
37         <DetectSpaces />
38     <RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0\s*$" beginRegion="PP" firstNonSpace="true" />
39         <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
40         <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
41         <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
42         <keyword attribute="Keyword" context="#stay" String="keywords"/>
43         <keyword attribute="Data Type" context="#stay" String="types"/>
44         <DetectIdentifier />
45         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
46         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
47         <Float attribute="Float" context="#stay">
48           <AnyChar String="fF" attribute="Float" context="#stay"/>
49         </Float>
50         <HlCHex attribute="Hex" context="#stay"/>
51         <Int attribute="Decimal" context="#stay" >
52           <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
53           <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
54           <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
55           <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
56           <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
57           <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
58           <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
59           <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
60         </Int>
61         <HlCChar attribute="Char" context="#stay"/>
62         <DetectChar attribute="String" context="String" char="&quot;"/>
63         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
64         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
65         <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
66       </context>
67
68       <context attribute="String" lineEndContext="#pop" name="String">
69         <LineContinue attribute="String" context="#stay"/>
70         <HlCStringChar attribute="String Char" context="#stay"/>
71         <DetectChar attribute="String" context="#pop" char="&quot;"/>
72       </context>
73
74       <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
75       </context>
76
77       <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
78         <LineContinue attribute="Comment" context="#stay"/>
79         <IncludeRules context="##Alerts" />
80       </context>
81
82       <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
83         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
84         <IncludeRules context="##Alerts" />
85       </context>
86
87       <context attribute="Error" lineEndContext="#pop" name="AfterHash">
88         <!-- define, elif, else, endif, error, if, ifdef, ifndef, include, include_next, line, pragma, undef, warning -->
89         <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
90         <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
91         <RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
92         <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
93         <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
94       </context>
95
96       <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
97         <LineContinue attribute="Preprocessor" context="#stay"/>
98         <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
99         <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
100         <IncludeRules context="##Doxygen" />
101         <Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
102         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/" />
103       </context>
104
105       <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
106         <LineContinue attribute="Preprocessor" context="#stay"/>
107       </context>
108
109       <context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
110         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
111       </context>
112
113       <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
114         <DetectSpaces />
115         <DetectIdentifier />
116         <DetectChar attribute="String" context="String" char="&quot;"/>
117         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
118         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
119         <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
120         <RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
121         <RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
122       </context>
123
124       <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
125         <DetectSpaces />
126         <DetectIdentifier />
127         <DetectChar attribute="String" context="String" char="&quot;"/>
128         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
129         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
130         <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
131         <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
132       </context>
133     </contexts>
134     <itemDatas>
135       <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
136       <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
137       <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
138       <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
139       <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
140       <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
141       <itemData name="String"       defStyleNum="dsString"/>
142       <itemData name="String Char"  defStyleNum="dsChar"/>
143       <itemData name="Comment"      defStyleNum="dsComment"/>
144       <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
145       <itemData name="Preprocessor" defStyleNum="dsOthers" spellChecking="false"/>
146     </itemDatas>
147   </highlighting>
148   <general>
149     <comments>
150       <comment name="singleLine" start="//" />
151       <comment name="multiLine" start="/*" end="*/" />
152     </comments>
153     <keywords casesensitive="1" additionalDeliminator="'&quot;" />
154   </general>
155 </language>