Created
August 22, 2022 01:36
-
-
Save jtojnar/ae41fdf515d7ed91e5bfdb50107d1772 to your computer and use it in GitHub Desktop.
Attempt at converting Atom syntax highlighting from https://github.com/Alhadis/language-etc/tree/669f7b1ca0d1a37bf63754b9df7c53bd89ba4fd9/grammars to Sublime Text https://forum.sublimetext.com/t/using-syntax-highlighting-from-github-atom/65023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version='1.0' encoding='UTF-8'?> | |
| <!DOCTYPE plist | |
| PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' | |
| 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>scopeName</key> | |
| <string>etc</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comma</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#esc</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#float</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#int</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#str</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#colon</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#eql</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| <key>repository</key> | |
| <dict> | |
| <key>base64</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.base64</string> | |
| <key>match</key> | |
| <string>[A-Za-z0-9+/=]{4,}</string> | |
| </dict> | |
| <key>comma</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.separator.delimiter.comma</string> | |
| <key>match</key> | |
| <string>,</string> | |
| </dict> | |
| <key>comment</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#commentHash</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>commentHash</key> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.number-sign</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.comment</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>commentSemi</key> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.semicolon</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.comment</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>commentSlash</key> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.double-slash</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.comment</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>bareword</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.unquoted.bareword</string> | |
| <key>match</key> | |
| <string>[^"\s][\S]*</string> | |
| </dict> | |
| <key>bool</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.logical.bool.boolean.${1:/downcase}</string> | |
| <key>match</key> | |
| <string>\b(true|false|TRUE|FALSE)\b</string> | |
| </dict> | |
| <key>bracket</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\{</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.curly.brace.begin</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\}</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.curly.brace.end</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\[</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.square.begin</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\]</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.square.end</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\(</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.round.parenthesis.begin</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\)</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.round.parenthesis.end</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string><</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.angle.ascii.begin</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>></string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.angle.ascii.end</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>⟨</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.angle.unicode.begin</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>⟩</string> | |
| <key>name</key> | |
| <string>punctuation.definition.bracket.angle.unicode.end</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>colon</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.colon</string> | |
| <key>match</key> | |
| <string>:</string> | |
| </dict> | |
| <key>dash</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.dash.hyphen</string> | |
| <key>match</key> | |
| <string>-</string> | |
| </dict> | |
| <key>dots</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#ellipsis</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#dotPair</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>dot</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.property.period.dot</string> | |
| <key>match</key> | |
| <string>\.</string> | |
| </dict> | |
| <key>dotPair</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.punctuation.dots.splat.range.spread.rest</string> | |
| <key>match</key> | |
| <string>\.\.|‥</string> | |
| </dict> | |
| <key>ellipsis</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.punctuation.ellipsis.splat.range.spread.rest</string> | |
| <key>match</key> | |
| <string>\.{3}|…</string> | |
| </dict> | |
| <key>dotTrail</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.dotted.border.leader.dots</string> | |
| <key>match</key> | |
| <string>\.{4,}</string> | |
| </dict> | |
| <key>email</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailBracketed</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailQuoted</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailUnquoted</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>emailBracketed</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.ascii.angle-brackets</string> | |
| <key>match</key> | |
| <string>(<)\s*([^>@\s]+@[^>@\s]+)\s*(>)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.unicode.angle-brackets</string> | |
| <key>match</key> | |
| <string>(⟨)\s*([^⟩@\s]+@[^⟩@\s]+)\s*(⟩)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.guillemots</string> | |
| <key>match</key> | |
| <string>(«)\s*([^»@\s]+@[^»@\s]+)\s*(»)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.round-brackets</string> | |
| <key>match</key> | |
| <string>(\()\s*([^\)@\s]+@[^\)@\s]+)\s*(\))</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.curly-brackets</string> | |
| <key>match</key> | |
| <string>({)\s*([^}@\s]+@[^}@\s]+)\s*(})</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.bracketed.square-brackets</string> | |
| <key>match</key> | |
| <string>(\[)\s*([^\]@\s]+@[^\]@\s]+)\s*(\])</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#bracket</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>emailQuoted</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.quoted.ascii.double-quotes</string> | |
| <key>match</key> | |
| <string>(")\s*([^"@\s]+@[^"@\s]+)\s*(")</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.double</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.begin.email-address</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.email-address</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.quoted.unicode.double-quotes</string> | |
| <key>match</key> | |
| <string>(“)\s*([^”@\s]+@[^”@\s]+)\s*(”)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.double</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.begin.email-address</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.email-address</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.quoted.unicode.single-quotes</string> | |
| <key>match</key> | |
| <string>(‘)\s*([^’@\s]+@[^’@\s]+)\s*(’)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.single</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.begin.email-address</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.email-address</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.quoted.backticks</string> | |
| <key>match</key> | |
| <string>(`)\s*([^`@\s]+@[^`@\s]+)\s*(`)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.template.backticks</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.begin.email-address</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.email-address</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.quoted.single-quotes</string> | |
| <key>match</key> | |
| <string>(`|')\s*([^'@\s]+@[^'@\s]+)\s*(')</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.single</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.begin.email-address</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.email-address</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>emailUnquoted</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.email-address.unquoted</string> | |
| <key>match</key> | |
| <string>(?x) | |
| ((?!\.) (?:[^\[\(<⟨«"'\s@.]|\.(?!\.))++ @ | |
| ([^\[\(<⟨«"'\s@.]+?\.(?=[^\.\s])(?:[^\[\(<⟨«"'\s@.]|\.(?!\.))++))</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.unquoted.email-address</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#emailInnards</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>emailInnards</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.other.reference.link.underline.email</string> | |
| <key>match</key> | |
| <string>(?:\G|^|(?<=\n)).+</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\G([^@]*)(@)(.*)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.local-part</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.separator.at-sign.email</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.domain</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>esc</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.character.escape.backslash</string> | |
| <key>match</key> | |
| <string>(\\).</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.escape.backslash</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>eql</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.key-value.equals-sign</string> | |
| <key>match</key> | |
| <string>=</string> | |
| </dict> | |
| <key>float</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#floatExp</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#floatNoExp</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>floatExp</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.float.real.decimal.dec.exponential.scientific</string> | |
| <key>match</key> | |
| <string>[-+]?(?:[0-9]*\.[0-9]+|[0-9]+\.)(?:[eE][-+]?[0-9]+)++</string> | |
| </dict> | |
| <key>floatNoExp</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.float.real.decimal.dec</string> | |
| <key>match</key> | |
| <string>[-+]?(?:[0-9]*\.[0-9]+|[0-9]+\.)++</string> | |
| </dict> | |
| <key>hex</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.integer.int.hexadecimal.hex</string> | |
| <key>match</key> | |
| <string>[-+]?[A-Fa-f0-9]+</string> | |
| </dict> | |
| <key>hexNoSign</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.integer.int.hexadecimal.hex</string> | |
| <key>match</key> | |
| <string>[A-Fa-f0-9]+</string> | |
| </dict> | |
| <key>int</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#intExp</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#intNoExp</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>intExp</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.integer.int.decimal.dec.exponential.scientific</string> | |
| <key>match</key> | |
| <string>[-+]?[0-9]+[eE][-+]?[0-9]+</string> | |
| </dict> | |
| <key>intNoExp</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.integer.int.decimal.dec</string> | |
| <key>match</key> | |
| <string>[-+]?[0-9]+</string> | |
| </dict> | |
| <key>ip</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.numeric.other.ip-address</string> | |
| <key>match</key> | |
| <string>(?:\d+\.){3,}\d+(?=\s|$)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>kolon</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.key-value.colon</string> | |
| <key>match</key> | |
| <string>:</string> | |
| </dict> | |
| <key>num</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#float</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#int</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>op</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#opBitAssign</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opMathAssign</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opBit</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opFix</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opCmp</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opLog</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#opMath</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opBit</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\^</string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.xor</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>~</string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.not</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>&</string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.and</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\|</string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.or</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string><<</string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.shift.left</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>>>></string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.shift.right.unsigned</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>>></string> | |
| <key>name</key> | |
| <string>keyword.operator.bitwise.shift.right.signed</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opBitAssign</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\^=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.xor</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>~=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.not</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>&=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.and</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\|=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.or</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string><<=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.shift.left</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>>>>=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.shift.right.unsigned</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>>>=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.bitwise.shift.right.signed</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opCmp</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string><=></string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.starship.spaceship</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string><=</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.less-than-or-equal-to.lte</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string><</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.less-than.lt</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>>=</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.greater-than-or-equal-to.gte</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>></string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.greater-than.gt</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>===</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq.strict</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>==</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>!==</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne.strict</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>!=</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opFix</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\+{2}</string> | |
| <key>name</key> | |
| <string>keyword.operator.increment</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>-{2}</string> | |
| <key>name</key> | |
| <string>keyword.operator.decrement</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opLog</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>!!</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.boolean.cast</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>!</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.boolean.not.negation.negate</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>&&</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.boolean.and</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\|{2}</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.boolean.or</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\?{2}</string> | |
| <key>name</key> | |
| <string>keyword.operator.logical.boolean.or.nullish</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opMath</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\*{2}|\^</string> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.exponentiation.exponent.exp.power</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\+</string> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.addition.add.plus</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\*</string> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.multiplication.multiply.times</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>/</string> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.division.divide</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>%</string> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.remainder.modulo.modulus.mod</string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.arithmetic.subtraction.subtract.minus</string> | |
| <key>match</key> | |
| <string>[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>opMathAssign</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\*{2}=|\^=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.exponentiation.exponent.exp.power</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\+=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.addition.add.plus</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\*=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.multiplication.multiply.times</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>/=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.division.divide</string> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>%=</string> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.remainder.modulo.modulus.mod</string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.assignment.arithmetic.subtraction.subtract.minus</string> | |
| <key>match</key> | |
| <string>[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]=</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>semi</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.semicolon</string> | |
| <key>match</key> | |
| <string>;</string> | |
| </dict> | |
| <key>str</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#strDouble</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#strSingle</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>strDouble</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.double</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</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#esc</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>strSingle</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.single</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</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#esc</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>tab</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>^\t+</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\t</string> | |
| <key>name</key> | |
| <string>punctuation.whitespace.leading.tab.hard-tab</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\t+$</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>\t</string> | |
| <key>name</key> | |
| <string>punctuation.whitespace.trailing.tab.hard-tab</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>\t</string> | |
| <key>name</key> | |
| <string>punctuation.whitespace.tab.hard-tab</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>url</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>(?x) | |
| ("|'|\b) | |
| ( | |
| # Not part of official URL schemes, included here for convenience | |
| (?: (?:jdbc|mvn|odbc|view-source) :)? | |
| # Common protocols/URI schemes | |
| ( https? | |
| | s?ftp | |
| | ftps | |
| | file | |
| | wss? | |
| | (?:git|svn) (?:\+(?:https?|ssh))? | |
| | ssh | |
| # Less common URI schemes | |
| | aaas? | |
| | acap | |
| | adiumxtra | |
| | admin | |
| | afp | |
| | app | |
| | atom | |
| | aurora | |
| | aw | |
| | beshare | |
| | bolo | |
| | cassandra | |
| | chrome(?:-extension)? | |
| | coaps? | |
| | cockroach | |
| | content | |
| | couchbase | |
| | crid | |
| | cvs | |
| | dict | |
| | dns | |
| | docker | |
| | ed2k | |
| | facetime | |
| | feed | |
| | finger | |
| | fish | |
| | gemini | |
| | github(?:-(?:mac|linux|windows))? | |
| | gizmoproject | |
| | gopher | |
| | go | |
| | hcp | |
| | imap | |
| | irc[6s]? | |
| | issue | |
| | keyparc | |
| | lastfm | |
| | ldaps? | |
| | man(?:-?page)? | |
| | maria(?:db)? | |
| | market | |
| | message | |
| | mms | |
| | modern-?sqlite | |
| | mongodb | |
| | ms-help | |
| | mssql | |
| | mumble | |
| | my?sql | |
| | netezza | |
| | nfs | |
| | ni | |
| | nntp | |
| | notes | |
| | oleodbc | |
| | oracle | |
| | payto | |
| | pgsql | |
| | pg | |
| | pop | |
| | postgres(?:ql)? | |
| | postgresql | |
| | presto(?:dbs?|s) | |
| | reload | |
| | resource | |
| | res | |
| | rmi | |
| | rsync | |
| | rtmf?p | |
| | rtmp | |
| | s3 | |
| | saphana | |
| | secondlife | |
| | sgn | |
| | shttp | |
| | slack | |
| | smb | |
| | snmp | |
| | soldat | |
| | sqlite3? | |
| | sqlserver | |
| | steam | |
| | stratum\+[a-z]+ | |
| | stuns? | |
| | teamspeak | |
| | telnet | |
| | turns? | |
| | txmt | |
| | udp | |
| | unreal | |
| | ut2004 | |
| | ventrilo | |
| | vnc | |
| | wais | |
| | web\+[a-z]+ | |
| | webcal | |
| | wtai | |
| | wyciwyg | |
| | xmpp | |
| | xri | |
| | z39\.50[rs] | |
| | zoommtg | |
| # User-defined/arbitrary URI scheme starting with `x-` | |
| | x(?:-[a-z][a-z0-9]*)++ | |
| ) :// | |
| # Path specifier | |
| (?: | |
| (?! \#\w*\#) | |
| (?: [-:\@\w.,~%+_/?=&\#;|!]) | |
| )+ | |
| # Don't include trailing punctuation | |
| (?<![-.,?:\#;]) | |
| ) | |
| (\1)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.link.begin.url</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.other.reference.link.underline.$3.url</string> | |
| </dict> | |
| <key>4</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.link.end.url</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>match</key> | |
| <string>(?x) | |
| ("|'|\b) | |
| ( | |
| mailto (:) | |
| (?: | |
| (?! \#\w*\#) | |
| (?: [-:@\w.,~%+_/?=&\#;|!]) | |
| )+ | |
| (?<![-.,?:\#;]) | |
| ) | |
| (\1)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.link.begin.url</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.other.reference.link.underline.mailto.url</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.separator.delimiter.scheme.url</string> | |
| </dict> | |
| <key>4</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.link.end.url</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>version</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.other.version-string</string> | |
| <key>match</key> | |
| <string>(?x) | |
| ("|'|\b) | |
| ([vV]?) | |
| (0 | [1-9]\d*) (\.) | |
| (0 | [1-9]\d*) (\.) | |
| (0 | [1-9]\d*) | |
| (?: | |
| (-) | |
| ( | |
| (?: 0 | |
| | [1-9]\d* | |
| | \d*[a-zA-Z-][0-9a-zA-Z-]* | |
| ) | |
| (?: | |
| \. | |
| (?: 0 | |
| | [1-9]\d* | |
| | \d*[a-zA-Z-][0-9a-zA-Z-]* | |
| ) | |
| )* | |
| ) | |
| )? | |
| (?: | |
| (\+) | |
| ( | |
| [0-9a-zA-Z-]+ | |
| (?:\.[0-9a-zA-Z-]+)* | |
| ) | |
| )? | |
| (\1)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.version-string.begin</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.version-prefix</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.major.release-number</string> | |
| </dict> | |
| <key>4</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>5</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.minor.release-number</string> | |
| </dict> | |
| <key>6</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>7</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.patch.release-number</string> | |
| </dict> | |
| <key>8</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dash</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>9</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.prerelease.release-number</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>10</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.delimiter.separator.plus</string> | |
| </dict> | |
| <key>11</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.build-metadata</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#dot</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>12</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.version-string.end</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </plist> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "scopeName": "etc", | |
| "patterns": [ | |
| { | |
| "include": "#comma" | |
| }, | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "#esc" | |
| }, | |
| { | |
| "include": "#float" | |
| }, | |
| { | |
| "include": "#int" | |
| }, | |
| { | |
| "include": "#str" | |
| }, | |
| { | |
| "include": "#colon" | |
| }, | |
| { | |
| "include": "#eql" | |
| }, | |
| { | |
| "include": "#dot" | |
| } | |
| ], | |
| "repository": { | |
| "base64": { | |
| "name": "constant.numeric.base64", | |
| "match": "[A-Za-z0-9+/=]{4,}" | |
| }, | |
| "comma": { | |
| "name": "punctuation.separator.delimiter.comma", | |
| "match": "," | |
| }, | |
| "comment": { | |
| "patterns": [ | |
| { | |
| "include": "#commentHash" | |
| } | |
| ] | |
| }, | |
| "commentHash": { | |
| "name": "comment.line.number-sign", | |
| "begin": "#", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment" | |
| } | |
| } | |
| }, | |
| "commentSemi": { | |
| "name": "comment.line.semicolon", | |
| "begin": ";+", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment" | |
| } | |
| } | |
| }, | |
| "commentSlash": { | |
| "name": "comment.line.double-slash", | |
| "begin": "//", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment" | |
| } | |
| } | |
| }, | |
| "bareword": { | |
| "name": "string.unquoted.bareword", | |
| "match": "[^\"\\s][\\S]*" | |
| }, | |
| "bool": { | |
| "name": "constant.logical.bool.boolean.${1:/downcase}", | |
| "match": "\\b(true|false|TRUE|FALSE)\\b" | |
| }, | |
| "bracket": { | |
| "patterns": [ | |
| { | |
| "match": "\\{", | |
| "name": "punctuation.definition.bracket.curly.brace.begin" | |
| }, | |
| { | |
| "match": "\\}", | |
| "name": "punctuation.definition.bracket.curly.brace.end" | |
| }, | |
| { | |
| "match": "\\[", | |
| "name": "punctuation.definition.bracket.square.begin" | |
| }, | |
| { | |
| "match": "\\]", | |
| "name": "punctuation.definition.bracket.square.end" | |
| }, | |
| { | |
| "match": "\\(", | |
| "name": "punctuation.definition.bracket.round.parenthesis.begin" | |
| }, | |
| { | |
| "match": "\\)", | |
| "name": "punctuation.definition.bracket.round.parenthesis.end" | |
| }, | |
| { | |
| "match": "<", | |
| "name": "punctuation.definition.bracket.angle.ascii.begin" | |
| }, | |
| { | |
| "match": ">", | |
| "name": "punctuation.definition.bracket.angle.ascii.end" | |
| }, | |
| { | |
| "match": "⟨", | |
| "name": "punctuation.definition.bracket.angle.unicode.begin" | |
| }, | |
| { | |
| "match": "⟩", | |
| "name": "punctuation.definition.bracket.angle.unicode.end" | |
| } | |
| ] | |
| }, | |
| "colon": { | |
| "name": "punctuation.delimiter.separator.colon", | |
| "match": ":" | |
| }, | |
| "dash": { | |
| "name": "punctuation.delimiter.separator.dash.hyphen", | |
| "match": "-" | |
| }, | |
| "dots": { | |
| "patterns": [ | |
| { | |
| "include": "#ellipsis" | |
| }, | |
| { | |
| "include": "#dotPair" | |
| }, | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| }, | |
| "dot": { | |
| "name": "punctuation.delimiter.separator.property.period.dot", | |
| "match": "\\." | |
| }, | |
| "dotPair": { | |
| "name": "keyword.operator.punctuation.dots.splat.range.spread.rest", | |
| "match": "\\.\\.|‥" | |
| }, | |
| "ellipsis": { | |
| "name": "keyword.operator.punctuation.ellipsis.splat.range.spread.rest", | |
| "match": "\\.{3}|…" | |
| }, | |
| "dotTrail": { | |
| "name": "punctuation.delimiter.separator.dotted.border.leader.dots", | |
| "match": "\\.{4,}" | |
| }, | |
| "email": { | |
| "patterns": [ | |
| { | |
| "include": "#emailBracketed" | |
| }, | |
| { | |
| "include": "#emailQuoted" | |
| }, | |
| { | |
| "include": "#emailUnquoted" | |
| } | |
| ] | |
| }, | |
| "emailBracketed": { | |
| "patterns": [ | |
| { | |
| "name": "meta.email-address.bracketed.ascii.angle-brackets", | |
| "match": "(<)\\s*([^>@\\s]+@[^>@\\s]+)\\s*(>)", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.bracketed.unicode.angle-brackets", | |
| "match": "(⟨)\\s*([^⟩@\\s]+@[^⟩@\\s]+)\\s*(⟩)", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.bracketed.guillemots", | |
| "match": "(«)\\s*([^»@\\s]+@[^»@\\s]+)\\s*(»)", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.bracketed.round-brackets", | |
| "match": "(\\()\\s*([^\\)@\\s]+@[^\\)@\\s]+)\\s*(\\))", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.bracketed.curly-brackets", | |
| "match": "({)\\s*([^}@\\s]+@[^}@\\s]+)\\s*(})", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.bracketed.square-brackets", | |
| "match": "(\\[)\\s*([^\\]@\\s]+@[^\\]@\\s]+)\\s*(\\])", | |
| "captures": { | |
| "1": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#bracket" | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "emailQuoted": { | |
| "patterns": [ | |
| { | |
| "name": "meta.email-address.quoted.ascii.double-quotes", | |
| "match": "(\")\\s*([^\"@\\s]+@[^\"@\\s]+)\\s*(\")", | |
| "captures": { | |
| "0": { | |
| "name": "string.quoted.double" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.string.begin.email-address" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.string.end.email-address" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.quoted.unicode.double-quotes", | |
| "match": "(“)\\s*([^”@\\s]+@[^”@\\s]+)\\s*(”)", | |
| "captures": { | |
| "0": { | |
| "name": "string.quoted.double" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.string.begin.email-address" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.string.end.email-address" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.quoted.unicode.single-quotes", | |
| "match": "(‘)\\s*([^’@\\s]+@[^’@\\s]+)\\s*(’)", | |
| "captures": { | |
| "0": { | |
| "name": "string.quoted.single" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.string.begin.email-address" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.string.end.email-address" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.quoted.backticks", | |
| "match": "(`)\\s*([^`@\\s]+@[^`@\\s]+)\\s*(`)", | |
| "captures": { | |
| "0": { | |
| "name": "string.quoted.template.backticks" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.string.begin.email-address" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.string.end.email-address" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "meta.email-address.quoted.single-quotes", | |
| "match": "(`|')\\s*([^'@\\s]+@[^'@\\s]+)\\s*(')", | |
| "captures": { | |
| "0": { | |
| "name": "string.quoted.single" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.string.begin.email-address" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.string.end.email-address" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "emailUnquoted": { | |
| "name": "meta.email-address.unquoted", | |
| "match": "(?x)\n((?!\\.) (?:[^\\[\\(<⟨«\"'\\s@.]|\\.(?!\\.))++ @\n([^\\[\\(<⟨«\"'\\s@.]+?\\.(?=[^\\.\\s])(?:[^\\[\\(<⟨«\"'\\s@.]|\\.(?!\\.))++))", | |
| "captures": { | |
| "1": { | |
| "name": "string.unquoted.email-address", | |
| "patterns": [ | |
| { | |
| "include": "#emailInnards" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "emailInnards": { | |
| "name": "constant.other.reference.link.underline.email", | |
| "match": "(?:\\G|^|(?<=\\n)).+", | |
| "captures": { | |
| "0": { | |
| "patterns": [ | |
| { | |
| "match": "\\G([^@]*)(@)(.*)", | |
| "captures": { | |
| "1": { | |
| "name": "meta.local-part" | |
| }, | |
| "2": { | |
| "name": "punctuation.separator.at-sign.email" | |
| }, | |
| "3": { | |
| "name": "meta.domain" | |
| } | |
| } | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "esc": { | |
| "name": "constant.character.escape.backslash", | |
| "match": "(\\\\).", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.escape.backslash" | |
| } | |
| } | |
| }, | |
| "eql": { | |
| "name": "keyword.operator.assignment.key-value.equals-sign", | |
| "match": "=" | |
| }, | |
| "float": { | |
| "patterns": [ | |
| { | |
| "include": "#floatExp" | |
| }, | |
| { | |
| "include": "#floatNoExp" | |
| } | |
| ] | |
| }, | |
| "floatExp": { | |
| "name": "constant.numeric.float.real.decimal.dec.exponential.scientific", | |
| "match": "[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)(?:[eE][-+]?[0-9]+)++" | |
| }, | |
| "floatNoExp": { | |
| "name": "constant.numeric.float.real.decimal.dec", | |
| "match": "[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)++" | |
| }, | |
| "hex": { | |
| "name": "constant.numeric.integer.int.hexadecimal.hex", | |
| "match": "[-+]?[A-Fa-f0-9]+" | |
| }, | |
| "hexNoSign": { | |
| "name": "constant.numeric.integer.int.hexadecimal.hex", | |
| "match": "[A-Fa-f0-9]+" | |
| }, | |
| "int": { | |
| "patterns": [ | |
| { | |
| "include": "#intExp" | |
| }, | |
| { | |
| "include": "#intNoExp" | |
| } | |
| ] | |
| }, | |
| "intExp": { | |
| "name": "constant.numeric.integer.int.decimal.dec.exponential.scientific", | |
| "match": "[-+]?[0-9]+[eE][-+]?[0-9]+" | |
| }, | |
| "intNoExp": { | |
| "name": "constant.numeric.integer.int.decimal.dec", | |
| "match": "[-+]?[0-9]+" | |
| }, | |
| "ip": { | |
| "name": "constant.numeric.other.ip-address", | |
| "match": "(?:\\d+\\.){3,}\\d+(?=\\s|$)", | |
| "captures": { | |
| "0": { | |
| "patterns": [ | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "kolon": { | |
| "name": "keyword.operator.assignment.key-value.colon", | |
| "match": ":" | |
| }, | |
| "num": { | |
| "patterns": [ | |
| { | |
| "include": "#float" | |
| }, | |
| { | |
| "include": "#int" | |
| } | |
| ] | |
| }, | |
| "op": { | |
| "patterns": [ | |
| { | |
| "include": "#opBitAssign" | |
| }, | |
| { | |
| "include": "#opMathAssign" | |
| }, | |
| { | |
| "include": "#opBit" | |
| }, | |
| { | |
| "include": "#opFix" | |
| }, | |
| { | |
| "include": "#opCmp" | |
| }, | |
| { | |
| "include": "#opLog" | |
| }, | |
| { | |
| "include": "#opMath" | |
| } | |
| ] | |
| }, | |
| "opBit": { | |
| "patterns": [ | |
| { | |
| "match": "\\^", | |
| "name": "keyword.operator.bitwise.xor" | |
| }, | |
| { | |
| "match": "~", | |
| "name": "keyword.operator.bitwise.not" | |
| }, | |
| { | |
| "match": "&", | |
| "name": "keyword.operator.bitwise.and" | |
| }, | |
| { | |
| "match": "\\|", | |
| "name": "keyword.operator.bitwise.or" | |
| }, | |
| { | |
| "match": "<<", | |
| "name": "keyword.operator.bitwise.shift.left" | |
| }, | |
| { | |
| "match": ">>>", | |
| "name": "keyword.operator.bitwise.shift.right.unsigned" | |
| }, | |
| { | |
| "match": ">>", | |
| "name": "keyword.operator.bitwise.shift.right.signed" | |
| } | |
| ] | |
| }, | |
| "opBitAssign": { | |
| "patterns": [ | |
| { | |
| "match": "\\^=", | |
| "name": "keyword.operator.assignment.bitwise.xor" | |
| }, | |
| { | |
| "match": "~=", | |
| "name": "keyword.operator.assignment.bitwise.not" | |
| }, | |
| { | |
| "match": "&=", | |
| "name": "keyword.operator.assignment.bitwise.and" | |
| }, | |
| { | |
| "match": "\\|=", | |
| "name": "keyword.operator.assignment.bitwise.or" | |
| }, | |
| { | |
| "match": "<<=", | |
| "name": "keyword.operator.assignment.bitwise.shift.left" | |
| }, | |
| { | |
| "match": ">>>=", | |
| "name": "keyword.operator.assignment.bitwise.shift.right.unsigned" | |
| }, | |
| { | |
| "match": ">>=", | |
| "name": "keyword.operator.assignment.bitwise.shift.right.signed" | |
| } | |
| ] | |
| }, | |
| "opCmp": { | |
| "patterns": [ | |
| { | |
| "match": "<=>", | |
| "name": "keyword.operator.logical.comparison.starship.spaceship" | |
| }, | |
| { | |
| "match": "<=", | |
| "name": "keyword.operator.logical.comparison.less-than-or-equal-to.lte" | |
| }, | |
| { | |
| "match": "<", | |
| "name": "keyword.operator.logical.comparison.less-than.lt" | |
| }, | |
| { | |
| "match": ">=", | |
| "name": "keyword.operator.logical.comparison.greater-than-or-equal-to.gte" | |
| }, | |
| { | |
| "match": ">", | |
| "name": "keyword.operator.logical.comparison.greater-than.gt" | |
| }, | |
| { | |
| "match": "===", | |
| "name": "keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq.strict" | |
| }, | |
| { | |
| "match": "==", | |
| "name": "keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq" | |
| }, | |
| { | |
| "match": "!==", | |
| "name": "keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne.strict" | |
| }, | |
| { | |
| "match": "!=", | |
| "name": "keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne" | |
| } | |
| ] | |
| }, | |
| "opFix": { | |
| "patterns": [ | |
| { | |
| "match": "\\+{2}", | |
| "name": "keyword.operator.increment" | |
| }, | |
| { | |
| "match": "-{2}", | |
| "name": "keyword.operator.decrement" | |
| } | |
| ] | |
| }, | |
| "opLog": { | |
| "patterns": [ | |
| { | |
| "match": "!!", | |
| "name": "keyword.operator.logical.boolean.cast" | |
| }, | |
| { | |
| "match": "!", | |
| "name": "keyword.operator.logical.boolean.not.negation.negate" | |
| }, | |
| { | |
| "match": "&&", | |
| "name": "keyword.operator.logical.boolean.and" | |
| }, | |
| { | |
| "match": "\\|{2}", | |
| "name": "keyword.operator.logical.boolean.or" | |
| }, | |
| { | |
| "match": "\\?{2}", | |
| "name": "keyword.operator.logical.boolean.or.nullish" | |
| } | |
| ] | |
| }, | |
| "opMath": { | |
| "patterns": [ | |
| { | |
| "match": "\\*{2}|\\^", | |
| "name": "keyword.operator.arithmetic.exponentiation.exponent.exp.power" | |
| }, | |
| { | |
| "match": "\\+", | |
| "name": "keyword.operator.arithmetic.addition.add.plus" | |
| }, | |
| { | |
| "match": "\\*", | |
| "name": "keyword.operator.arithmetic.multiplication.multiply.times" | |
| }, | |
| { | |
| "match": "/", | |
| "name": "keyword.operator.arithmetic.division.divide" | |
| }, | |
| { | |
| "match": "%", | |
| "name": "keyword.operator.arithmetic.remainder.modulo.modulus.mod" | |
| }, | |
| { | |
| "name": "keyword.operator.arithmetic.subtraction.subtract.minus", | |
| "match": "[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]" | |
| } | |
| ] | |
| }, | |
| "opMathAssign": { | |
| "patterns": [ | |
| { | |
| "match": "\\*{2}=|\\^=", | |
| "name": "keyword.operator.assignment.arithmetic.exponentiation.exponent.exp.power" | |
| }, | |
| { | |
| "match": "\\+=", | |
| "name": "keyword.operator.assignment.arithmetic.addition.add.plus" | |
| }, | |
| { | |
| "match": "\\*=", | |
| "name": "keyword.operator.assignment.arithmetic.multiplication.multiply.times" | |
| }, | |
| { | |
| "match": "/=", | |
| "name": "keyword.operator.assignment.arithmetic.division.divide" | |
| }, | |
| { | |
| "match": "%=", | |
| "name": "keyword.operator.assignment.arithmetic.remainder.modulo.modulus.mod" | |
| }, | |
| { | |
| "name": "keyword.operator.assignment.arithmetic.subtraction.subtract.minus", | |
| "match": "[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]=" | |
| } | |
| ] | |
| }, | |
| "semi": { | |
| "name": "punctuation.delimiter.separator.semicolon", | |
| "match": ";" | |
| }, | |
| "str": { | |
| "patterns": [ | |
| { | |
| "include": "#strDouble" | |
| }, | |
| { | |
| "include": "#strSingle" | |
| } | |
| ] | |
| }, | |
| "strDouble": { | |
| "name": "string.quoted.double", | |
| "begin": "\"", | |
| "end": "\"|(?=$)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "include": "#esc" | |
| } | |
| ] | |
| }, | |
| "strSingle": { | |
| "name": "string.quoted.single", | |
| "begin": "'", | |
| "end": "'|(?=$)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "include": "#esc" | |
| } | |
| ] | |
| }, | |
| "tab": { | |
| "patterns": [ | |
| { | |
| "match": "^\\t+", | |
| "captures": { | |
| "0": { | |
| "patterns": [ | |
| { | |
| "match": "\\t", | |
| "name": "punctuation.whitespace.leading.tab.hard-tab" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "match": "\\t+$", | |
| "captures": { | |
| "0": { | |
| "patterns": [ | |
| { | |
| "match": "\\t", | |
| "name": "punctuation.whitespace.trailing.tab.hard-tab" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| { | |
| "match": "\\t", | |
| "name": "punctuation.whitespace.tab.hard-tab" | |
| } | |
| ] | |
| }, | |
| "url": { | |
| "patterns": [ | |
| { | |
| "match": "(?x)\n(\"|'|\\b)\n(\n\t# Not part of official URL schemes, included here for convenience\n\t(?: (?:jdbc|mvn|odbc|view-source) :)?\n\n\t# Common protocols/URI schemes\n\t( https?\n\t| s?ftp\n\t| ftps\n\t| file\n\t| wss?\n\t| (?:git|svn) (?:\\+(?:https?|ssh))?\n\t| ssh\n\t\n\t# Less common URI schemes\n\t| aaas?\n\t| acap\n\t| adiumxtra\n\t| admin\n\t| afp\n\t| app\n\t| atom\n\t| aurora\n\t| aw\n\t| beshare\n\t| bolo\n\t| cassandra\n\t| chrome(?:-extension)?\n\t| coaps?\n\t| cockroach\n\t| content\n\t| couchbase\n\t| crid\n\t| cvs\n\t| dict\n\t| dns\n\t| docker\n\t| ed2k\n\t| facetime\n\t| feed\n\t| finger\n\t| fish\n\t| gemini\n\t| github(?:-(?:mac|linux|windows))?\n\t| gizmoproject\n\t| gopher\n\t| go\n\t| hcp\n\t| imap\n\t| irc[6s]?\n\t| issue\n\t| keyparc\n\t| lastfm\n\t| ldaps?\n\t| man(?:-?page)?\n\t| maria(?:db)?\n\t| market\n\t| message\n\t| mms\n\t| modern-?sqlite\n\t| mongodb\n\t| ms-help\n\t| mssql\n\t| mumble\n\t| my?sql\n\t| netezza\n\t| nfs\n\t| ni\n\t| nntp\n\t| notes\n\t| oleodbc\n\t| oracle\n\t| payto\n\t| pgsql\n\t| pg\n\t| pop\n\t| postgres(?:ql)?\n\t| postgresql\n\t| presto(?:dbs?|s)\n\t| reload\n\t| resource\n\t| res\n\t| rmi\n\t| rsync\n\t| rtmf?p\n\t| rtmp\n\t| s3\n\t| saphana\n\t| secondlife\n\t| sgn\n\t| shttp\n\t| slack\n\t| smb\n\t| snmp\n\t| soldat\n\t| sqlite3?\n\t| sqlserver\n\t| steam\n\t| stratum\\+[a-z]+\n\t| stuns?\n\t| teamspeak\n\t| telnet\n\t| turns?\n\t| txmt\n\t| udp\n\t| unreal\n\t| ut2004\n\t| ventrilo\n\t| vnc\n\t| wais\n\t| web\\+[a-z]+\n\t| webcal\n\t| wtai\n\t| wyciwyg\n\t| xmpp\n\t| xri\n\t| z39\\.50[rs]\n\t| zoommtg\n\t\n\t# User-defined/arbitrary URI scheme starting with `x-`\n\t| x(?:-[a-z][a-z0-9]*)++\n\t) ://\n\t\n\t# Path specifier\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:\\@\\w.,~%+_/?=&\\#;|!])\n\t)+\n\t\n\t# Don't include trailing punctuation\n\t(?<![-.,?:\\#;])\n)\n(\\1)", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.link.begin.url" | |
| }, | |
| "2": { | |
| "name": "constant.other.reference.link.underline.$3.url" | |
| }, | |
| "4": { | |
| "name": "punctuation.definition.link.end.url" | |
| } | |
| } | |
| }, | |
| { | |
| "match": "(?x)\n(\"|'|\\b)\n(\n\tmailto (:)\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:@\\w.,~%+_/?=&\\#;|!])\n\t)+\n\t(?<![-.,?:\\#;])\n)\n(\\1)", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.link.begin.url" | |
| }, | |
| "2": { | |
| "name": "constant.other.reference.link.underline.mailto.url" | |
| }, | |
| "3": { | |
| "name": "punctuation.separator.delimiter.scheme.url" | |
| }, | |
| "4": { | |
| "name": "punctuation.definition.link.end.url" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "version": { | |
| "name": "constant.other.version-string", | |
| "match": "(?x)\n(\"|'|\\b)\n([vV]?)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*)\n(?:\n\t(-)\n\t(\n\t\t(?: 0\n\t\t| [1-9]\\d*\n\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t)\n\t\t\n\t\t(?:\n\t\t\t\\.\n\t\t\t(?: 0\n\t\t\t| [1-9]\\d*\n\t\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t\t)\n\t\t)*\n\t)\n)?\n(?:\n\t(\\+)\n\t(\n\t\t[0-9a-zA-Z-]+\n\t\t(?:\\.[0-9a-zA-Z-]+)*\n\t)\n)?\n(\\1)", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.version-string.begin" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.version-prefix" | |
| }, | |
| "3": { | |
| "name": "meta.major.release-number" | |
| }, | |
| "4": { | |
| "patterns": [ | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| }, | |
| "5": { | |
| "name": "meta.minor.release-number" | |
| }, | |
| "6": { | |
| "patterns": [ | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| }, | |
| "7": { | |
| "name": "meta.patch.release-number" | |
| }, | |
| "8": { | |
| "patterns": [ | |
| { | |
| "include": "#dash" | |
| } | |
| ] | |
| }, | |
| "9": { | |
| "name": "meta.prerelease.release-number", | |
| "patterns": [ | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| }, | |
| "10": { | |
| "name": "punctuation.delimiter.separator.plus" | |
| }, | |
| "11": { | |
| "name": "meta.build-metadata", | |
| "patterns": [ | |
| { | |
| "include": "#dot" | |
| } | |
| ] | |
| }, | |
| "12": { | |
| "name": "punctuation.definition.version-string.end" | |
| } | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version='1.0' encoding='UTF-8'?> | |
| <!DOCTYPE plist | |
| PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' | |
| 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>name</key> | |
| <string>SmPL</string> | |
| <key>scopeName</key> | |
| <string>source.smpl</string> | |
| <key>fileTypes</key> | |
| <array> | |
| <string>cocci</string> | |
| </array> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#main</string> | |
| </dict> | |
| </array> | |
| <key>repository</key> | |
| <dict> | |
| <key>main</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#include</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#virtual</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#control</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#scripts</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#metavariables</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#variables</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineAdded</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineDeleted</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineMatched</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#when</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>comment</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.triple-slash.smpl</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.comment.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.double-slash.smpl</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.comment.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>control</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.required.dots.smpl</string> | |
| <key>match</key> | |
| <string><\+(?=\.{3})|(?<=\.{3})\+></string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.optional.dots.smpl</string> | |
| <key>match</key> | |
| <string><(?=\.{3})|(?<=\.{3})></string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.flow.dots.smpl</string> | |
| <key>match</key> | |
| <string>\.{3}</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>include</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.preprocessor.$1.smpl</string> | |
| <key>match</key> | |
| <string>^\s*(include|using)\s+(?:("[^"]*")|(<.*>))</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.directive.$1.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>etc#str</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#isoPath</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>isoPath</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.other.lt-gt.include.smpl</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.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineAdded</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.inserted.diff.smpl</string> | |
| <key>match</key> | |
| <string>^(\+).*</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.inserted.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineDeleted</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.deleted.diff.smpl</string> | |
| <key>match</key> | |
| <string>^(-).*</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.deleted.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineMatched</key> | |
| <dict> | |
| <key>match</key> | |
| <string>^(\*)\s*(\S.*)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.semantic-match.diff.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.changed.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>metavariables</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^(@).*(@)\s*$</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>scripts</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>begin</key> | |
| <string>(^(@).*?(?<=\s|@)(script|initialize|finalize):python(?=\s|@).*?(@)\s*$)</string> | |
| <key>end</key> | |
| <string>^(?=@(?!@\s*$))</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(?<=@@)\s*$\n?</string> | |
| <key>end</key> | |
| <string>^(?=@)</string> | |
| <key>contentName</key> | |
| <string>source.embedded.python</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>source.python</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(^(@).*?(?<=\s|@)(script|initialize|finalize):ocaml(?=\s|@).*?(@)\s*$)</string> | |
| <key>end</key> | |
| <string>^(?=@(?!@\s*$))</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(?<=@@)\s*$\n?</string> | |
| <key>end</key> | |
| <string>^(?=@)</string> | |
| <key>contentName</key> | |
| <string>source.embedded.ocaml</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>source.ocaml</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>variables</key> | |
| <dict> | |
| <key>name</key> | |
| <string>variable.at-prefix.smpl</string> | |
| <key>match</key> | |
| <string>(?<!^)(@)[\w]+</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.variable.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>virtual</key> | |
| <dict> | |
| <key>match</key> | |
| <string>^\s*(virtual)\s+(.*)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.virtual.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>[^\s,]+</string> | |
| <key>name</key> | |
| <string>entity.name.rule.smpl</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>etc#comma</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>when</key> | |
| <dict> | |
| <key>match</key> | |
| <string>(?<=\s|\.{3})(when)\s*(any(?:\s|$)|!=)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.flow.when.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.comparison.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </plist> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "name": "SmPL", | |
| "scopeName": "source.smpl", | |
| "fileTypes": [ | |
| "cocci" | |
| ], | |
| "patterns": [ | |
| { | |
| "include": "#main" | |
| } | |
| ], | |
| "repository": { | |
| "main": { | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "#include" | |
| }, | |
| { | |
| "include": "#virtual" | |
| }, | |
| { | |
| "include": "#control" | |
| }, | |
| { | |
| "include": "#scripts" | |
| }, | |
| { | |
| "include": "#metavariables" | |
| }, | |
| { | |
| "include": "#variables" | |
| }, | |
| { | |
| "include": "#lineAdded" | |
| }, | |
| { | |
| "include": "#lineDeleted" | |
| }, | |
| { | |
| "include": "#lineMatched" | |
| }, | |
| { | |
| "include": "#when" | |
| } | |
| ] | |
| }, | |
| "comment": { | |
| "patterns": [ | |
| { | |
| "name": "comment.line.triple-slash.smpl", | |
| "begin": "///", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "comment.line.double-slash.smpl", | |
| "begin": "//", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment.smpl" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "control": { | |
| "patterns": [ | |
| { | |
| "name": "storage.modifier.required.dots.smpl", | |
| "match": "<\\+(?=\\.{3})|(?<=\\.{3})\\+>" | |
| }, | |
| { | |
| "name": "storage.modifier.optional.dots.smpl", | |
| "match": "<(?=\\.{3})|(?<=\\.{3})>" | |
| }, | |
| { | |
| "name": "keyword.control.flow.dots.smpl", | |
| "match": "\\.{3}" | |
| } | |
| ] | |
| }, | |
| "include": { | |
| "name": "meta.preprocessor.$1.smpl", | |
| "match": "^\\s*(include|using)\\s+(?:(\"[^\"]*\")|(<.*>))", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.control.directive.$1.smpl" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "etc#str" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#isoPath" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "isoPath": { | |
| "name": "string.quoted.other.lt-gt.include.smpl", | |
| "begin": "<", | |
| "end": ">", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin.smpl" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end.smpl" | |
| } | |
| } | |
| }, | |
| "lineAdded": { | |
| "name": "markup.inserted.diff.smpl", | |
| "match": "^(\\+).*", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.inserted.diff.smpl" | |
| } | |
| } | |
| }, | |
| "lineDeleted": { | |
| "name": "markup.deleted.diff.smpl", | |
| "match": "^(-).*", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.deleted.diff.smpl" | |
| } | |
| } | |
| }, | |
| "lineMatched": { | |
| "match": "^(\\*)\\s*(\\S.*)", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.operator.semantic-match.diff.smpl" | |
| }, | |
| "2": { | |
| "name": "markup.changed.diff.smpl" | |
| } | |
| } | |
| }, | |
| "metavariables": { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^(@).*(@)\\s*$", | |
| "end": "^(@@)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| "scripts": { | |
| "patterns": [ | |
| { | |
| "begin": "(^(@).*?(?<=\\s|@)(script|initialize|finalize):python(?=\\s|@).*?(@)\\s*$)", | |
| "end": "^(?=@(?!@\\s*$))", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.header.metavariables.smpl" | |
| }, | |
| "1": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^", | |
| "end": "^(@@)", | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "begin": "(?<=@@)\\s*$\\n?", | |
| "end": "^(?=@)", | |
| "contentName": "source.embedded.python", | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "source.python" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "begin": "(^(@).*?(?<=\\s|@)(script|initialize|finalize):ocaml(?=\\s|@).*?(@)\\s*$)", | |
| "end": "^(?=@(?!@\\s*$))", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.header.metavariables.smpl" | |
| }, | |
| "1": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^", | |
| "end": "^(@@)", | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "begin": "(?<=@@)\\s*$\\n?", | |
| "end": "^(?=@)", | |
| "contentName": "source.embedded.ocaml", | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "source.ocaml" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "variables": { | |
| "name": "variable.at-prefix.smpl", | |
| "match": "(?<!^)(@)[\\w]+", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.operator.variable.smpl" | |
| } | |
| } | |
| }, | |
| "virtual": { | |
| "match": "^\\s*(virtual)\\s+(.*)", | |
| "captures": { | |
| "1": { | |
| "name": "storage.modifier.virtual.smpl" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "match": "[^\\s,]+", | |
| "name": "entity.name.rule.smpl" | |
| }, | |
| { | |
| "include": "etc#comma" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "when": { | |
| "match": "(?<=\\s|\\.{3})(when)\\s*(any(?:\\s|$)|!=)", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.control.flow.when.smpl" | |
| }, | |
| "2": { | |
| "name": "keyword.operator.comparison.smpl" | |
| } | |
| } | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version='1.0' encoding='UTF-8'?> | |
| <!DOCTYPE plist | |
| PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' | |
| 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>name</key> | |
| <string>SmPL</string> | |
| <key>scopeName</key> | |
| <string>source.smpl</string> | |
| <key>fileTypes</key> | |
| <array> | |
| <string>cocci</string> | |
| </array> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#main</string> | |
| </dict> | |
| </array> | |
| <key>repository</key> | |
| <dict> | |
| <key>main</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#include</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#virtual</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#control</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#scripts</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#metavariables</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#variables</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineAdded</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineDeleted</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#lineMatched</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#when</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>comment</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.triple-slash.smpl</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.comment.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>comment.line.double-slash.smpl</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.comment.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>control</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.required.dots.smpl</string> | |
| <key>match</key> | |
| <string><\+(?=\.{3})|(?<=\.{3})\+></string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.optional.dots.smpl</string> | |
| <key>match</key> | |
| <string><(?=\.{3})|(?<=\.{3})></string> | |
| </dict> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.flow.dots.smpl</string> | |
| <key>match</key> | |
| <string>\.{3}</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>include</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.preprocessor.$1.smpl</string> | |
| <key>match</key> | |
| <string>^\s*(include|using)\s+(?:("[^"]*")|(<.*>))</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.directive.$1.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#str</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#isoPath</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>isoPath</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.other.lt-gt.include.smpl</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.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineAdded</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.inserted.diff.smpl</string> | |
| <key>match</key> | |
| <string>^(\+).*</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.inserted.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineDeleted</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.deleted.diff.smpl</string> | |
| <key>match</key> | |
| <string>^(-).*</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.deleted.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>lineMatched</key> | |
| <dict> | |
| <key>match</key> | |
| <string>^(\*)\s*(\S.*)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.semantic-match.diff.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>markup.changed.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>metavariables</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^(@).*(@)\s*$</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>scripts</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>begin</key> | |
| <string>(^(@).*?(?<=\s|@)(script|initialize|finalize):python(?=\s|@).*?(@)\s*$)</string> | |
| <key>end</key> | |
| <string>^(?=@(?!@\s*$))</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(?<=@@)\s*$\n?</string> | |
| <key>end</key> | |
| <string>^(?=@)</string> | |
| <key>contentName</key> | |
| <string>source.embedded.python</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>source.python</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(^(@).*?(?<=\s|@)(script|initialize|finalize):ocaml(?=\s|@).*?(@)\s*$)</string> | |
| <key>end</key> | |
| <string>^(?=@(?!@\s*$))</string> | |
| <key>beginCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.begin.smpl</string> | |
| </dict> | |
| <key>3</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.end.smpl</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.header.metavariables.smpl</string> | |
| <key>begin</key> | |
| <string>^</string> | |
| <key>end</key> | |
| <string>^(@@)</string> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>meta.diff.range.smpl</string> | |
| </dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.range.diff.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <dict> | |
| <key>begin</key> | |
| <string>(?<=@@)\s*$\n?</string> | |
| <key>end</key> | |
| <string>^(?=@)</string> | |
| <key>contentName</key> | |
| <string>source.embedded.ocaml</string> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#comment</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>source.ocaml</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>variables</key> | |
| <dict> | |
| <key>name</key> | |
| <string>variable.at-prefix.smpl</string> | |
| <key>match</key> | |
| <string>(?<!^)(@)[\w]+</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.variable.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>virtual</key> | |
| <dict> | |
| <key>match</key> | |
| <string>^\s*(virtual)\s+(.*)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>storage.modifier.virtual.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>match</key> | |
| <string>[^\s,]+</string> | |
| <key>name</key> | |
| <string>entity.name.rule.smpl</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#comma</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>when</key> | |
| <dict> | |
| <key>match</key> | |
| <string>(?<=\s|\.{3})(when)\s*(any(?:\s|$)|!=)</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.control.flow.when.smpl</string> | |
| </dict> | |
| <key>2</key> | |
| <dict> | |
| <key>name</key> | |
| <string>keyword.operator.comparison.smpl</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| <key>comma</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.separator.delimiter.comma</string> | |
| <key>match</key> | |
| <string>,</string> | |
| </dict> | |
| <key>str</key> | |
| <dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#strDouble</string> | |
| </dict> | |
| <dict> | |
| <key>include</key> | |
| <string>#strSingle</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>strDouble</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.double</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</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#esc</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>strSingle</key> | |
| <dict> | |
| <key>name</key> | |
| <string>string.quoted.single</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</string> | |
| </dict> | |
| </dict> | |
| <key>endCaptures</key> | |
| <dict> | |
| <key>0</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.string.end</string> | |
| </dict> | |
| </dict> | |
| <key>patterns</key> | |
| <array> | |
| <dict> | |
| <key>include</key> | |
| <string>#esc</string> | |
| </dict> | |
| </array> | |
| </dict> | |
| <key>esc</key> | |
| <dict> | |
| <key>name</key> | |
| <string>constant.character.escape.backslash</string> | |
| <key>match</key> | |
| <string>(\\).</string> | |
| <key>captures</key> | |
| <dict> | |
| <key>1</key> | |
| <dict> | |
| <key>name</key> | |
| <string>punctuation.definition.escape.backslash</string> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </plist> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "name": "SmPL", | |
| "scopeName": "source.smpl", | |
| "fileTypes": [ | |
| "cocci" | |
| ], | |
| "patterns": [ | |
| { | |
| "include": "#main" | |
| } | |
| ], | |
| "repository": { | |
| "main": { | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "#include" | |
| }, | |
| { | |
| "include": "#virtual" | |
| }, | |
| { | |
| "include": "#control" | |
| }, | |
| { | |
| "include": "#scripts" | |
| }, | |
| { | |
| "include": "#metavariables" | |
| }, | |
| { | |
| "include": "#variables" | |
| }, | |
| { | |
| "include": "#lineAdded" | |
| }, | |
| { | |
| "include": "#lineDeleted" | |
| }, | |
| { | |
| "include": "#lineMatched" | |
| }, | |
| { | |
| "include": "#when" | |
| } | |
| ] | |
| }, | |
| "comment": { | |
| "patterns": [ | |
| { | |
| "name": "comment.line.triple-slash.smpl", | |
| "begin": "///", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "comment.line.double-slash.smpl", | |
| "begin": "//", | |
| "end": "$", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.comment.smpl" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "control": { | |
| "patterns": [ | |
| { | |
| "name": "storage.modifier.required.dots.smpl", | |
| "match": "<\\+(?=\\.{3})|(?<=\\.{3})\\+>" | |
| }, | |
| { | |
| "name": "storage.modifier.optional.dots.smpl", | |
| "match": "<(?=\\.{3})|(?<=\\.{3})>" | |
| }, | |
| { | |
| "name": "keyword.control.flow.dots.smpl", | |
| "match": "\\.{3}" | |
| } | |
| ] | |
| }, | |
| "include": { | |
| "name": "meta.preprocessor.$1.smpl", | |
| "match": "^\\s*(include|using)\\s+(?:(\"[^\"]*\")|(<.*>))", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.control.directive.$1.smpl" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "include": "#str" | |
| } | |
| ] | |
| }, | |
| "3": { | |
| "patterns": [ | |
| { | |
| "include": "#isoPath" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "isoPath": { | |
| "name": "string.quoted.other.lt-gt.include.smpl", | |
| "begin": "<", | |
| "end": ">", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin.smpl" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end.smpl" | |
| } | |
| } | |
| }, | |
| "lineAdded": { | |
| "name": "markup.inserted.diff.smpl", | |
| "match": "^(\\+).*", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.inserted.diff.smpl" | |
| } | |
| } | |
| }, | |
| "lineDeleted": { | |
| "name": "markup.deleted.diff.smpl", | |
| "match": "^(-).*", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.deleted.diff.smpl" | |
| } | |
| } | |
| }, | |
| "lineMatched": { | |
| "match": "^(\\*)\\s*(\\S.*)", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.operator.semantic-match.diff.smpl" | |
| }, | |
| "2": { | |
| "name": "markup.changed.diff.smpl" | |
| } | |
| } | |
| }, | |
| "metavariables": { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^(@).*(@)\\s*$", | |
| "end": "^(@@)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| "scripts": { | |
| "patterns": [ | |
| { | |
| "begin": "(^(@).*?(?<=\\s|@)(script|initialize|finalize):python(?=\\s|@).*?(@)\\s*$)", | |
| "end": "^(?=@(?!@\\s*$))", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.header.metavariables.smpl" | |
| }, | |
| "1": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^", | |
| "end": "^(@@)", | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "begin": "(?<=@@)\\s*$\\n?", | |
| "end": "^(?=@)", | |
| "contentName": "source.embedded.python", | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "source.python" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "begin": "(^(@).*?(?<=\\s|@)(script|initialize|finalize):ocaml(?=\\s|@).*?(@)\\s*$)", | |
| "end": "^(?=@(?!@\\s*$))", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "meta.diff.header.metavariables.smpl" | |
| }, | |
| "1": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "2": { | |
| "name": "punctuation.definition.range.diff.begin.smpl" | |
| }, | |
| "3": { | |
| "name": "punctuation.definition.range.diff.end.smpl" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "name": "meta.diff.header.metavariables.smpl", | |
| "begin": "^", | |
| "end": "^(@@)", | |
| "endCaptures": { | |
| "0": { | |
| "name": "meta.diff.range.smpl" | |
| }, | |
| "1": { | |
| "name": "punctuation.definition.range.diff.smpl" | |
| } | |
| } | |
| }, | |
| { | |
| "begin": "(?<=@@)\\s*$\\n?", | |
| "end": "^(?=@)", | |
| "contentName": "source.embedded.ocaml", | |
| "patterns": [ | |
| { | |
| "include": "#comment" | |
| }, | |
| { | |
| "include": "source.ocaml" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "variables": { | |
| "name": "variable.at-prefix.smpl", | |
| "match": "(?<!^)(@)[\\w]+", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.operator.variable.smpl" | |
| } | |
| } | |
| }, | |
| "virtual": { | |
| "match": "^\\s*(virtual)\\s+(.*)", | |
| "captures": { | |
| "1": { | |
| "name": "storage.modifier.virtual.smpl" | |
| }, | |
| "2": { | |
| "patterns": [ | |
| { | |
| "match": "[^\\s,]+", | |
| "name": "entity.name.rule.smpl" | |
| }, | |
| { | |
| "include": "#comma" | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "when": { | |
| "match": "(?<=\\s|\\.{3})(when)\\s*(any(?:\\s|$)|!=)", | |
| "captures": { | |
| "1": { | |
| "name": "keyword.control.flow.when.smpl" | |
| }, | |
| "2": { | |
| "name": "keyword.operator.comparison.smpl" | |
| } | |
| } | |
| }, | |
| "comma": { | |
| "name": "punctuation.separator.delimiter.comma", | |
| "match": "," | |
| },"str": { | |
| "patterns": [ | |
| { | |
| "include": "#strDouble" | |
| }, | |
| { | |
| "include": "#strSingle" | |
| } | |
| ] | |
| }, | |
| "strDouble": { | |
| "name": "string.quoted.double", | |
| "begin": "\"", | |
| "end": "\"|(?=$)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "include": "#esc" | |
| } | |
| ] | |
| }, | |
| "strSingle": { | |
| "name": "string.quoted.single", | |
| "begin": "'", | |
| "end": "'|(?=$)", | |
| "beginCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.begin" | |
| } | |
| }, | |
| "endCaptures": { | |
| "0": { | |
| "name": "punctuation.definition.string.end" | |
| } | |
| }, | |
| "patterns": [ | |
| { | |
| "include": "#esc" | |
| } | |
| ] | |
| }, | |
| "esc": { | |
| "name": "constant.character.escape.backslash", | |
| "match": "(\\\\).", | |
| "captures": { | |
| "1": { | |
| "name": "punctuation.definition.escape.backslash" | |
| } | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment