AngelscriptLanguageServer/syntaxes/astypedef.tmGrammar

326 lines
7.9 KiB
XML

<?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>comment</key>
<string>Made by Deukhoofd</string>
<key>fileTypes</key>
<array>
<string>as</string>
</array>
<key>firstLineMatch</key>
<string>-\*- C\+\+ -\*-</string>
<key>foldingStartMarker</key>
<string>(?x)
/\*\*(?!\*)
|^(?![^{]*?//|[^{]*?/\*(?!.*?\*/.*?\{)).*?\{\s*($|//|/\*(?!.*?\*/.*\S))
</string>
<key>foldingStopMarker</key>
<string>(?&lt;!\*)\*\*/|^\s*\}</string>
<key>keyEquivalent</key>
<string>^~C</string>
<key>name</key>
<string>AngelScript</string>
<key>patterns</key>
<array>
<!-- <dict>
<key>include</key>
<string>source.c</string>
</dict> -->
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.angelscript</string>
</dict>
</dict>
<key>match</key>
<string>(//).*$\n?</string>
<key>name</key>
<string>comment.line.double-slash.angelscript</string>
</dict>
<dict>
<key>begin</key>
<string>/\*</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.angelscript</string>
</dict>
</dict>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.angelscript</string>
</dict>
<dict>
<key>begin</key>
<string>"""</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.angelscript</string>
</dict>
</dict>
<key>end</key>
<string>"""</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.angelscript</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.angelscript</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.angelscript</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.angelscript</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.angelscript</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.angelscript</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.angelscript</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.angelscript</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.angelscript</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.angelscript</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>(~|!|&amp;&amp;|\|\|)</string>
<key>name</key>
<string>keyword.operator.logical.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>[-!%&amp;&gt;&lt;@*+=/?:]</string>
<key>name</key>
<string>keyword.operator.symbolic.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(for|in|break|continue|while|do|return|if|else|case|switch|namespace)\b</string>
<key>name</key>
<string>keyword.control.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(is|cast)\b</string>
<key>name</key>
<string>keyword.operator.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(or|and|xor|not)\b</string>
<key>name</key>
<string>keyword.operator.logical.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(get|in|inout|out|override|set|private|public|const|default|final|shared|mixin)\b</string>
<key>name</key>
<string>storage.modifier.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(type|enum|func|void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)\b</string>
<key>name</key>
<string>storage.type.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>[A-Za-z][A-Za-z0-9]+@</string>
<key>name</key>
<string>storage.type.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(null|true|false)\b</string>
<key>name</key>
<string>constant.language.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(this|super)\b</string>
<key>name</key>
<string>variable.language.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b(import|from)\b</string>
<key>name</key>
<string>keyword.control.import.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b</string>
<key>name</key>
<string>constant.numeric.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>^\s*\#([a-zA-Z_0-9]*)?</string>
<key>name</key>
<string>keyword.control.import.angelscript</string>
</dict>
<!-- This became too much. -->
<!--
<dict>
<key>match</key>
<string>(@[a-zA-Z_]+[0-9a-zA-Z_]*)</string>
<key>name</key>
<string>variable.other.pointer.angelscript</string>
</dict>
-->
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>markup.heading.angelscript</string>
</dict>
</dict>
<key>match</key>
<string>^\s*\[(.*)\]\s*?</string>
<key>name</key>
<string>meta.metadata.angelscript</string>
</dict>
<dict>
<key>match</key>
<string>\.[a-zA-Z_][a-zA-Z_0-9]*\b(?!\s*\()</string>
<key>name</key>
<string>variable.other.dot-access.angelscript</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.class.angelscript</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.class.angelscript</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.angelscript</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.angelscript</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.angelscript</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.angelscript</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.angelscript</string>
</dict>
</dict>
<key>match</key>
<string>\b(class|interface)\s+([a-zA-Z_0-9]*)(?:\s*:\s*([a-zA-Z_0-9]*)(\s*,\s*([a-zA-Z_0-9]*))?(\s*,\s*([a-zA-Z_0-9]*))?(\s*,\s*([a-zA-Z_0-9]*))?(\s*,\s*([a-zA-Z_0-9]*))?)?</string>
<key>name</key>
<string>meta.class.angelscript</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.function-call.angelscript</string>
</dict>
</dict>
<key>match</key>
<string>(\b|\.)([a-zA-Z_][a-zA-Z_0-9]*)\b(\s*\()</string>
</dict>
<dict>
<key>match</key>
<string>\b([A-Z][A-Z0-9_]+)\b</string>
<key>name</key>
<string>constant.other.angelscript</string>
</dict>
</array>
<key>scopeName</key>
<string>source.angelscript</string>
<key>uuid</key>
<string>69E25C06-FA48-4207-BF35-11353888A8F6</string>
</dict>
</plist>