TypeScript-TmLanguage/TypeScript.tmLanguage

1839 строки
39 KiB
Plaintext
Исходник Обычный вид История

2015-11-06 00:14:57 +03:00
<?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>fileTypes</key>
<array>
<string>ts</string>
</array>
<key>name</key>
<string>TypeScript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>access-modifier</key>
<dict>
<key>match</key>
<string>\b(public|protected|private)\b</string>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>arithmetic-operator</key>
<dict>
<key>match</key>
<string>\*|/|\-\-|\-|\+\+|\+|%</string>
<key>name</key>
<string>keyword.operator.arithmetic.ts</string>
</dict>
<key>array-literal</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.array.literal.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>assignment-operator</key>
<dict>
<key>match</key>
<string>&lt;&lt;=|&gt;&gt;=|&gt;&gt;&gt;=|\*=|(?&lt;!\()/=|%=|\+=|\-=|&amp;=|\^=</string>
<key>name</key>
<string>keyword.operator.assignment.ts</string>
</dict>
<key>await-modifier</key>
<dict>
<key>match</key>
<string>\bawait\b</string>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
2015-11-06 00:14:57 +03:00
<key>block</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.block.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
2015-12-11 10:57:53 +03:00
<string>#object-member</string>
2015-11-06 00:14:57 +03:00
</dict>
<dict>
<key>include</key>
2015-12-11 10:57:53 +03:00
<string>#expression</string>
2015-11-06 00:14:57 +03:00
</dict>
</array>
</dict>
<key>boolean-literal</key>
<dict>
<key>match</key>
<string>\b(false|true)\b</string>
<key>name</key>
<string>constant.language.boolean.ts</string>
</dict>
2016-01-30 01:05:08 +03:00
<key>case-clause</key>
<dict>
<key>begin</key>
<string>(?&lt;!\.)\b(case|default)\b</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.ts</string>
</dict>
</dict>
<key>end</key>
<string>:</string>
<key>name</key>
<string>case-clause.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
2015-11-06 00:14:57 +03:00
<key>cast</key>
<dict>
<key>begin</key>
<string>(?:(?&lt;=return|throw|yield|await|[=(,:&gt;]))\s*(&lt;)(?!&lt;?\=)</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
</dict>
<key>name</key>
<string>cast.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<key>comment</key>
<dict>
<key>name</key>
<string>comment.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment-block-doc</string>
</dict>
<dict>
<key>include</key>
<string>#comment-block</string>
</dict>
<dict>
<key>include</key>
<string>#comment-line</string>
</dict>
</array>
</dict>
<key>comment-block</key>
<dict>
<key>begin</key>
<string>/\*</string>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.ts</string>
</dict>
<key>comment-block-doc</key>
<dict>
<key>begin</key>
<string>/\*\*(?!/)</string>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.documentation.ts</string>
</dict>
<key>comment-line</key>
<dict>
<key>match</key>
<string>(//).*$\n?</string>
<key>name</key>
<string>comment.line.ts</string>
</dict>
<key>control-statement</key>
<dict>
<key>match</key>
<string>(?&lt;!\.)\b(break|catch|continue|debugger|declare|do|else|finally|for|if|return|switch|throw|try|while|with|super|case|default)\b</string>
<key>name</key>
<string>keyword.control.ts</string>
</dict>
<key>decl-block</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.decl.block.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>declaration</key>
<dict>
<key>name</key>
<string>meta.declaration.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#object-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#type-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#enum-declaration</string>
</dict>
</array>
</dict>
<key>enum-declaration</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.class.ts</string>
</dict>
</dict>
<key>match</key>
<string>(?:\b(const)\s+)?\b(enum)\s+([a-zA-Z_$][\w$]*)</string>
<key>name</key>
<string>meta.enum.declaration.ts</string>
</dict>
<key>expression</key>
<dict>
<key>name</key>
<string>meta.expression.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#for-in-simple</string>
</dict>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#regex</string>
</dict>
<dict>
<key>include</key>
<string>#template</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#literal</string>
</dict>
<dict>
<key>include</key>
<string>#paren-expression</string>
</dict>
<dict>
<key>include</key>
<string>#var-expr</string>
</dict>
<dict>
<key>include</key>
<string>#declaration</string>
</dict>
<dict>
<key>include</key>
<string>#cast</string>
</dict>
<dict>
<key>include</key>
<string>#new-expr</string>
</dict>
2016-01-27 12:49:11 +03:00
<dict>
<key>include</key>
2016-01-30 01:05:08 +03:00
<string>#switch-statement</string>
2016-01-27 12:49:11 +03:00
</dict>
2015-11-06 00:14:57 +03:00
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>include</key>
<string>#expression-operator</string>
</dict>
<dict>
<key>include</key>
<string>#relational-operator</string>
</dict>
<dict>
<key>include</key>
<string>#arithmetic-operator</string>
</dict>
<dict>
<key>include</key>
<string>#logic-operator</string>
</dict>
<dict>
<key>include</key>
<string>#assignment-operator</string>
</dict>
<dict>
<key>include</key>
2016-01-27 13:02:58 +03:00
<string>#storage-keyword</string>
2015-11-06 00:14:57 +03:00
</dict>
<dict>
<key>include</key>
2016-01-27 13:02:58 +03:00
<string>#function-call</string>
2015-11-06 00:14:57 +03:00
</dict>
<dict>
<key>include</key>
2016-01-30 01:05:08 +03:00
<string>#case-clause</string>
2015-11-06 00:14:57 +03:00
</dict>
<dict>
<key>include</key>
<string>#control-statement</string>
</dict>
</array>
</dict>
<key>expression-operator</key>
<dict>
<key>match</key>
<string>=&gt;|\b(delete|export|import|from|in|instanceof|new|typeof|void|as)\b</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
<key>field-declaration</key>
<dict>
<key>begin</key>
2015-12-11 11:58:25 +03:00
<string>(?&lt;!\()\s*((?:\b[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\"))\s*(\?\s*)?(?=(=|:))</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=\}|;|,|$)|(?&lt;=\})</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>meta.field.declaration.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>for-in-simple</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>match</key>
<string>(?&lt;=\()\s*\b(var|let|const)\s+([a-zA-Z_$][\w$]*)\s+(in|of)\b</string>
<key>name</key>
<string>forin.expr.ts</string>
</dict>
<key>function-call</key>
<dict>
<key>name</key>
<string>functioncall.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#await-modifier</string>
</dict>
2015-11-06 00:14:57 +03:00
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#paren-expression</string>
</dict>
</array>
</dict>
<key>function-declaration</key>
<dict>
<key>begin</key>
<string>\b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>storage.type.function.ts</string>
</dict>
<key>4</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>name</key>
<string>entity.name.function.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=;|\})|(?&lt;=\})</string>
<key>name</key>
<string>meta.function.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#function-type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#return-type</string>
</dict>
<dict>
<key>include</key>
<string>#function-overload-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#decl-block</string>
</dict>
</array>
</dict>
<key>function-overload-declaration</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.type.function.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.function.ts</string>
</dict>
</dict>
<key>match</key>
<string>\b(?:(export)\s+)?(function\b)(?:\s+([a-zA-Z_$][\w$]*))?\s*</string>
<key>name</key>
<string>meta.function.overload.ts</string>
</dict>
<key>function-type-parameters</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.round.ts</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.round.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.type.parameter.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#parameter-name</string>
</dict>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
<dict>
<key>include</key>
<string>#variable-initializer</string>
</dict>
</array>
</dict>
<key>indexer-declaration</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
</dict>
<key>end</key>
<string>(\])\s*(\?\s*)?|$</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.indexer.declaration.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
<dict>
<key>include</key>
<string>#indexer-parameter</string>
</dict>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>indexer-parameter</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.parameter.ts</string>
</dict>
</dict>
<key>match</key>
<string>([a-zA-Z_$][\w$]*)(?=\:)</string>
<key>name</key>
<string>meta.indexer.parameter.ts</string>
</dict>
<key>literal</key>
<dict>
<key>name</key>
<string>literal.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#numeric-literal</string>
</dict>
<dict>
<key>include</key>
<string>#boolean-literal</string>
</dict>
<dict>
<key>include</key>
<string>#null-literal</string>
</dict>
<dict>
<key>include</key>
<string>#undefined-literal</string>
</dict>
<dict>
<key>include</key>
<string>#array-literal</string>
</dict>
<dict>
<key>include</key>
<string>#this-literal</string>
</dict>
</array>
</dict>
<key>logic-operator</key>
<dict>
<key>match</key>
<string>\!|&amp;|~|\||&amp;&amp;|\|\|</string>
<key>name</key>
<string>keyword.operator.arithmetic.ts</string>
</dict>
<key>method-declaration</key>
<dict>
<key>begin</key>
<string>\b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?\b(?:(async)\s+)?(?:(get|set)\s+)?(?:(new)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\&lt;)</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>storage.type.property.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>entity.name.function.ts</string>
</dict>
<key>7</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
2016-01-27 12:49:11 +03:00
<string>(?=\}|;|,)|(?&lt;=\})</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>meta.method.declaration.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#function-type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
<dict>
<key>include</key>
<string>#method-overload-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#decl-block</string>
</dict>
</array>
</dict>
<key>method-overload-declaration</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
2016-01-30 00:54:27 +03:00
<string>storage.modifier.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>3</key>
<dict>
<key>name</key>
2016-01-30 00:54:27 +03:00
<string>storage.modifier.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
<key>4</key>
2016-01-30 00:54:27 +03:00
<dict>
<key>name</key>
<string>storage.type.property.ts</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>entity.name.function.ts</string>
</dict>
<key>7</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>match</key>
2016-01-30 00:54:27 +03:00
<string>\b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?\b(?:(async)\s+)?(?:(get|set)\s+)?(?:(new)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\&lt;)</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>meta.method.overload.declaration.ts</string>
</dict>
<key>new-expr</key>
<dict>
<key>begin</key>
<string>\b(new)\b</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=[(;]|$)</string>
<key>name</key>
<string>new.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
</array>
</dict>
<key>null-literal</key>
<dict>
<key>match</key>
<string>\b(null)\b</string>
<key>name</key>
<string>constant.language.null.ts</string>
</dict>
<key>numeric-literal</key>
<dict>
<key>match</key>
<string>\b(?&lt;=[^$])((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?))\b</string>
<key>name</key>
<string>constant.numeric.ts</string>
</dict>
<key>object-body</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.object.body.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#field-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#method-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#indexer-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
<dict>
<key>include</key>
<string>#variable-initializer</string>
</dict>
<dict>
<key>include</key>
<string>#access-modifier</string>
</dict>
<dict>
<key>include</key>
<string>#static-modifier</string>
</dict>
<dict>
<key>include</key>
<string>#property-accessor</string>
</dict>
</array>
</dict>
<key>object-declaration</key>
<dict>
<key>begin</key>
<string>\b(?:(export)\s+)?\b(?:(abstract)\s+)?\b(?&lt;!\.)(class|interface)\b</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.declaration.object.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#object-heritage</string>
</dict>
<dict>
<key>include</key>
<string>#object-name</string>
</dict>
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#object-body</string>
</dict>
</array>
</dict>
<key>object-heritage</key>
<dict>
<key>begin</key>
<string>(?:\b(extends|implements)\b)</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=\{)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.object.heritage.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
2016-01-27 13:36:55 +03:00
<dict>
<key>include</key>
<string>#object-heritage</string>
</dict>
2015-11-06 00:14:57 +03:00
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#object-heritage-type</string>
2015-11-06 00:14:57 +03:00
</dict>
</array>
</dict>
<key>object-heritage-type</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
</dict>
<key>match</key>
<string>(?:\b([a-zA-Z_$][\w$]*)\b)</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>meta.object.heritage.parent.ts</string>
</dict>
<key>object-member</key>
<dict>
<key>begin</key>
<string>[a-zA-Z_$][\w$]*\s*:</string>
<key>end</key>
<string>(?=,|\})</string>
<key>name</key>
<string>meta.object.member.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>object-name</key>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>entity.name.class.ts</string>
</dict>
</dict>
<key>match</key>
<string>[a-zA-Z_$][\w$]*</string>
<key>name</key>
<string>meta.object.name.ts</string>
</dict>
<key>parameter-name</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.modifier.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>variable.parameter.ts</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>match</key>
<string>(?:\s*\b(public|private|protected)\b\s+)?(\.\.\.)?\s*([a-zA-Z_$][\w$]*)\s*(\??)</string>
<key>name</key>
<string>parameter.name.ts</string>
</dict>
<key>paren-expression</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.paren.ts</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.paren.ts</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>property-accessor</key>
<dict>
<key>match</key>
<string>\b(get|set)\b</string>
<key>name</key>
<string>storage.type.property.ts</string>
</dict>
<key>qstring-double</key>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"|(?=$)</string>
<key>name</key>
<string>string.double.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-character-escape</string>
</dict>
</array>
</dict>
<key>qstring-single</key>
<dict>
<key>begin</key>
<string>'</string>
<key>end</key>
<string>'|(?=$)</string>
<key>name</key>
<string>string.single.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-character-escape</string>
</dict>
</array>
</dict>
<key>regex</key>
<dict>
<key>begin</key>
<string>(?&lt;=[=(:,\[]|^|return|&amp;&amp;|\|\||!)\s*(/)(?![/*+{}?])</string>
<key>end</key>
<string>$|(/)[igm]*</string>
<key>name</key>
<string>string.regex.ts</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.ts</string>
</dict>
<dict>
<key>match</key>
<string>\[(\\\]|[^\]])*\]</string>
<key>name</key>
<string>constant.character.class.ts</string>
</dict>
</array>
</dict>
<key>relational-operator</key>
<dict>
<key>match</key>
<string>===|==|=|!=|!==|&lt;=|&gt;=|&lt;&gt;|&lt;|&gt;</string>
<key>name</key>
<string>keyword.operator.comparison.ts</string>
</dict>
<key>return-type</key>
<dict>
<key>begin</key>
<string>(?&lt;=\))\s*:</string>
<key>end</key>
<string>(?=$)|(?=\{|;|//)</string>
<key>name</key>
<string>meta.return.type.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<key>static-modifier</key>
<dict>
<key>match</key>
<string>\b(static)\b</string>
<key>name</key>
<string>keyword.other.ts</string>
</dict>
<key>storage-keyword</key>
<dict>
<key>match</key>
<string>\b(number|boolean|string|any|var|let|function|const|module|namespace)\b</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>storage.type.ts</string>
</dict>
<key>string</key>
<dict>
<key>name</key>
<string>string.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#qstring-single</string>
</dict>
<dict>
<key>include</key>
<string>#qstring-double</string>
</dict>
</array>
</dict>
<key>string-character-escape</key>
<dict>
<key>match</key>
<string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)</string>
<key>name</key>
<string>constant.character.escape</string>
</dict>
2016-01-27 12:49:11 +03:00
<key>switch-block</key>
<dict>
<key>begin</key>
<string>{</string>
<key>end</key>
<string>(?=\})</string>
<key>name</key>
<string>switch-block.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
2016-01-30 01:05:08 +03:00
<key>switch-expression</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>begin</key>
2016-01-30 01:05:08 +03:00
<string>\b(switch)\b\s*\(</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
2016-01-30 01:05:08 +03:00
<string>keyword.operator.ts</string>
2015-11-06 00:14:57 +03:00
</dict>
</dict>
<key>end</key>
2016-01-30 01:05:08 +03:00
<string>\)</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
2016-01-30 01:05:08 +03:00
<string>switch-expression.expr.ts</string>
2015-11-06 00:14:57 +03:00
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
2016-01-30 01:05:08 +03:00
<key>switch-statement</key>
2016-01-27 12:49:11 +03:00
<dict>
<key>begin</key>
<string>(?=\bswitch\b\s*\()</string>
<key>end</key>
<string>}</string>
<key>name</key>
2016-01-30 01:05:08 +03:00
<string>switch-statement.expr.ts</string>
2016-01-27 12:49:11 +03:00
<key>patterns</key>
<array>
<dict>
<key>include</key>
2016-01-30 01:05:08 +03:00
<string>#switch-expression</string>
2016-01-27 12:49:11 +03:00
</dict>
<dict>
<key>include</key>
<string>#switch-block</string>
</dict>
</array>
</dict>
2015-11-06 00:14:57 +03:00
<key>template</key>
<dict>
<key>begin</key>
<string>`</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.template.ts</string>
</dict>
</dict>
<key>end</key>
<string>`</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.template.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.template.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#template-substitution-element</string>
</dict>
<dict>
<key>include</key>
<string>#template-string-contents</string>
</dict>
</array>
</dict>
<key>template-string-contents</key>
<dict>
<key>begin</key>
<string>.*?</string>
<key>end</key>
<string>(?=(\$\{|`))</string>
<key>name</key>
<string>string.template.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-character-escape</string>
</dict>
</array>
</dict>
<key>template-substitution-element</key>
<dict>
<key>begin</key>
<string>\$\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>name</key>
<string>template.element.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>this-literal</key>
<dict>
<key>match</key>
<string>\b(this)\b</string>
<key>name</key>
<string>constant.language.this.ts</string>
</dict>
<key>type</key>
<dict>
<key>name</key>
<string>meta.type.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type-primitive</string>
</dict>
<dict>
<key>include</key>
<string>#type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#type-tuple</string>
</dict>
<dict>
<key>include</key>
<string>#type-object</string>
</dict>
<dict>
<key>include</key>
<string>#type-operator</string>
</dict>
<dict>
<key>include</key>
<string>#type-paren-or-function-type-parameters</string>
</dict>
<dict>
<key>include</key>
<string>#type-function-return-type</string>
</dict>
<dict>
<key>include</key>
<string>#type-name</string>
</dict>
</array>
</dict>
<key>type-annotation</key>
<dict>
<key>begin</key>
<string>:</string>
<key>end</key>
<string>(?=$|[,);\}\]]|//)|(?==[^&gt;])|(?&lt;=[\}&gt;\]\)]|[a-zA-Z_$])\s*(?=\{)</string>
<key>name</key>
<string>meta.type.annotation.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
</array>
</dict>
<key>type-declaration</key>
<dict>
<key>begin</key>
<string>\b(type)\b\s+([a-zA-Z_$][\w$]*)\s*=\s*</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=$|[,);&gt;]|var|type|function|class|interface)</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
<string>meta.type.declaration.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<key>type-function-return-type</key>
<dict>
<key>begin</key>
<string>=&gt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=\s*[,\)\{=;&gt;]|//|$)</string>
<key>name</key>
<string>meta.type.function.return.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<key>type-name</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.type.ts</string>
</dict>
</dict>
<key>match</key>
<string>[a-zA-Z_$][.\w$]*</string>
<key>name</key>
<string>meta.type.name.ts</string>
</dict>
<key>type-object</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.curly.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.object.type.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#field-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#method-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#indexer-declaration</string>
</dict>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
</array>
</dict>
<key>type-operator</key>
<dict>
<key>match</key>
<string>[.|]</string>
<key>name</key>
<string>keyword.operator.type.ts</string>
</dict>
<key>type-parameters</key>
<dict>
<key>begin</key>
<string>([a-zA-Z_$][\w$]*)?(&lt;)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.type.ts</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=$)|(&gt;)</string>
<key>endCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.brace.angle.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.type.parameters.ts</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\b(extends)\b</string>
<key>name</key>
<string>keyword.other.ts</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#type</string>
</dict>
</array>
</dict>
<key>type-paren-or-function-type-parameters</key>
<dict>
<key>begin</key>
<string>(?:\b(new)\b)?\s*\(</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.ts</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>meta.type.paren.cover.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#type</string>
</dict>
<dict>
<key>include</key>
<string>#function-type-parameters</string>
</dict>
</array>
</dict>
<key>type-primitive</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
</dict>
<key>match</key>
<string>\b(string|number|boolean|symbol|any|void)\b</string>
<key>name</key>
<string>meta.type.primitive.ts</string>
</dict>
<key>type-tuple</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>meta.brace.square.ts</string>
</dict>
</dict>
<key>name</key>
<string>meta.type.tuple.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
</array>
</dict>
<key>undefined-literal</key>
<dict>
<key>match</key>
<string>\b(undefined)\b</string>
<key>name</key>
<string>constant.language.ts</string>
</dict>
<key>var-expr</key>
<dict>
<key>begin</key>
2016-01-28 01:54:53 +03:00
<string>(?&lt;!\()\s*\b(var|let|const(?!\s+enum)\b)</string>
2015-11-06 00:14:57 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.ts</string>
</dict>
2016-01-27 13:36:55 +03:00
</dict>
<key>end</key>
2016-01-28 01:54:53 +03:00
<string>(?=$|;)</string>
2016-01-27 13:36:55 +03:00
<key>name</key>
<string>meta.var.expr.ts</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
2016-01-28 01:54:53 +03:00
<string>#var-single-variable</string>
2016-01-27 13:36:55 +03:00
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
</array>
</dict>
2016-01-28 01:54:53 +03:00
<key>var-single-variable</key>
2016-01-27 13:36:55 +03:00
<dict>
<key>begin</key>
2016-01-28 01:54:53 +03:00
<string>\b([a-zA-Z_$][\w$]*)\s*(=?)</string>
2016-01-27 13:36:55 +03:00
<key>beginCaptures</key>
<dict>
<key>1</key>
2015-11-06 00:14:57 +03:00
<dict>
<key>name</key>
<string>variable.ts</string>
</dict>
</dict>
<key>end</key>
2016-01-28 01:54:53 +03:00
<string>(?=$|[;,])</string>
2015-11-06 00:14:57 +03:00
<key>name</key>
2016-01-28 01:54:53 +03:00
<string>meta.var-single-variable.expr.ts</string>
2015-11-06 00:14:57 +03:00
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#type-annotation</string>
</dict>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
2016-01-28 01:54:53 +03:00
<dict>
<key>include</key>
<string>#expression</string>
</dict>
2015-11-06 00:14:57 +03:00
</array>
</dict>
<key>variable-initializer</key>
<dict>
<key>begin</key>
<string>(=)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.ts</string>
</dict>
</dict>
<key>end</key>
<string>(?=$|[,);=])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.ts</string>
<key>uuid</key>
<string>ef98eb90-bf9b-11e4-bb52-0800200c9a66</string>
</dict>
</plist>