2 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4 <!-- Kotlin mode by Sergey Mashkov aka cy6erGn0m -->
7 <PROPERTY NAME="commentStart" VALUE="/*" />
8 <PROPERTY NAME="commentEnd" VALUE="*/" />
9 <PROPERTY NAME="lineComment" VALUE="//" />
10 <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />
13 <PROPERTY NAME="indentOpenBrackets" VALUE="{[" />
14 <PROPERTY NAME="indentCloseBrackets" VALUE="]}" />
15 <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
16 <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
17 <PROPERTY NAME="indentNextLine"
18 VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
19 <PROPERTY NAME="unindentThisLine"
20 VALUE="^.*(else:\s*|when.*:.*)$" />
25 HIGHLIGHT_DIGITS="TRUE"
26 DIGIT_RE="(0x[\p{XDigit}]+[lL]?|[\p{Digit}]+(e[\p{Digit}]*)?[lLdDfF]?)">
28 <SPAN TYPE="COMMENT3">
33 <SPAN TYPE="COMMENT1">
38 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\">
43 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\">
48 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE" ESCAPE="\">
53 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
54 <SEQ TYPE="OPERATOR">)</SEQ>
56 <SEQ TYPE="COMMENT2">//--></SEQ>
57 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
58 <SEQ_REGEXP TYPE="MARKUP" HASH_CHAR="/" AT_WORD_START="TRUE">/[^\p{Blank}]*?/</SEQ_REGEXP>
60 <SEQ TYPE="COMMENT1"><!--</SEQ>
62 <SEQ TYPE="OPERATOR">-></SEQ>
63 <SEQ TYPE="OPERATOR">=</SEQ>
64 <SEQ TYPE="OPERATOR">!</SEQ>
65 <SEQ TYPE="OPERATOR">>=</SEQ>
66 <SEQ TYPE="OPERATOR"><=</SEQ>
67 <SEQ TYPE="OPERATOR">+</SEQ>
68 <SEQ TYPE="OPERATOR">-</SEQ>
69 <SEQ TYPE="OPERATOR">/</SEQ>
70 <SEQ TYPE="OPERATOR">*</SEQ>
71 <SEQ TYPE="OPERATOR">></SEQ>
72 <SEQ TYPE="OPERATOR"><</SEQ>
73 <SEQ TYPE="OPERATOR">%</SEQ>
74 <SEQ TYPE="OPERATOR">&</SEQ>
75 <SEQ TYPE="OPERATOR">|</SEQ>
76 <SEQ TYPE="OPERATOR">^</SEQ>
77 <SEQ TYPE="OPERATOR">~</SEQ>
78 <SEQ TYPE="OPERATOR">.</SEQ>
79 <SEQ TYPE="OPERATOR">}</SEQ>
80 <SEQ TYPE="OPERATOR">{</SEQ>
81 <SEQ TYPE="OPERATOR">,</SEQ>
82 <SEQ TYPE="OPERATOR">;</SEQ>
83 <SEQ TYPE="OPERATOR">]</SEQ>
84 <SEQ TYPE="OPERATOR">::</SEQ>
85 <SEQ TYPE="OPERATOR">[</SEQ>
86 <SEQ TYPE="OPERATOR">?</SEQ>
87 <MARK_PREVIOUS AT_WHITESPACE_END="TRUE"
89 TYPE="LABEL">:</MARK_PREVIOUS>
90 <SEQ TYPE="OPERATOR">:</SEQ>
93 <KEYWORD1>break</KEYWORD1>
94 <KEYWORD1>continue</KEYWORD1>
95 <KEYWORD1>else</KEYWORD1>
96 <KEYWORD1>for</KEYWORD1>
97 <KEYWORD1>when</KEYWORD1>
98 <KEYWORD1>fun</KEYWORD1>
99 <KEYWORD1>if</KEYWORD1>
100 <KEYWORD1>return</KEYWORD1>
101 <LITERAL2>this</LITERAL2>
102 <KEYWORD1>vararg</KEYWORD1>
103 <KEYWORD1>var</KEYWORD1>
104 <KEYWORD1>val</KEYWORD1>
105 <KEYWORD1>by</KEYWORD1>
106 <KEYWORD1>while</KEYWORD1>
107 <KEYWORD1>class</KEYWORD1>
108 <KEYWORD1>companion</KEYWORD1>
109 <KEYWORD1>trait</KEYWORD1>
110 <KEYWORD1>object</KEYWORD1>
111 <KEYWORD1>abstract</KEYWORD1>
112 <KEYWORD1>override</KEYWORD1>
113 <KEYWORD2>open</KEYWORD2>
114 <KEYWORD2>attribute</KEYWORD2>
115 <KEYWORD2>inline</KEYWORD2>
116 <KEYWORD2>data</KEYWORD2>
117 <KEYWORD2>get</KEYWORD2>
118 <KEYWORD2>set</KEYWORD2>
120 <KEYWORD3>Any</KEYWORD3>
121 <KEYWORD3>Boolean</KEYWORD3>
122 <KEYWORD3>Byte</KEYWORD3>
123 <KEYWORD3>Unit</KEYWORD3>
124 <KEYWORD3>String</KEYWORD3>
125 <KEYWORD3>Int</KEYWORD3>
126 <KEYWORD3>Short</KEYWORD3>
127 <KEYWORD3>Long</KEYWORD3>
128 <KEYWORD3>Double</KEYWORD3>
129 <KEYWORD3>Float</KEYWORD3>
130 <KEYWORD3>Char</KEYWORD3>
131 <KEYWORD3>Array</KEYWORD3>
133 <KEYWORD1>catch</KEYWORD1>
134 <KEYWORD1>finally</KEYWORD1>
136 <KEYWORD1>do</KEYWORD1>
137 <KEYWORD1>enum</KEYWORD1>
138 <KEYWORD1>constructor</KEYWORD1>
139 <KEYWORD3>init</KEYWORD3>
140 <KEYWORD1>typealias</KEYWORD1>
142 <KEYWORD2>package</KEYWORD2>
143 <KEYWORD2>import</KEYWORD2>
144 <KEYWORD1>is</KEYWORD1>
145 <KEYWORD2>it</KEYWORD2>
146 <KEYWORD1>as</KEYWORD1>
147 <KEYWORD1>public</KEYWORD1>
148 <KEYWORD1>internal</KEYWORD1>
149 <KEYWORD1>protected</KEYWORD1>
150 <KEYWORD1>private</KEYWORD1>
151 <KEYWORD1>inner</KEYWORD1>
152 <KEYWORD1>super</KEYWORD1>
154 <KEYWORD1>throw</KEYWORD1>
155 <KEYWORD1>throws</KEYWORD1>
156 <KEYWORD1>transient</KEYWORD1>
157 <KEYWORD1>try</KEYWORD1>
158 <KEYWORD1>volatile</KEYWORD1>
160 <LITERAL2>null</LITERAL2>
161 <LITERAL2>false</LITERAL2>
162 <LITERAL2>true</LITERAL2>
164 <KEYWORD1>in</KEYWORD1>
165 <KEYWORD1>out</KEYWORD1>