mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-25 12:47:14 +00:00
1888 lines
44 KiB
Plaintext
1888 lines
44 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>fileTypes</key>
|
|
<array>
|
|
<string>sh</string>
|
|
<string>bash</string>
|
|
<string>zsh</string>
|
|
<string>bashrc</string>
|
|
<string>bash_profile</string>
|
|
<string>bash_login</string>
|
|
<string>profile</string>
|
|
<string>bash_logout</string>
|
|
<string>.textmate_init</string>
|
|
</array>
|
|
<key>firstLineMatch</key>
|
|
<string>^#!.*\b(bash|zsh|sh|tcsh)|^#\s*-\*-[^*]*mode:\s*shell-script[^*]*-\*-</string>
|
|
<key>keyEquivalent</key>
|
|
<string>^~S</string>
|
|
<key>name</key>
|
|
<string>Shell Script (Bash)</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comment</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#pipeline</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#list</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#compound-command</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#loop</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#function-definition</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#variable</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#heredoc</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#herestring</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#redirection</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#pathname</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#keyword</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#support</string>
|
|
</dict>
|
|
</array>
|
|
<key>repository</key>
|
|
<dict>
|
|
<key>case-clause</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?=\S)</string>
|
|
<key>end</key>
|
|
<string>;;</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.terminator.case-clause.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.scope.case-clause.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\(|(?=\S))</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.case-pattern.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\)</string>
|
|
<key>name</key>
|
|
<string>meta.scope.case-pattern.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\|</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.pipe-sign.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#variable</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolation</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#pathname</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?<=\))</string>
|
|
<key>end</key>
|
|
<string>(?=;;)</string>
|
|
<key>name</key>
|
|
<string>meta.scope.case-clause-body.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>comment</key>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(^[ \t]+)?(?<!\S)(?=#)(?!#\{)</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.whitespace.comment.leading.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(?!\G)</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>#</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\n</string>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>compound-command</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\[{2})</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.logical-expression.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(\]{2})</string>
|
|
<key>name</key>
|
|
<string>meta.scope.logical-expression.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#logical-expression</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\({2})</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(\){2})</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.other.math.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#math</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(\()</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.subshell.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(\))</string>
|
|
<key>name</key>
|
|
<string>meta.scope.subshell.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?<=\s|^)(\{)(?=\s|$)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.group.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(?<=^|;)\s*(\})</string>
|
|
<key>name</key>
|
|
<string>meta.scope.group.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>function-definition</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(function)\s+([^\s\\]+)(?:\s*(\(\)))?</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>storage.type.function.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.function.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arguments.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>;|&|$</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.function.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.function.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b([^\s\\=]+)\s*(\(\))</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.function.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arguments.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>;|&|$</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.function.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.function.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>heredoc</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(RUBY)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.ruby.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(RUBY)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.ruby.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.ruby</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(RUBY)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.ruby.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(RUBY)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.ruby.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.ruby</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(PYTHON)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.python.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(PYTHON)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.python.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.python</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(PYTHON)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.python.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(PYTHON)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.python.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.python</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(APPLESCRIPT)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.applescript.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(APPLESCRIPT)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.applescript.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.applescript</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(APPLESCRIPT)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>source.applescript.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(APPLESCRIPT)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.applescript.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>source.applescript</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(HTML)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(HTML)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.html.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.basic</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(HTML)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(HTML)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.html.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.basic</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(MARKDOWN)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.markdown.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(MARKDOWN)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.markdown.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.markdown</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(MARKDOWN)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.markdown.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(MARKDOWN)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.markdown.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.markdown</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)(TEXTILE)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.textile.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^\t*(TEXTILE)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.textile.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.textile</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)(TEXTILE)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>contentName</key>
|
|
<string>text.html.textile.embedded.shell</string>
|
|
<key>end</key>
|
|
<string>^(TEXTILE)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.textile.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>text.html.textile</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)-("|'|)\\?(\w+)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>^\t*(\3)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.no-indent.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(<<)("|'|)\\?(\w+)\2</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.heredoc.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>^(\3)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.heredoc-token.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.heredoc.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>herestring</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.herestring.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.single.herestring.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
<key>4</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(<<<)((')[^']*('))</string>
|
|
<key>name</key>
|
|
<string>meta.herestring.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.herestring.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.quoted.double.herestring.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
<key>6</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(<<<)((")(\\("|\\)|[^"])*("))</string>
|
|
<key>name</key>
|
|
<string>meta.herestring.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.herestring.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>string.unquoted.herestring.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(<<<)(([^\s\\]|\\.)+)</string>
|
|
<key>name</key>
|
|
<string>meta.herestring.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>interpolation</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\$\({2}</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\){2}</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.other.math.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#math</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>`</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>`</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.backtick.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\[`\\$]</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\$\(</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\)</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.dollar.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>keyword</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(?:if|then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)\b</string>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<![-/])\b(?:export|declare|typeset|local|readonly)\b</string>
|
|
<key>name</key>
|
|
<string>storage.modifier.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>list</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>;|&&|&|\|\|</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.list.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>logical-expression</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>do we want a special rule for ( expr )?</string>
|
|
<key>match</key>
|
|
<string>=[=~]?|!=?|<|>|&&|\|\|</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.logical.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<!\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.logical.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>loop</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(for)\s+(?=\({2})</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\b(done)\b</string>
|
|
<key>name</key>
|
|
<string>meta.scope.for-loop.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(for)\s+((?:[^\s\\]|\\.)+)\b</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.other.loop.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\b(done)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.scope.for-in-loop.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(while|until)\b</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\b(done)\b</string>
|
|
<key>name</key>
|
|
<string>meta.scope.while-loop.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(select)\s+((?:[^\s\\]|\\.)+)\b</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>variable.other.loop.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\b(done)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.scope.select-block.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(case)\b</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\b(esac)\b</string>
|
|
<key>name</key>
|
|
<string>meta.scope.case-block.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\b(?:in)\b</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(?=\b(?:esac)\b)</string>
|
|
<key>name</key>
|
|
<string>meta.scope.case-body.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#comment</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#case-clause</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(^|(?<=[&;|]))\s*(if)\b</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>Restrict match to avoid matching in lines like `dd if=/dev/sda1 …`</string>
|
|
<key>end</key>
|
|
<string>\b(fi)\b</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.scope.if-block.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>math</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#variable</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\+{1,2}|-{1,2}|!|~|\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|\^|\|{1,2}|&{1,2}|\?|\:|,|=|[*/%+\-&^|]=|<<=|>>=</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.arithmetic.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>0[xX]\h+</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.hex.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>0\d+</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.octal.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\d{1,2}#[0-9a-zA-Z@_]+</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.other.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\d+</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.integer.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>pathname</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<=\s|:|=|^)~</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.tilde.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\*|\?</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.glob.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>([?*+@!])(\()</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.operator.extglob.shell</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.extglob.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(\))</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.extglob.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>meta.structure.extglob.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>pipeline</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(time)\b</string>
|
|
<key>name</key>
|
|
<string>keyword.other.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>[|!]</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.pipe.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>redirection</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>[><]\(</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\)</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.process-substitution.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>valid: &>word >&word >word [n]>&[n] [n]<word [n]>word [n]>>word [n]<&word (last one is duplicate)</string>
|
|
<key>match</key>
|
|
<string>&>|\d*>&\d*|\d*(>>|>|<)|\d*<&|\d*<></string>
|
|
<key>name</key>
|
|
<string>keyword.operator.redirect.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>string</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\.</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>'</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>'</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.single.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\$?"</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>"</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.double.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\[\$`"\\\n]</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#variable</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\$'</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>'</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.single.dollar.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\(a|b|e|f|n|r|t|v|\\|')</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.ansi-c.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\[0-9]{3}</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.octal.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\x[0-9a-fA-F]{2}</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.hex.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\c.</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.control-char.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>support</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<=^|\s)(?::|\.)(?=\s|;|&|$)</string>
|
|
<key>name</key>
|
|
<string>support.function.builtin.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<![-/])\b(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)\b</string>
|
|
<key>name</key>
|
|
<string>support.function.builtin.shell</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>variable</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(\$)[a-zA-Z_][a-zA-Z0-9_]*</string>
|
|
<key>name</key>
|
|
<string>variable.other.normal.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(\$)[-*@#?$!0_]</string>
|
|
<key>name</key>
|
|
<string>variable.other.special.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(\$)[1-9]</string>
|
|
<key>name</key>
|
|
<string>variable.other.positional.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\$\{</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\}</string>
|
|
<key>name</key>
|
|
<string>variable.other.bracket.shell</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>!|:[-=?+]?|\*|@|#{1,2}|%{1,2}|/</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.expansion.shell</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.array.shell</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.array.shell</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(\[)([^\]]+)(\])</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#string</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#variable</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolation</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
<key>scopeName</key>
|
|
<string>source.shell</string>
|
|
<key>uuid</key>
|
|
<string>DDEEA3ED-6B1C-11D9-8B10-000D93589AF6</string>
|
|
</dict>
|
|
</plist> |