| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE language SYSTEM "language.dtd"> |
| |
| <!-- Syntax highlighting for Kate and QtCreator. To customize colors, see end of file. --> |
| |
| <language name="Cap'n Proto" version="0.5" kateversion="2.4" section="Sources" extensions="*.capnp" mimetype="text/x-capnp" license="BSD 2-clause" author="Kenton Varda ([email protected])"> |
| <highlighting> |
| <list name="keyword"> |
| <item>struct</item> |
| <item>enum</item> |
| <item>interface</item> |
| <item>union</item> |
| <item>import</item> |
| <item>using</item> |
| <item>const</item> |
| <item>annotation</item> |
| <item>extends</item> |
| <item>in</item> |
| <item>of</item> |
| <item>on</item> |
| <item>as</item> |
| <item>with</item> |
| <item>from</item> |
| <item>fixed</item> |
| </list> |
| <list name="type"> |
| <item>union</item> |
| <item>group</item> |
| <item>Void</item> |
| <item>Bool</item> |
| <item>Int8</item> |
| <item>Int16</item> |
| <item>Int32</item> |
| <item>Int64</item> |
| <item>UInt8</item> |
| <item>UInt16</item> |
| <item>UInt32</item> |
| <item>UInt64</item> |
| <item>Float32</item> |
| <item>Float64</item> |
| <item>Text</item> |
| <item>Data</item> |
| <item>AnyPointer</item> |
| <item>AnyStruct</item> |
| <item>Capability</item> |
| <item>List</item> |
| </list> |
| <contexts> |
| <context name="Normal" attribute="Normal" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <RegExpr attribute="Id" context="#stay" String="@(0x[0-9a-fA-F]+|[0-9]+)\b"/> |
| <DetectChar attribute="Value" context="Value" char="="/> |
| <DetectChar attribute="Type" context="Type" char=":"/> |
| <DetectChar attribute="Annotation" context="Annotation" char="$"/> |
| <keyword String="keyword" context="#stay" attribute="Keyword" /> |
| <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/> |
| <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/> |
| <AnyChar attribute="Symbol" context="#stay" String="!%&*+-./<=>?^|~;[]()"/> |
| </context> |
| <context name="Comment" attribute="Comment" lineEndContext="#pop"></context> |
| <context name="Value" attribute="Value" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Value" context="ParenValue" String="(["/> |
| <RegExpr attribute="Value" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Value" context="#stay" String="'([^'\\]|\\.)*'"/> |
| <AnyChar attribute="Symbol" context="#pop" String="{};:=$)," lookAhead="true"/> |
| </context> |
| <context name="ParenValue" attribute="Value" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Value" context="ParenValue" String="(["/> |
| <AnyChar attribute="Value" context="#pop" String=")]"/> |
| <AnyChar attribute="Symbol" context="#pop" String="{};" lookAhead="true"/> |
| <RegExpr attribute="Value" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Value" context="#stay" String="'([^'\\]|\\.)*'"/> |
| </context> |
| <context name="Type" attribute="Type" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Type" context="ParenType" String="(["/> |
| <keyword String="type" context="#stay" attribute="KeyType" /> |
| <RegExpr attribute="Type" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Type" context="#stay" String="'([^'\\]|\\.)*'"/> |
| <AnyChar attribute="Symbol" context="#pop" String="{};:=$)," lookAhead="true"/> |
| </context> |
| <context name="ParenType" attribute="Type" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Type" context="ParenType" String="(["/> |
| <AnyChar attribute="Type" context="#pop" String=")]"/> |
| <keyword String="type" context="#stay" attribute="KeyType" /> |
| <AnyChar attribute="Symbol" context="#pop" String="{};" lookAhead="true"/> |
| <RegExpr attribute="Type" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Type" context="#stay" String="'([^'\\]|\\.)*'"/> |
| </context> |
| <context name="Annotation" attribute="Annotation" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Annotation" context="ParenAnnotation" String="(["/> |
| <RegExpr attribute="Annotation" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Annotation" context="#stay" String="'([^'\\]|\\.)*'"/> |
| <AnyChar attribute="Symbol" context="#pop" String="{};:=$)," lookAhead="true"/> |
| </context> |
| <context name="ParenAnnotation" attribute="Annotation" lineEndContext="#stay"> |
| <DetectChar attribute="Comment" context="Comment" char="#"/> |
| <AnyChar attribute="Annotation" context="ParenAnnotation" String="(["/> |
| <AnyChar attribute="Annotation" context="#pop" String=")]"/> |
| <AnyChar attribute="Symbol" context="#pop" String="{};" lookAhead="true"/> |
| <RegExpr attribute="Annotation" context="#stay" String=""([^"\\]|\\.)*""/> |
| <RegExpr attribute="Annotation" context="#stay" String="'([^'\\]|\\.)*'"/> |
| </context> |
| </contexts> |
| <itemDatas> |
| <!-- Since my highlighting approach is different from most programming languages, the contexts |
| don't fit nicely into the standard set, so I have to define colors explicitly. A couple |
| of these, like "keyword" and "type", could be mapped to dsKeyword and dsDataType, but |
| there's a chance the user has mapped the colors for those things to things that would |
| conflict with the manually-defined colors here, which would probably be even more annoying |
| than having the colors be inconsistent from other languages. So, I use manual colors for |
| everything, except comments, which I figure are less likely to have this problem. --> |
| <itemData name="Normal" defStyleNum="dsNormal"/> |
| <itemData name="Keyword" defStyleNum="dsOthers" color="#000099" bold="1"/> |
| <itemData name="Id" defStyleNum="dsOthers" color="#0099FF"/> |
| <itemData name="Annotation" defStyleNum="dsOthers" color="#999900"/> |
| <itemData name="Type" defStyleNum="dsOthers" color="#009900"/> |
| <itemData name="KeyType" defStyleNum="dsOthers" color="#009900" bold="1"/> |
| <itemData name="Value" defStyleNum="dsOthers" color="#003399"/> |
| <itemData name="Comment" defStyleNum="dsComment"/> |
| <itemData name="Symbol" defStyleNum="dsOthers" bold="1"/> |
| </itemDatas> |
| </highlighting> |
| <general> |
| <comments><comment name="singleLine" start="#"/></comments> |
| <keywords casesensitive="1"/> |
| </general> |
| </language> |