|
| 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<language id="ownlang" name="OwnLang" version="2.0" _section="Source"> |
| 3 | + <metadata> |
| 4 | + <property name="mimetypes">text/x-own</property> |
| 5 | + <property name="globs">*.own</property> |
| 6 | + <property name="line-comment-start">//</property> |
| 7 | + <property name="block-comment-start">/*</property> |
| 8 | + <property name="block-comment-end">*/</property> |
| 9 | + </metadata> |
| 10 | + |
| 11 | + <styles> |
| 12 | + <style id="comment" name="Comment" map-to="def:comment"/> |
| 13 | + <style id="escaped-character" name="Escaped Character" map-to="def:special-char"/> |
| 14 | + <style id="string" name="String" map-to="def:string"/> |
| 15 | + <style id="keyword" name="Keyword" map-to="def:keyword"/> |
| 16 | + <style id="boolean" name="Boolean value" map-to="def:boolean"/> |
| 17 | + <style id="number" name="Number" map-to="def:decimal"/> |
| 18 | + <style id="type" name="Data Type" map-to="def:type"/> |
| 19 | + </styles> |
| 20 | + |
| 21 | + <definitions> |
| 22 | + |
| 23 | + <define-regex id="escaped-character" extended="true"> |
| 24 | + \\( # leading backslash |
| 25 | + [\\\"\'nrbtf] | # escaped character |
| 26 | + [0-9]{1,3} | # latin encoded char |
| 27 | + u[0-9]{1,4} # unicode char |
| 28 | + ) |
| 29 | + </define-regex> |
| 30 | + |
| 31 | + <context id="string" style-ref="string" end-at-line-end="true" class="string" |
| 32 | +class-disabled="no-spell-check"> |
| 33 | + <start>"</start> |
| 34 | + <end>"</end> |
| 35 | + <include> |
| 36 | + <context id="escaped-character" style-ref="escaped-character"> |
| 37 | + <match>\%{escaped-character}</match> |
| 38 | + </context> |
| 39 | + </include> |
| 40 | + </context> |
| 41 | + |
| 42 | + <context id="keywords" style-ref="keyword"> |
| 43 | + <keyword>print</keyword> |
| 44 | + <keyword>println</keyword> |
| 45 | + <keyword>if</keyword> |
| 46 | + <keyword>else</keyword> |
| 47 | + <keyword>while</keyword> |
| 48 | + <keyword>for</keyword> |
| 49 | + <keyword>do</keyword> |
| 50 | + <keyword>break</keyword> |
| 51 | + <keyword>continue</keyword> |
| 52 | + <keyword>def</keyword> |
| 53 | + <keyword>return</keyword> |
| 54 | + <keyword>use</keyword> |
| 55 | + <keyword>match</keyword> |
| 56 | + <keyword>case</keyword> |
| 57 | + <keyword>extract</keyword> |
| 58 | + <keyword>include</keyword> |
| 59 | + <keyword>class</keyword> |
| 60 | + <keyword>new</keyword> |
| 61 | + </context> |
| 62 | + |
| 63 | + <context id="boolean" style-ref="boolean"> |
| 64 | + <keyword>false</keyword> |
| 65 | + <keyword>true</keyword> |
| 66 | + </context> |
| 67 | + |
| 68 | + <context id="numeric" style-ref="number"> |
| 69 | + <match extended="true"> |
| 70 | + (\b([0-9]+|0[xX][0-9a-fA-F]+)[Ll]?\b| |
| 71 | + \b(([0-9]+[Ee][-]?[0-9]+| |
| 72 | + ([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-]?[0-9]+)?))) |
| 73 | + </match> |
| 74 | + </context> |
| 75 | + |
| 76 | + <context id="ownlang" class="no-spell-check"> |
| 77 | + <include> |
| 78 | + <context ref="def:c-like-comment" style-ref="comment"/> |
| 79 | + <context ref="def:c-like-comment-multiline" style-ref="comment"/> |
| 80 | + <context ref="def:c-like-close-comment-outside-comment"/> |
| 81 | + <context ref="boolean"/> |
| 82 | + <context ref="numeric"/> |
| 83 | + <context ref="string"/> |
| 84 | + <context ref="keywords"/> |
| 85 | + </include> |
| 86 | + </context> |
| 87 | + |
| 88 | + </definitions> |
| 89 | +</language> |
0 commit comments