Warning, /frameworks/syntax-highlighting/data/syntax/odin.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004   <!ENTITY symbols ":!&#37;&amp;()+,-/.*&lt;=&gt;?[]|~^;">
0005 ]>
0006 <language name="Odin" section="Sources"
0007           version="1" kateversion="5.79"
0008           indenter="cstyle"
0009           extensions="*.odin"
0010           priority="1"
0011           author="Akseli Lahtinen (akselmo@akselmo.dev)"
0012           license="MIT">
0013 
0014   <highlighting>
0015     <list name="controlflow">
0016      <item>if</item>
0017      <item>else</item>
0018      <item>when</item>
0019      <item>for</item>
0020      <item>in</item>
0021      <item>not_in</item>
0022      <item>switch</item>
0023      <item>return</item>
0024      <item>return</item>
0025      <item>do</item>
0026      <item>where</item>
0027      <item>fallthrough</item>
0028      <item>break</item>
0029      <item>continue</item>
0030      <item>or_else</item>
0031      <item>or_return</item>
0032      <item>or_break</item>
0033      <item>or_continue</item>
0034     </list>
0035 
0036     <list name="keywords">
0037       <item>const</item>
0038       <item>case</item>
0039       <item>defer</item>
0040       <item>asm</item>
0041       <item>distinct</item>
0042       <item>context</item>
0043       <item>nil</item>
0044       <item>true</item>
0045       <item>false</item>
0046       <item>---</item>
0047       <item>struct</item>
0048       <item>enum</item>
0049       <item>union</item>
0050       <item>map</item>
0051       <item>bit_set</item>
0052       <item>dynamic</item>
0053       <item>cast</item>
0054       <item>transmute</item>
0055       <item>auto_cast</item>
0056       <item>force_inline</item>
0057       <item>force_no_inline</item>
0058       <item>size_of</item>
0059       <item>align_of</item>
0060       <item>offset_of</item>
0061       <item>type_of</item>
0062       <item>type_info_of</item>
0063       <item>typeid_of</item>
0064     </list>
0065 
0066     <list name="types">
0067       <item>i8</item>
0068       <item>i16</item>
0069       <item>i32</item>
0070       <item>i64</item>
0071       <item>i128</item>
0072       <item>int</item>
0073       <item>u8</item>
0074       <item>u16</item>
0075       <item>u32</item>
0076       <item>u64</item>
0077       <item>u128</item>
0078       <item>uint</item>
0079       <item>uintptr</item>
0080       <item>f16</item>
0081       <item>f32</item>
0082       <item>f64</item>
0083       <item>f16le</item>
0084       <item>f32le</item>
0085       <item>f64le</item>
0086       <item>f16be</item>
0087       <item>f32be</item>
0088       <item>f64be</item>
0089       <item>complex32</item>
0090       <item>complex64</item>
0091       <item>complex128</item>
0092       <item>quaternion64</item>
0093       <item>quaternion128</item>
0094       <item>quaternion256</item>
0095       <item>bool</item>
0096       <item>b8</item>
0097       <item>b16</item>
0098       <item>b32</item>
0099       <item>b64</item>
0100       <item>string</item>
0101       <item>cstring</item>
0102       <item>rune</item>
0103       <item>rawptr</item>
0104       <item>any</item>
0105       <item>typeid</item>
0106       <item>byte</item>
0107       <item>u16le</item>
0108       <item>u32le</item>
0109       <item>u64le</item>
0110       <item>u128le</item>
0111       <item>i16le</item>
0112       <item>i32le</item>
0113       <item>i64le</item>
0114       <item>i128le</item>
0115       <item>i16be</item>
0116       <item>i32be</item>
0117       <item>i64be</item>
0118       <item>i128be</item>
0119       <item>u16be</item>
0120       <item>u32be</item>
0121       <item>u64be</item>
0122       <item>u128be</item>
0123     </list>
0124 
0125     <list name="function">
0126       <item>proc</item>
0127     </list>
0128 
0129     <list name="import">
0130       <item>import</item>
0131       <item>package</item>
0132       <item>foreign</item>
0133     </list>
0134 
0135     <contexts>
0136       <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
0137         <Detect2Chars attribute="Comment" char="/" char1="/" context="SingleLineComment"/>
0138         <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" lookAhead="true" beginRegion="Comment1" />
0139         <Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
0140         <AnyChar attribute="String" context="String" String="&quot;&apos;"/>
0141         <keyword attribute="Control Flow" context="#stay" String="controlflow" />
0142         <keyword attribute="Keyword" context="#stay" String="keywords" />
0143         <keyword attribute="Data Type" context="#stay" String="types" />
0144         <RegExpr attribute="Attribute" context="#stay" String="@\w+"/>
0145         <RegExpr attribute="Function" firstNonSpace="true" context="Function" String="\w{1,}\s{0,}::\s{0,}(?=proc)" lookAhead="true"/>
0146         <RegExpr attribute="Variable" context="#stay" firstNonSpace="true" String="\s{0,}\w{1,},{0,1}\s{0,}\w{0,}\s{0,}(?=:\=|:)(?!::)"/>
0147         <RegExpr attribute="Float" context="#stay" String="\b(\d(\d|_)*(.\d(\d|_)*)?)((e|E)(\+|-)?\d+)?[ijk]?\b" />
0148         <RegExpr attribute="Decimal" context="#stay" String="\b((0b(0|1|_)+)|(0o(\d|_)+)|(0d(\d|_)+)|(0[xXh](\h|_)+))[ijk]?\b" />
0149         <AnyChar attribute="Operator" context="#stay" String="&symbols;" />
0150         <DetectChar attribute="Operator" context="#stay" char="{" beginRegion="Brace1" />
0151         <DetectChar attribute="Operator" context="#stay" char="}" endRegion="Brace1" />
0152         <keyword attribute="Use" context="#stay" String="import"/>
0153 
0154       </context>
0155 
0156       <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop">
0157         <IncludeRules context="##Comments" />
0158       </context>
0159 
0160       <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
0161         <IncludeRules context="##Comments" />
0162         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment1"/>
0163       </context>
0164 
0165 
0166       <context name="String" attribute="String" lineEndContext="#stay">
0167           <AnyChar attribute="String" context="#pop" String="&quot;&apos;"/>
0168       </context>
0169 
0170       <context name="Function" attribute="Function" lineEndContext="#pop">
0171         <Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
0172         <StringDetect attribute="Keyword" context="#stay" String="proc" />
0173         <AnyChar attribute="Function" context="#pop" lookAhead="true" String="\("/>
0174       </context>
0175 
0176     </contexts>
0177     <itemDatas>
0178       <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
0179       <itemData name="Variable" defStyleNum="dsVariable"/>
0180       <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
0181       <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
0182       <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
0183       <itemData name="Attribute"       defStyleNum="dsAttribute"/>
0184       <itemData name="Function"       defStyleNum="dsFunction"/>
0185       <itemData name="Operator"       defStyleNum="dsOperator"/>
0186       <itemData name="String"       defStyleNum="dsString"/>
0187       <itemData name="Comment"      defStyleNum="dsComment"/>
0188       <itemData name="Decimal" defStyleNum="dsDecVal"/>
0189       <itemData name="Float" defStyleNum="dsFloat"/>
0190       <itemData name="Use" defStyleNum="dsImport"/>
0191     </itemDatas>
0192   </highlighting>
0193   <general>
0194     <comments>
0195       <comment name="singleLine" start="//" position="afterwhitespace" />
0196       <comment name="multiLine" start="/*" end="*/" region="Comment"/>
0197     </comments>
0198   </general>
0199 </language>