2018-07-09 19:44:51 +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">
|
2018-08-23 01:05:31 +03:00
|
|
|
<dict>
|
2018-08-23 15:36:38 +03:00
|
|
|
<key>name</key>
|
|
|
|
<string>powerquery</string>
|
|
|
|
<key>scopeName</key>
|
|
|
|
<string>source.powerquery</string>
|
2018-08-23 01:05:31 +03:00
|
|
|
<key>fileTypes</key>
|
|
|
|
<array>
|
|
|
|
<string>pq</string>
|
|
|
|
<string>pqm</string>
|
|
|
|
</array>
|
|
|
|
<key>uuid</key>
|
|
|
|
<string>41968B57-12E6-4AC5-92A4-A837010E8B0A</string>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Noise</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#LiteralExpression</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Keywords</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#ImplicitVariable</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#IntrinsicVariable</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Operators</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#DotOperators</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#TypeName</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#RecordExpression</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Punctuation</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#QuotedIdentifier</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Identifier</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
<key>repository</key>
|
|
|
|
<dict>
|
|
|
|
<key>Keywords</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\b</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.word.logical.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.control.conditional.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>3</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.control.exception.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>4</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.other.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>5</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>TypeName</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\b</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>storage.modifier.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>storage.type.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>LiteralExpression</key>
|
|
|
|
<dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#String</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#NumericConstant</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#LogicalConstant</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#NullConstant</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#FloatNumber</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#DecimalNumber</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#HexNumber</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#IntNumber</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
</dict>
|
|
|
|
<key>Noise</key>
|
|
|
|
<dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#BlockComment</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#LineComment</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#Whitespace</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
</dict>
|
|
|
|
<key>Whitespace</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\s+</string>
|
|
|
|
</dict>
|
|
|
|
<key>BlockComment</key>
|
|
|
|
<dict>
|
|
|
|
<key>begin</key>
|
|
|
|
<string>/\*</string>
|
|
|
|
<key>end</key>
|
|
|
|
<string>\*/</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>comment.block.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>LineComment</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>//.*</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>comment.line.double-slash.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>String</key>
|
|
|
|
<dict>
|
|
|
|
<key>begin</key>
|
|
|
|
<string>"</string>
|
|
|
|
<key>beginCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.string.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>end</key>
|
|
|
|
<string>"(?!")</string>
|
|
|
|
<key>endCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.string.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>""</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.character.escape.quote.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#EscapeSequence</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
<key>name</key>
|
|
|
|
<string>string.quoted.double.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>QuotedIdentifier</key>
|
|
|
|
<dict>
|
|
|
|
<key>begin</key>
|
|
|
|
<string>#"</string>
|
|
|
|
<key>beginCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.quotedidentifier.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>end</key>
|
|
|
|
<string>"(?!")</string>
|
|
|
|
<key>endCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.quotedidentifier.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>""</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.character.escape.quote.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>#EscapeSequence</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
<key>name</key>
|
|
|
|
<string>entity.name.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>EscapeSequence</key>
|
|
|
|
<dict>
|
|
|
|
<key>begin</key>
|
|
|
|
<string>#\(</string>
|
|
|
|
<key>beginCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.escapesequence.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>end</key>
|
|
|
|
<string>\)</string>
|
|
|
|
<key>endCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.definition.escapesequence.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(#|\h{4}|\h{8}|cr|lf|tab)(?:,(#|\h{4}|\h{8}|cr|lf|tab))*</string>
|
|
|
|
</dict>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>[^\)]</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>invalid.illegal.escapesequence.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.character.escapesequence.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>LogicalConstant</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b(true|false)\b</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.language.logical.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>NullConstant</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b(null)\b</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.language.null.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>NumericConstant</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(?<![\d\w])(#infinity|#nan)\b</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.language.numeric.float.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>HexNumber</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>0(x|X)\h+</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.numeric.integer.hexadecimal.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>IntNumber</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b(\d+)\b</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.numeric.integer.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>DecimalNumber</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(?<![\d\w])(\d*\.\d+)\b</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.numeric.decimal.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>FloatNumber</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(\d*\.)?\d+(e|E)(\+|-)?\d+</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.numeric.float.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>InclusiveIdentifier</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>@</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>inclusiveidentifier.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>Identifier</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
2018-08-23 15:36:38 +03:00
|
|
|
<string>(?x:(?<![\._\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}\p{Mn}\p{Mc}\p{Cf}])(@?)([_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}][_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}\p{Mn}\p{Mc}\p{Cf}]*(?:\.[_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}][_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}\p{Mn}\p{Mc}\p{Cf}])*)\b)</string>
|
2018-08-23 01:05:31 +03:00
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.inclusiveidentifier.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>entity.name.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>Operators</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\+|-|\*|\/)|(!)|(\?)</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.function.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.assignment-or-comparison.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>3</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.comparison.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>4</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.combination.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>5</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.arithmetic.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>6</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.sectionaccess.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>7</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.optional.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>DotOperators</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(?<!\.)(?:(\.\.\.)|(\.\.))(?!\.)</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.ellipsis.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.list.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>RecordExpression</key>
|
|
|
|
<dict>
|
|
|
|
<key>begin</key>
|
|
|
|
<string>\[</string>
|
|
|
|
<key>beginCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.brackets.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>end</key>
|
|
|
|
<string>\]</string>
|
|
|
|
<key>endCaptures</key>
|
|
|
|
<dict>
|
|
|
|
<key>0</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.brackets.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>patterns</key>
|
|
|
|
<array>
|
|
|
|
<dict>
|
|
|
|
<key>include</key>
|
|
|
|
<string>$self</string>
|
|
|
|
</dict>
|
|
|
|
</array>
|
|
|
|
<key>contentName</key>
|
|
|
|
<string>meta.recordexpression.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>Punctuation</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(,)|(\()|(\))|({)|(})</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.separator.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>2</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.parens.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>3</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.parens.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>4</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.braces.begin.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>5</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>punctuation.section.braces.end.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
<key>ImplicitVariable</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>\b_\b</string>
|
|
|
|
<key>name</key>
|
|
|
|
<string>keyword.operator.implicitvariable.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
<key>IntrinsicVariable</key>
|
|
|
|
<dict>
|
|
|
|
<key>match</key>
|
|
|
|
<string>(?<![\d\w])(#sections|#shared)\b</string>
|
|
|
|
<key>captures</key>
|
|
|
|
<dict>
|
|
|
|
<key>1</key>
|
|
|
|
<dict>
|
|
|
|
<key>name</key>
|
|
|
|
<string>constant.language.intrinsicvariable.powerquery</string>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</dict>
|
|
|
|
</plist>
|