tm-lang/package/syntaxes/sehn.tmLanguage
2018-12-18 22:38:12 +11:00

420 lines
11 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>SEHN</string>
<key>uuid</key>
<string>06947fd2-ab1f-4518-8f45-cc76b0294e5f</string>
<key>scopeName</key>
<string>source.sehn</string>
<key>fileTypes</key>
<array>
<string>sehn</string>
</array>
<key>foldingStartMarker</key>
<string>^\s*[{\[\`](?!.*[}\]\`],?\s*$)|[{\[\`]\s*$</string>
<key>foldingStopMarker</key>
<string>^\s*[}\]\`]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#value</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>value</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#bool</string>
</dict>
<dict>
<key>include</key>
<string>#real</string>
</dict>
<dict>
<key>include</key>
<string>#text</string>
</dict>
<dict>
<key>include</key>
<string>#text-list</string>
</dict>
<dict>
<key>include</key>
<string>#list</string>
</dict>
<dict>
<key>include</key>
<string>#dict</string>
</dict>
<dict>
<key>include</key>
<string>#tag</string>
</dict>
<dict>
<key>include</key>
<string>#kind</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#illegal</string>
</dict>
</array>
</dict>
<key>bool</key>
<dict>
<key>name</key>
<string>constant.language.boolean.sehn</string>
<key>match</key>
<string>\b(?:true|false)\b</string>
</dict>
<key>real</key>
<dict>
<key>name</key>
<string>constant.numeric.sehn</string>
<key>match</key>
<string>\-?(?:(?:([0-9]+)(\.)([0-9]+))|(?:([1-9][0-9]*)(e)(-?)([1-9][0-9]+))|(?:([1-9][0-9]+)))</string>
</dict>
<key>text</key>
<dict>
<key>name</key>
<string>string.quoted.double.sehn</string>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#text-content</string>
</dict>
</array>
</dict>
<key>text-content</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>constant.character.escape.sehn</string>
<key>match</key>
<string>\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4})</string>
</dict>
<dict>
<key>name</key>
<string>invalid.illegal.unrecognized-string-escape.sehn</string>
<key>match</key>
<string>\\.</string>
</dict>
</array>
</dict>
<key>text-list</key>
<dict>
<key>name</key>
<string>meta.structure.stringlist</string>
<key>begin</key>
<string>\`</string>
<key>end</key>
<string>\`</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.stringlist.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.stringlist.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#text</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#illegal</string>
</dict>
</array>
</dict>
<key>dict</key>
<dict>
<key>name</key>
<string>meta.structure.dictionary.sehn</string>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.dictionary.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#dict-key</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#dict-val</string>
</dict>
<dict>
<key>name</key>
<string>invalid.illegal.expected-dictionary-separator.sehn</string>
<key>match</key>
<string>[^\s\}]</string>
</dict>
</array>
</dict>
<key>dict-key</key>
<dict>
<key>name</key>
<string>string.sehn support.type.property-name.sehn</string>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.support.type.property-name.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.support.type.property-name.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#text-content</string>
</dict>
</array>
</dict>
<key>dict-val</key>
<dict>
<key>name</key>
<string>meta.structure.dictionary.value.sehn</string>
<key>begin</key>
<string>:</string>
<key>end</key>
<string>(,)|(?=\})</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.separator.dictionary.key-value.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.dictionary.pair.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#value</string>
</dict>
<dict>
<key>name"</key>
<string>invalid.illegal.expected-dictionary-separator.sehn</string>
<key>match"</key>
<string>[^\\s,]</string>
</dict>
</array>
</dict>
<key>list</key>
<dict>
<key>name</key>
<string>meta.structure.list.sehn</string>
<key>begin</key>
<string>\[</string>
<key>end</key>
<string>\]</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>punctuation.separator.list.sehn</string>
<key>match</key>
<string>,</string>
</dict>
<dict>
<key>include</key>
<string>#value</string>
</dict>
<dict>
<key>name</key>
<string>invalid.illegal.expected-list-separator.sehn</string>
<key>match</key>
<string>[^\s\]]</string>
</dict>
</array>
</dict>
<key>tag</key>
<dict>
<key>name</key>
<string>meta.structure.tag</string>
<key>begin</key>
<string>(?:(\b(?:[a-z](?:[a-zA-Z0-9]*\/?[a-zA-Z0-9]+)+)\b)|(\b(?:[A-Z](?:[a-zA-Z0-9]*\/?[a-zA-Z0-9]+)+)\b))(\()</string>
<key>end</key>
<string>(\))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.tag.standard.sehn</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.type.tag.application.sehn</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.begin.sehn</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.end.sehn</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#value</string>
</dict>
</array>
</dict>
<key>kind</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>storage.type.base.sehn</string>
<key>match</key>
<string>\b(?:none|bool|real|text|dict|list|kind)\b</string>
</dict>
<dict>
<key>name</key>
<string>storage.type.extension.standard.sehn</string>
<key>match</key>
<string>\b(?:[a-z](?:[a-zA-Z0-9]*\/?[a-zA-Z0-9]+)+)\b</string>
</dict>
<dict>
<key>name</key>
<string>storage.type.extension.application.sehn</string>
<key>match</key>
<string>\b(?:[A-Z](?:[a-zA-Z0-9]*\/?[a-zA-Z0-9]+)+)\b</string>
</dict>
</array>
</dict>
<key>comment</key>
<dict>
<key>name</key>
<string>comment.line.sehn</string>
<key>match</key>
<string>#.*</string>
</dict>
<key>illegal</key>
<dict>
<key>name</key>
<string>invalid.illegal.sehn</string>
<key>match</key>
<string>[^\s]</string>
</dict>
</dict>
</dict>
</plist>