vite-plugin-vue-devtools 7.3.0-beta.3 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/client/assets/index-CCs-YXwE.css +1 -0
  2. package/client/assets/{index-BeOBlMyl.js → index-Do4Azd-q.js} +79 -79
  3. package/client/index.html +2 -2
  4. package/dist/vite.cjs +4 -2
  5. package/dist/vite.mjs +4 -2
  6. package/package.json +4 -4
  7. package/src/overlay/devtools-overlay.css +1 -1
  8. package/src/overlay/devtools-overlay.mjs +3 -3
  9. package/client/assets/index-DcHgl2yr.css +0 -1
  10. package/client/devtools-client-lib/color-scheme.js +0 -6
  11. package/client/devtools-client-lib/css-CAzixsid-CEpuX1HY.js +0 -511
  12. package/client/devtools-client-lib/css-CAzixsid.js +0 -511
  13. package/client/devtools-client-lib/devtools-panel.css +0 -1
  14. package/client/devtools-client-lib/devtools-panel.js +0 -93072
  15. package/client/devtools-client-lib/diff-Bo5iyMQ2-Bo5iyMQ2.js +0 -7
  16. package/client/devtools-client-lib/diff-Bo5iyMQ2.js +0 -7
  17. package/client/devtools-client-lib/html-BZB5lEhh-B74zAnWx.js +0 -84
  18. package/client/devtools-client-lib/html-BZB5lEhh.js +0 -84
  19. package/client/devtools-client-lib/javascript-DqVBMyXe-DqVBMyXe.js +0 -705
  20. package/client/devtools-client-lib/javascript-DqVBMyXe.js +0 -705
  21. package/client/devtools-client-lib/json-B12k4-6m-B12k4-6m.js +0 -31
  22. package/client/devtools-client-lib/json-B12k4-6m.js +0 -31
  23. package/client/devtools-client-lib/logo.svg +0 -208
  24. package/client/devtools-client-lib/shellscript-C_gmBC5P-C_gmBC5P.js +0 -7
  25. package/client/devtools-client-lib/shellscript-C_gmBC5P.js +0 -7
  26. package/client/devtools-client-lib/typescript-AEg-ehu7-AEg-ehu7.js +0 -672
  27. package/client/devtools-client-lib/typescript-AEg-ehu7.js +0 -672
  28. package/client/devtools-client-lib/unocss-runtime-N1aIelHJ.js +0 -2041
  29. package/client/devtools-client-lib/vitesse-dark-CkUHDarG-CkUHDarG.js +0 -685
  30. package/client/devtools-client-lib/vitesse-dark-CkUHDarG.js +0 -685
  31. package/client/devtools-client-lib/vitesse-light-K81-viQS-K81-viQS.js +0 -683
  32. package/client/devtools-client-lib/vitesse-light-K81-viQS.js +0 -683
  33. package/client/devtools-client-lib/vue-CCacahFR-DGkPCBY5.js +0 -2125
  34. package/client/devtools-client-lib/vue-CCacahFR.js +0 -2125
  35. package/client/devtools-client-lib/vue-apis-Ba6Wxigc.js +0 -1152
  36. package/client/devtools-client-lib/vue-html-Cae35ipv-C0hVhFzJ.js +0 -11
  37. package/client/devtools-client-lib/vue-html-Cae35ipv.js +0 -11
  38. package/client/devtools-client-lib/yaml-PGla5xPP-HJurM_FJ.js +0 -206
  39. package/client/devtools-client-lib/yaml-PGla5xPP.js +0 -206
@@ -1,31 +0,0 @@
1
- const n = Object.freeze({ displayName: "JSON", name: "json", patterns: [{ include: "#value" }], repository: { array: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.json" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.json" } }, name: "meta.structure.array.json", patterns: [{ include: "#value" }, { match: ",", name: "punctuation.separator.array.json" }, { match: "[^\\s\\]]", name: "invalid.illegal.expected-array-separator.json" }] }, comments: { patterns: [{ begin: "/\\*\\*(?!/)", captures: { 0: { name: "punctuation.definition.comment.json" } }, end: "\\*/", name: "comment.block.documentation.json" }, { begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.json" } }, end: "\\*/", name: "comment.block.json" }, { captures: { 1: { name: "punctuation.definition.comment.json" } }, match: "(//).*$\\n?", name: "comment.line.double-slash.js" }] }, constant: { match: "\\b(?:true|false|null)\\b", name: "constant.language.json" }, number: { match: `(?x)
2
- -?
3
- (?:
4
- 0
5
- |
6
- [1-9]
7
- \\d*
8
- )
9
- (?:
10
- (?:
11
- \\.
12
- \\d+
13
- )?
14
- (?:
15
- [eE]
16
- [+-]?
17
- \\d+
18
- )?
19
- )?`, name: "constant.numeric.json" }, object: { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.dictionary.begin.json" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.dictionary.end.json" } }, name: "meta.structure.dictionary.json", patterns: [{ comment: "the JSON object key", include: "#objectkey" }, { include: "#comments" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.dictionary.key-value.json" } }, end: "(,)|(?=\\})", endCaptures: { 1: { name: "punctuation.separator.dictionary.pair.json" } }, name: "meta.structure.dictionary.value.json", patterns: [{ comment: "the JSON object value", include: "#value" }, { match: "[^\\s,]", name: "invalid.illegal.expected-dictionary-separator.json" }] }, { match: "[^\\s\\}]", name: "invalid.illegal.expected-dictionary-separator.json" }] }, objectkey: { begin: '"', beginCaptures: { 0: { name: "punctuation.support.type.property-name.begin.json" } }, end: '"', endCaptures: { 0: { name: "punctuation.support.type.property-name.end.json" } }, name: "string.json support.type.property-name.json", patterns: [{ include: "#stringcontent" }] }, string: { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.json" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.json" } }, name: "string.quoted.double.json", patterns: [{ include: "#stringcontent" }] }, stringcontent: { patterns: [{ match: `(?x)
20
- \\\\
21
- (?:
22
- ["\\\\/bfnrt]
23
- |
24
- u
25
- [0-9a-fA-F]{4})`, name: "constant.character.escape.json" }, { match: "\\\\.", name: "invalid.illegal.unrecognized-string-escape.json" }] }, value: { patterns: [{ include: "#constant" }, { include: "#number" }, { include: "#string" }, { include: "#array" }, { include: "#object" }, { include: "#comments" }] } }, scopeName: "source.json" });
26
- var e = [
27
- n
28
- ];
29
- export {
30
- e as default
31
- };
@@ -1,31 +0,0 @@
1
- const n = Object.freeze({ displayName: "JSON", name: "json", patterns: [{ include: "#value" }], repository: { array: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.array.begin.json" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.array.end.json" } }, name: "meta.structure.array.json", patterns: [{ include: "#value" }, { match: ",", name: "punctuation.separator.array.json" }, { match: "[^\\s\\]]", name: "invalid.illegal.expected-array-separator.json" }] }, comments: { patterns: [{ begin: "/\\*\\*(?!/)", captures: { 0: { name: "punctuation.definition.comment.json" } }, end: "\\*/", name: "comment.block.documentation.json" }, { begin: "/\\*", captures: { 0: { name: "punctuation.definition.comment.json" } }, end: "\\*/", name: "comment.block.json" }, { captures: { 1: { name: "punctuation.definition.comment.json" } }, match: "(//).*$\\n?", name: "comment.line.double-slash.js" }] }, constant: { match: "\\b(?:true|false|null)\\b", name: "constant.language.json" }, number: { match: `(?x)
2
- -?
3
- (?:
4
- 0
5
- |
6
- [1-9]
7
- \\d*
8
- )
9
- (?:
10
- (?:
11
- \\.
12
- \\d+
13
- )?
14
- (?:
15
- [eE]
16
- [+-]?
17
- \\d+
18
- )?
19
- )?`, name: "constant.numeric.json" }, object: { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.dictionary.begin.json" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.dictionary.end.json" } }, name: "meta.structure.dictionary.json", patterns: [{ comment: "the JSON object key", include: "#objectkey" }, { include: "#comments" }, { begin: ":", beginCaptures: { 0: { name: "punctuation.separator.dictionary.key-value.json" } }, end: "(,)|(?=\\})", endCaptures: { 1: { name: "punctuation.separator.dictionary.pair.json" } }, name: "meta.structure.dictionary.value.json", patterns: [{ comment: "the JSON object value", include: "#value" }, { match: "[^\\s,]", name: "invalid.illegal.expected-dictionary-separator.json" }] }, { match: "[^\\s\\}]", name: "invalid.illegal.expected-dictionary-separator.json" }] }, objectkey: { begin: '"', beginCaptures: { 0: { name: "punctuation.support.type.property-name.begin.json" } }, end: '"', endCaptures: { 0: { name: "punctuation.support.type.property-name.end.json" } }, name: "string.json support.type.property-name.json", patterns: [{ include: "#stringcontent" }] }, string: { begin: '"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.json" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.json" } }, name: "string.quoted.double.json", patterns: [{ include: "#stringcontent" }] }, stringcontent: { patterns: [{ match: `(?x)
20
- \\\\
21
- (?:
22
- ["\\\\/bfnrt]
23
- |
24
- u
25
- [0-9a-fA-F]{4})`, name: "constant.character.escape.json" }, { match: "\\\\.", name: "invalid.illegal.unrecognized-string-escape.json" }] }, value: { patterns: [{ include: "#constant" }, { include: "#number" }, { include: "#string" }, { include: "#array" }, { include: "#object" }, { include: "#comments" }] } }, scopeName: "source.json" });
26
- var e = [
27
- n
28
- ];
29
- export {
30
- e as default
31
- };
@@ -1,208 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 25.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
- viewBox="0 0 246.52 208.87" style="enable-background:new 0 0 246.52 208.87;" xml:space="preserve">
5
- <style type="text/css">
6
- .st0{fill:url(#SVGID_1_);}
7
- .st1{fill:url(#SVGID_2_);}
8
- </style>
9
- <g>
10
-
11
- <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-3449.4177" y1="3349.6663" x2="-3229.0247" y2="3349.6663" gradientTransform="matrix(-1 0 0 -1 -3219.187 3476.3691)">
12
- <stop offset="5.291010e-03" style="stop-color:#008FC1"/>
13
- <stop offset="1" style="stop-color:#00F879"/>
14
- </linearGradient>
15
- <polygon class="st0" points="120.03,212.11 230.23,41.3 9.84,41.3 "/>
16
- <g>
17
-
18
- <image style="overflow:visible;opacity:0.25;" width="249" height="186" xlink:href="data:image/png;base64,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
- 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
- 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
- 6c9tlM+vYx59OeS+SgByrc8xDNxph98AHHJfYwAaz+sRkOt6zNFRHwJ0wNx+OFp0tPWw0LfNzzn4
22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- HuDLIc9FvYM/vUNwv3W4R1b3OgEM2JcIdGwp8nnEz/oWm0Oeq3qHba/nCnKA+y8FPMD92uHOBfY0
36
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- DuQMsGtTKcjZTEc/thdqmnP/tTVJqpUc8Mn44vd60R0r1O8fjv8o5D/U754GuGNQxzrVcjUdKuoW
50
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- uEA7DsP62ZwxmJrqWXLAsVsxMuBlUnJW8ScFqjiX6DHg/xcxf4pI4sgCN//9ewr6Lpmk69I9w60s
78
- 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
- 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
- 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
- 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
- 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
- LkfSuwUxKuC8v8sR4mmF+7HA237h/L1Vr7Ef1v8+0uvxb0m2cT/p9Xo8yjXamPBFUKe79prxP6Nd
84
- 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
- Jg05R9WR1MB7wXMjAt6R3vbAHyXJZItW7eQAeEO6C2ywBbYvSeHJLMA9CPgOAW+/R6bs748VQZ2q
86
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ePvMQR9/HMkhl+4+3P0U7ECDSwD6WJIRuUhKKDowYqOuHb2h/FT4GHA7ZjcGPO8wsG+PHOlBcCMY
108
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ++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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 9sZnHztLMpAvh3zmgG+YY578+gV6DbDHlHyYz6/o3vgOtkPuS3oj5HVz2Oj6HPnk7KOP6pNPqje+
180
- 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
181
- gc6+plHTAAAAAElFTkSuQmCC" transform="matrix(1 0 0 1 2.4348 -3.6377)">
182
- </image>
183
- <g>
184
- <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="22.5895" y1="139.0657" x2="213.6784" y2="32.6144">
185
- <stop offset="0" style="stop-color:#00FFFF"/>
186
- <stop offset="0.3711" style="stop-color:#52F3AB"/>
187
- <stop offset="1" style="stop-color:#D9E021"/>
188
- </linearGradient>
189
- <path class="st1" d="M242.01,37c-0.04-0.11-0.08-0.22-0.13-0.33c-0.6-1.25-1.9-1.89-3.31-2.28c0,0-0.01-0.01-0.01-0.01
190
- c-1.49-0.4-3.42-0.57-5.76-0.51c-0.03-0.01-0.06-0.01-0.08,0c-4.16,0.12-8.13,0.76-12.39,1.57c-0.01,0-0.01,0-0.02,0.01
191
- c-4.54,0.88-9.18,2.04-13.73,3.29c-0.94,0.26-1.9,0.53-2.87,0.8c-0.07,0.01-0.13,0.04-0.19,0.06c-1.04,0.3-2.09,0.61-3.17,0.93
192
- c-0.02,0-0.04,0.01-0.06,0.01c-12.55,3.75-25.12,8.24-37.45,13.03c0,0,0,0,0,0c0,0,0,0-0.01,0c-0.14,0-15.72-5.1-15.86-5.13
193
- c-0.61-0.2-0.92-0.88-0.68-1.47l6.23-15.29c0.1-0.26,0.3-0.47,0.56-0.59l20.96-9.74C118.88-27.47,29.43,12.85,30.45,87.28
194
- l23.77-11.77C53.03,46.21,87.14,29.34,109.7,48.1L88.08,58.77l-6.17,18.28l15.77,5.3l0.01,0.01l2.56,0.86l21.58-10.68
195
- c1.5,29.11-33.18,46.21-55.44,27.41l-15.76,7.8c-4.95,2.95-9.86,6.01-14.65,9.15c-0.01,0.01-0.01,0.01-0.01,0.01
196
- c-1.19,0.78-2.35,1.55-3.47,2.31c-0.01,0-0.01,0-0.01,0.01c-4.57,3.09-9.06,6.32-13.15,9.62c-0.05,0.03-0.1,0.07-0.14,0.11
197
- c-0.42,0.34-0.82,0.67-1.22,1c0,0,0,0,0,0c-1.47,1.21-2.91,2.47-4.29,3.76c-0.21,0.2-0.42,0.39-0.62,0.6
198
- c-0.71,0.67-1.37,1.34-1.96,1.98c-0.01,0.01-0.02,0.01-0.03,0.03c-0.26,0.28-0.51,0.56-0.75,0.82c-0.03,0.03-0.05,0.06-0.07,0.09
199
- c-0.14,0.16-0.27,0.31-0.4,0.46c-0.13,0.15-0.26,0.3-0.38,0.45c-0.38,0.44-0.71,0.88-1.02,1.31c-0.39,0.53-0.74,1.08-1.05,1.63
200
- c-0.47,0.81-0.84,1.67-1.02,2.52c-0.02,0.09-0.04,0.18-0.05,0.27c0,0.04-0.01,0.09-0.01,0.13c-0.45,5.19,7.2,4.85,11.33,4.65
201
- c0.69-0.04,1.37-0.1,2.06-0.18c0.39-0.04,0.79-0.08,1.19-0.13c0.34-0.04,0.68-0.08,1.03-0.13c9.58-1.34,18.99-3.95,28.3-6.74
202
- c56.32,67.3,166.12,18.25,152.23-69.41c11.24-6.86,22.67-14.75,29.27-20.46c2.91-2.52,5.74-5.12,8.02-8.12
203
- c0.11-0.14,0.22-0.28,0.31-0.42c0.2-0.28,0.39-0.56,0.56-0.83c0.38-0.61,0.75-1.24,1.02-1.89c0.04-0.1,0.08-0.19,0.12-0.29
204
- c0.04-0.1,0.08-0.21,0.11-0.3C242.21,38.72,242.26,37.79,242.01,37z"/>
205
- </g>
206
- </g>
207
- </g>
208
- </svg>
@@ -1,7 +0,0 @@
1
- const e = Object.freeze({ displayName: "Shell", name: "shellscript", patterns: [{ include: "#initial_context" }], repository: { alias_statement: { begin: "(?:(?:[ \\t]*+)(alias)(?:[ \\t]*+)((?:(?:((?<!\\w)-\\w+\\b)(?:[ \\t]*+))*))(?:(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))))", beginCaptures: { 1: { name: "storage.type.alias.shell" }, 2: { patterns: [{ match: "(?<!\\w)-\\w+\\b", name: "string.unquoted.argument.shell constant.other.option.shell" }] }, 3: { name: "string.unquoted.argument.shell constant.other.option.shell" }, 4: { name: "variable.other.assignment.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "variable.other.assignment.shell" }, 7: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 8: { name: "punctuation.definition.array.access.shell" }, 9: { name: "keyword.operator.assignment.shell" }, 10: { name: "keyword.operator.assignment.compound.shell" }, 11: { name: "keyword.operator.assignment.compound.shell" } }, end: "(?:(?= |\\t|$)|(?:(?:(?:(;)|(&&))|(\\|\\|))|(&)))", endCaptures: { 1: { name: "punctuation.terminator.statement.semicolon.shell" }, 2: { name: "punctuation.separator.statement.and.shell" }, 3: { name: "punctuation.separator.statement.or.shell" }, 4: { name: "punctuation.separator.statement.background.shell" } }, name: "meta.expression.assignment.alias.shell", patterns: [{ include: "#normal_context" }] }, argument: { begin: "(?:[ \\t]++)(?!(?:&|\\||\\(|\\[|#|\\n|$|;))", beginCaptures: {}, end: "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", endCaptures: {}, name: "meta.argument.shell", patterns: [{ include: "#argument_context" }, { include: "#line_continuation" }] }, argument_context: { patterns: [{ captures: { 1: { name: "string.unquoted.argument.shell", patterns: [{ match: "\\*", name: "variable.language.special.wildcard.shell" }, { include: "#variable" }, { include: "#numeric_literal" }, { captures: { 1: { name: "constant.language.$1.shell" } }, match: "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)" }] } }, match: "(?:[ \\t]*+)((?:[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+)(?!>))" }, { include: "#normal_context" }] }, arithmetic_double: { patterns: [{ begin: "\\(\\(", beginCaptures: { 0: { name: "punctuation.section.arithmetic.double.shell" } }, end: "\\)(?:\\s*)\\)", endCaptures: { 0: { name: "punctuation.section.arithmetic.double.shell" } }, name: "meta.arithmetic.shell", patterns: [{ include: "#math" }, { include: "#string" }] }] }, arithmetic_no_dollar: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.section.arithmetic.single.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.section.arithmetic.single.shell" } }, name: "meta.arithmetic.shell", patterns: [{ include: "#math" }, { include: "#string" }] }] }, array_access_inline: { captures: { 1: { name: "punctuation.section.array.shell" }, 2: { patterns: [{ include: "#special_expansion" }, { include: "#string" }, { include: "#variable" }] }, 3: { name: "punctuation.section.array.shell" } }, match: "(?:(\\[)([^\\[\\]]+)(\\]))" }, array_value: { begin: "(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))(?:[ \\t]*+)(\\()", beginCaptures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" }, 9: { name: "punctuation.definition.array.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.array.shell" } }, patterns: [{ include: "#comment" }, { captures: { 1: { name: "variable.other.assignment.array.shell entity.other.attribute-name.shell" }, 2: { name: "keyword.operator.assignment.shell punctuation.definition.assignment.shell" } }, match: "(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(\\=))" }, { captures: { 1: { name: "punctuation.definition.bracket.named-array.shell" }, 2: { name: "string.unquoted.shell entity.other.attribute-name.bracket.shell" }, 3: { name: "punctuation.definition.bracket.named-array.shell" }, 4: { name: "punctuation.definition.assignment.shell" } }, match: "(?:(\\[)(.+?)(\\])(\\=))" }, { include: "#normal_context" }, { include: "#simple_unquoted" }] }, assignment_statement: { patterns: [{ include: "#array_value" }, { include: "#modified_assignment_statement" }, { include: "#normal_assignment_statement" }] }, basic_command_name: { captures: { 1: { name: "storage.modifier.$1.shell" }, 2: { name: "entity.name.function.call.shell entity.name.command.shell", patterns: [{ match: "(?<!\\w)(?:continue|return|break)(?!\\w)", name: "keyword.control.$0.shell" }, { match: "(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)", name: "support.function.builtin.shell" }, { include: "#variable" }] } }, match: `(?:(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!"|'|\\\\\\n?$)(?:[^!'"<> \\t\\n\\r]+?)))(?:(?= |\\t)|(?:(?=;|\\||&|\\n|\\)|\\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))))`, name: "meta.statement.command.name.basic.shell" }, block_comment: { begin: "(?:(?:\\s*+)(\\/\\*))", beginCaptures: { 1: { name: "punctuation.definition.comment.begin.shell" } }, end: "\\*\\/", endCaptures: { 0: { name: "punctuation.definition.comment.end.shell" } }, name: "comment.block.shell" }, boolean: { match: "\\b(?:true|false)\\b", name: "constant.language.$0.shell" }, case_statement: { begin: "(?:(\\bcase\\b)(?:[ \\t]*+)(.+?)(?:[ \\t]*+)(\\bin\\b))", beginCaptures: { 1: { name: "keyword.control.case.shell" }, 2: { patterns: [{ include: "#initial_context" }] }, 3: { name: "keyword.control.in.shell" } }, end: "\\besac\\b", endCaptures: { 0: { name: "keyword.control.esac.shell" } }, name: "meta.case.shell", patterns: [{ include: "#comment" }, { captures: { 1: { name: "keyword.operator.pattern.case.default.shell" } }, match: "(?:[ \\t]*+)(\\* *\\))" }, { begin: "(?<!\\))(?!(?:[ \\t]*+)(?:esac\\b|$))", beginCaptures: {}, end: "(?:(?=\\besac\\b)|(\\)))", endCaptures: { 1: { name: "keyword.operator.pattern.case.shell" } }, name: "meta.case.entry.pattern.shell", patterns: [{ include: "#case_statement_context" }] }, { begin: "(?<=\\))", beginCaptures: {}, end: "(?:(;;)|(?=\\besac\\b))", endCaptures: { 1: { name: "punctuation.terminator.statement.case.shell" } }, name: "meta.case.entry.body.shell", patterns: [{ include: "#typical_statements" }, { include: "#initial_context" }] }] }, case_statement_context: { patterns: [{ match: "\\*", name: "variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "\\+", name: "variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "\\?", name: "variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "@", name: "variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell" }, { match: "\\|", name: "keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell" }, { match: "\\\\.", name: "constant.character.escape.shell" }, { match: "(?<=\\tin| in| |\\t|;;)\\(", name: "keyword.operator.pattern.case.shell" }, { begin: "(?<=\\S)(\\()", beginCaptures: { 1: { name: "punctuation.definition.group.shell punctuation.definition.regex.group.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.definition.regex.group.shell" } }, name: "meta.parenthese.shell", patterns: [{ include: "#case_statement_context" }] }, { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.character-class.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.character-class.shell" } }, name: "string.regexp.character-class.shell", patterns: [{ match: "\\\\.", name: "constant.character.escape.shell" }] }, { include: "#string" }, { match: "[^) \\t\\n\\[\\?\\*\\|\\@]", name: "string.unquoted.pattern.shell string.regexp.unquoted.shell" }] }, command_name_range: { begin: "\\G", beginCaptures: {}, end: "(?:(?= |\\t|;|\\||&|$|\\n|\\)|\\`)|(?=<))", endCaptures: {}, name: "meta.statement.command.name.shell", patterns: [{ match: "(?<!\\w)(?:continue|return|break)(?!\\w)", name: "entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell" }, { match: "(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)", name: "entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell" }, { include: "#variable" }, { captures: { 1: { name: "entity.name.function.call.shell entity.name.command.shell" } }, match: `(?:(?<!\\w)(?<=\\G|'|"|\\}|\\))([^ \\n\\t\\r"'=;&\\|\`\\)\\{<>]+))` }, { begin: `(?:(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))(?:(\\$?)((?:(")|(')))))`, beginCaptures: { 1: { name: "meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell" }, 2: {}, 3: { name: "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" }, 4: { name: "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" } }, end: "(?<!\\G)(?<=(?:\\2))", endCaptures: {}, patterns: [{ include: "#continuation_of_single_quoted_command_name" }, { include: "#continuation_of_double_quoted_command_name" }] }, { include: "#line_continuation" }, { include: "#simple_unquoted" }] }, command_statement: { begin: "(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.command.shell", patterns: [{ include: "#command_name_range" }, { include: "#line_continuation" }, { include: "#option" }, { include: "#argument" }, { include: "#string" }, { include: "#heredoc" }] }, comment: { captures: { 1: { name: "comment.line.number-sign.shell meta.shebang.shell" }, 2: { name: "punctuation.definition.comment.shebang.shell" }, 3: { name: "comment.line.number-sign.shell" }, 4: { name: "punctuation.definition.comment.shell" } }, match: "(?:(?:^|(?:[ \\t]++))(?:((?:(#!)(?:.*)))|((?:(#)(?:.*)))))" }, comments: { patterns: [{ include: "#block_comment" }, { include: "#line_comment" }] }, "compound-command": { patterns: [{ begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical-expression" }, { include: "#initial_context" }] }, { begin: "(?<=\\s|^){(?=\\s|$)", beginCaptures: { 0: { name: "punctuation.definition.group.shell" } }, end: "(?<=^|;)\\s*(})", endCaptures: { 1: { name: "punctuation.definition.group.shell" } }, name: "meta.scope.group.shell", patterns: [{ include: "#initial_context" }] }] }, continuation_of_double_quoted_command_name: { begin: '(?:\\G(?<="))', beginCaptures: {}, contentName: "meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command", end: '"', endCaptures: { 0: { name: "string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" } }, patterns: [{ match: '\\\\[\\$\\n`"\\\\]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, continuation_of_single_quoted_command_name: { begin: "(?:\\G(?<='))", beginCaptures: {}, contentName: "meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command", end: "'", endCaptures: { 0: { name: "string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" } } }, custom_command_names: { patterns: [] }, custom_commands: { patterns: [] }, double_quote_context: { patterns: [{ match: '\\\\[\\$`"\\\\\\n]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, double_quote_escape_char: { match: '\\\\[\\$`"\\\\\\n]', name: "constant.character.escape.shell" }, floating_keyword: { patterns: [{ match: "(?<=^|;|&| |\\t)(?:then|elif|else|done|end|do|if|fi)(?= |\\t|;|&|$)", name: "keyword.control.$0.shell" }] }, for_statement: { patterns: [{ begin: "(?:(\\bfor\\b)(?:(?:[ \\t]*+)((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:[ \\t]*+)(\\bin\\b)))", beginCaptures: { 1: { name: "keyword.control.for.shell" }, 2: { name: "variable.other.for.shell" }, 3: { name: "keyword.control.in.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.for.in.shell", patterns: [{ include: "#string" }, { include: "#simple_unquoted" }, { include: "#normal_context" }] }, { begin: "(\\bfor\\b)", beginCaptures: { 1: { name: "keyword.control.for.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.for.shell", patterns: [{ include: "#arithmetic_double" }, { include: "#normal_context" }] }] }, function_definition: { applyEndPatternLast: 1, begin: `(?:[ \\t]*+)(?:(?:(\\bfunction\\b)(?:[ \\t]*+)([^ \\t\\n\\r\\(\\)="']+)(?:(?:(\\()(?:[ \\t]*+)(\\)))?))|(?:([^ \\t\\n\\r\\(\\)="']+)(?:[ \\t]*+)(\\()(?:[ \\t]*+)(\\))))`, beginCaptures: { 1: { name: "storage.type.function.shell" }, 2: { name: "entity.name.function.shell" }, 3: { name: "punctuation.definition.arguments.shell" }, 4: { name: "punctuation.definition.arguments.shell" }, 5: { name: "entity.name.function.shell" }, 6: { name: "punctuation.definition.arguments.shell" }, 7: { name: "punctuation.definition.arguments.shell" } }, end: "(?<=\\}|\\))", endCaptures: {}, name: "meta.function.shell", patterns: [{ match: "(?:\\G(?:\\t| |\\n))" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, name: "meta.function.body.shell", patterns: [{ include: "#initial_context" }] }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, name: "meta.function.body.shell", patterns: [{ include: "#initial_context" }] }, { include: "#initial_context" }] }, heredoc: { patterns: [{ begin: `(?:((?<!<)(?:<<-))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.quote.shell" }, 3: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 4: { name: "punctuation.definition.string.heredoc.quote.shell" }, 5: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.quoted.heredoc.indent.$3", end: "(?:(?:^\\t*)(?:\\3)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.$0.shell" } }, patterns: [] }, { begin: `(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.quote.shell" }, 3: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 4: { name: "punctuation.definition.string.heredoc.quote.shell" }, 5: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.quoted.heredoc.no-indent.$3", end: "(?:^(?:\\3)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [] }, { begin: `(?:((?<!<)(?:<<-))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 3: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.unquoted.heredoc.indent.$2", end: "(?:(?:^\\t*)(?:\\2)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [{ include: "#double_quote_escape_char" }, { include: "#variable" }, { include: "#interpolation" }] }, { begin: `(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 3: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.unquoted.heredoc.no-indent.$2", end: "(?:^(?:\\2)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [{ include: "#double_quote_escape_char" }, { include: "#variable" }, { include: "#interpolation" }] }] }, herestring: { patterns: [{ begin: "(<<<)\\s*(('))", beginCaptures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.quoted.single.shell" }, 3: { name: "punctuation.definition.string.begin.shell" } }, contentName: "string.quoted.single.shell", end: "(')", endCaptures: { 0: { name: "string.quoted.single.shell" }, 1: { name: "punctuation.definition.string.end.shell" } }, name: "meta.herestring.shell" }, { begin: '(<<<)\\s*(("))', beginCaptures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.quoted.double.shell" }, 3: { name: "punctuation.definition.string.begin.shell" } }, contentName: "string.quoted.double.shell", end: '(")', endCaptures: { 0: { name: "string.quoted.double.shell" }, 1: { name: "punctuation.definition.string.end.shell" } }, name: "meta.herestring.shell", patterns: [{ include: "#double_quote_context" }] }, { captures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.unquoted.herestring.shell", patterns: [{ include: "#initial_context" }] } }, match: "(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)", name: "meta.herestring.shell" }] }, initial_context: { patterns: [{ include: "#comment" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#logical_expression_double" }, { include: "#logical_expression_single" }, { include: "#assignment_statement" }, { include: "#case_statement" }, { include: "#for_statement" }, { include: "#loop" }, { include: "#function_definition" }, { include: "#line_continuation" }, { include: "#arithmetic_double" }, { include: "#misc_ranges" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#alias_statement" }, { include: "#normal_statement" }, { include: "#string" }, { include: "#support" }] }, inline_comment: { captures: { 1: { name: "comment.block.shell punctuation.definition.comment.begin.shell" }, 2: { name: "comment.block.shell" }, 3: { patterns: [{ match: "\\*\\/", name: "comment.block.shell punctuation.definition.comment.end.shell" }, { match: "\\*", name: "comment.block.shell" }] } }, match: "(\\/\\*)((?:(?:[^\\*]|(?:(?:\\*++)[^\\/]))*+)((?:(?:\\*++)\\/)))" }, interpolation: { patterns: [{ include: "#arithmetic_dollar" }, { include: "#subshell_dollar" }, { begin: "`", beginCaptures: { 0: { name: "punctuation.definition.evaluation.backticks.shell" } }, end: "`", endCaptures: { 0: { name: "punctuation.definition.evaluation.backticks.shell" } }, name: "string.interpolated.backtick.shell", patterns: [{ match: "\\\\[`\\\\$]", name: "constant.character.escape.shell" }, { begin: "(?<=\\W)(?=#)(?!#{)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.shell" } }, end: "(?!\\G)", patterns: [{ begin: "#", beginCaptures: { 0: { name: "punctuation.definition.comment.shell" } }, end: "(?=`)", name: "comment.line.number-sign.shell" }] }, { include: "#initial_context" }] }] }, keyword: { patterns: [{ match: "(?<=^|;|&|\\s)(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\\s|;|&|$)", name: "keyword.control.shell" }, { match: "(?<=^|;|&|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|&|$)", name: "storage.modifier.shell" }] }, line_comment: { begin: "(?:\\s*+)(\\/\\/)", beginCaptures: { 1: { name: "punctuation.definition.comment.shell" } }, end: "(?<=\\n)(?<!\\\\\\n)", endCaptures: {}, name: "comment.line.double-slash.shell", patterns: [{ include: "#line_continuation_character" }] }, line_continuation: { match: "\\\\(?=\\n)", name: "constant.character.escape.line-continuation.shell" }, "logical-expression": { patterns: [{ include: "#arithmetic_no_dollar" }, { comment: "do we want a special rule for ( expr )?", match: "=[=~]?|!=?|<|>|&&|\\|\\|", name: "keyword.operator.logical.shell" }, { match: "(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b", name: "keyword.operator.logical.shell" }] }, logical_expression_context: { patterns: [{ include: "#regex_comparison" }, { include: "#arithmetic_no_dollar" }, { include: "#logical-expression" }, { include: "#logical_expression_single" }, { include: "#logical_expression_double" }, { include: "#comment" }, { include: "#boolean" }, { include: "#redirect_number" }, { include: "#numeric_literal" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }] }, logical_expression_double: { begin: "\\[\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical_expression_context" }] }, logical_expression_single: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical_expression_context" }] }, loop: { patterns: [{ begin: "(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" }, 2: { name: "variable.other.loop.shell", patterns: [{ include: "#string" }] }, 3: { name: "keyword.control.shell" } }, end: "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", endCaptures: { 0: { name: "keyword.control.shell" } }, name: "meta.scope.for-in-loop.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" } }, end: "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", endCaptures: { 0: { name: "keyword.control.shell" } }, name: "meta.scope.while-loop.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" }, 2: { name: "variable.other.loop.shell" } }, end: "(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))", endCaptures: { 1: { name: "keyword.control.shell" } }, name: "meta.scope.select-block.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)if(?=\\s|;|&|$)", beginCaptures: { 0: { name: "keyword.control.if.shell" } }, end: "(?<=^|;|&|\\s)fi(?=\\s|;|&|$)", endCaptures: { 0: { name: "keyword.control.fi.shell" } }, name: "meta.scope.if-block.shell", patterns: [{ include: "#initial_context" }] }] }, math: { patterns: [{ include: "#variable" }, { match: "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", name: "keyword.operator.arithmetic.shell" }, { match: "0[xX][0-9A-Fa-f]+", name: "constant.numeric.hex.shell" }, { match: ";", name: "punctuation.separator.semicolon.range" }, { match: "0\\d+", name: "constant.numeric.octal.shell" }, { match: "\\d{1,2}#[0-9a-zA-Z@_]+", name: "constant.numeric.other.shell" }, { match: "\\d+", name: "constant.numeric.integer.shell" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9]+)(?!\\w)", name: "variable.other.normal.shell" }] }, math_operators: { patterns: [{ match: "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", name: "keyword.operator.arithmetic.shell" }, { match: "0[xX][0-9A-Fa-f]+", name: "constant.numeric.hex.shell" }, { match: "0\\d+", name: "constant.numeric.octal.shell" }, { match: "\\d{1,2}#[0-9a-zA-Z@_]+", name: "constant.numeric.other.shell" }, { match: "\\d+", name: "constant.numeric.integer.shell" }] }, misc_ranges: { patterns: [{ include: "#logical_expression_single" }, { include: "#logical_expression_double" }, { include: "#subshell_dollar" }, { begin: "(?<![^ \\t])({)", beginCaptures: { 1: { name: "punctuation.definition.group.shell" } }, end: "}", endCaptures: { 0: { name: "punctuation.definition.group.shell" } }, name: "meta.scope.group.shell", patterns: [{ include: "#initial_context" }] }] }, modified_assignment_statement: { begin: "(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)", beginCaptures: { 0: { name: "storage.modifier.$0.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.shell meta.expression.assignment.modified.shell", patterns: [{ match: "(?<!\\w)-\\w+\\b", name: "string.unquoted.argument.shell constant.other.option.shell" }, { include: "#array_value" }, { captures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" }, 9: { name: "constant.numeric.shell constant.numeric.hex.shell" }, 10: { name: "constant.numeric.shell constant.numeric.octal.shell" }, 11: { name: "constant.numeric.shell constant.numeric.other.shell" }, 12: { name: "constant.numeric.shell constant.numeric.decimal.shell" }, 13: { name: "constant.numeric.shell constant.numeric.version.shell" }, 14: { name: "constant.numeric.shell constant.numeric.integer.shell" } }, match: "(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?)(?:(?:(?:(\\=)|(\\+\\=))|(\\-\\=))?)(?:(?:(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;))?))" }, { include: "#normal_context" }] }, modifiers: { match: "(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)", name: "storage.modifier.$0.shell" }, normal_assignment_statement: { begin: "(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", beginCaptures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.expression.assignment.shell", patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#normal_assignment_statement" }, { begin: "(?<= |\\t)(?! |\\t|\\w+=)", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.command.env.shell", patterns: [{ include: "#command_name_range" }, { include: "#line_continuation" }, { include: "#option" }, { include: "#argument" }, { include: "#string" }] }, { include: "#simple_unquoted" }, { include: "#normal_context" }] }, normal_context: { patterns: [{ include: "#comment" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#misc_ranges" }, { include: "#boolean" }, { include: "#redirect_number" }, { include: "#numeric_literal" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }, { include: "#parenthese" }] }, normal_statement: { begin: "(?:(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))(?:[ \\t]*+)(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$))", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.shell", patterns: [{ include: "#typical_statements" }] }, normal_statement_seperator: { captures: { 1: { name: "punctuation.terminator.statement.semicolon.shell" }, 2: { name: "punctuation.separator.statement.and.shell" }, 3: { name: "punctuation.separator.statement.or.shell" }, 4: { name: "punctuation.separator.statement.background.shell" } }, match: "(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))" }, numeric_literal: { captures: { 1: { name: "constant.numeric.shell constant.numeric.hex.shell" }, 2: { name: "constant.numeric.shell constant.numeric.octal.shell" }, 3: { name: "constant.numeric.shell constant.numeric.other.shell" }, 4: { name: "constant.numeric.shell constant.numeric.decimal.shell" }, 5: { name: "constant.numeric.shell constant.numeric.version.shell" }, 6: { name: "constant.numeric.shell constant.numeric.integer.shell" } }, match: "(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;)" }, option: { begin: "(?:(?:[ \\t]++)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))))", beginCaptures: { 1: { name: "string.unquoted.argument.shell constant.other.option.dash.shell" }, 2: { name: "string.unquoted.argument.shell constant.other.option.shell" } }, contentName: "string.unquoted.argument constant.other.option", end: "(?:(?=[ \\t])|(?:(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)))", endCaptures: {}, patterns: [{ include: "#option_context" }] }, option_context: { patterns: [{ include: "#misc_ranges" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }] }, parenthese: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.section.parenthese.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.section.parenthese.shell" } }, name: "meta.parenthese.group.shell", patterns: [{ include: "#initial_context" }] }] }, pathname: { patterns: [{ match: "(?<=\\s|:|=|^)~", name: "keyword.operator.tilde.shell" }, { match: "\\*|\\?", name: "keyword.operator.glob.shell" }, { begin: "([?*+@!])(\\()", beginCaptures: { 1: { name: "keyword.operator.extglob.shell" }, 2: { name: "punctuation.definition.extglob.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.extglob.shell" } }, name: "meta.structure.extglob.shell", patterns: [{ include: "#initial_context" }] }] }, pipeline: { patterns: [{ match: "(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)", name: "keyword.other.shell" }, { match: "[|!]", name: "keyword.operator.pipe.shell" }] }, redirect_fix: { captures: { 1: { name: "keyword.operator.redirect.shell" }, 2: { name: "string.unquoted.argument.shell" } }, match: "(?:(>>?)(?:[ \\t]*+)([^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+))" }, redirect_number: { captures: { 1: { name: "keyword.operator.redirect.stdout.shell" }, 2: { name: "keyword.operator.redirect.stderr.shell" }, 3: { name: "keyword.operator.redirect.$3.shell" } }, match: "(?<=[ \\t])(?:(?:(1)|(2)|(\\d+))(?=>))" }, redirection: { patterns: [{ begin: "[><]\\(", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.interpolated.process-substitution.shell", patterns: [{ include: "#initial_context" }] }, { match: "(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])", name: "keyword.operator.redirect.shell" }] }, regex_comparison: { match: "\\=~", name: "keyword.operator.logical.regex.shell" }, regexp: { patterns: [{ match: "(?:.+)" }] }, simple_options: { captures: { 0: { patterns: [{ captures: { 1: { name: "string.unquoted.argument.shell constant.other.option.dash.shell" }, 2: { name: "string.unquoted.argument.shell constant.other.option.shell" } }, match: "(?:[ \\t]++)(\\-)(\\w+)" }] } }, match: "(?:(?:[ \\t]++)\\-(?:\\w+))*" }, simple_unquoted: { match: "[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]", name: "string.unquoted.shell" }, special_expansion: { match: "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", name: "keyword.operator.expansion.shell" }, start_of_command: { match: "(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))" }, string: { patterns: [{ match: "\\\\.", name: "constant.character.escape.shell" }, { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.single.shell" }, { begin: '\\$?"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.double.shell", patterns: [{ match: '\\\\[\\$\\n`"\\\\]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, { begin: "\\$'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.single.dollar.shell", patterns: [{ match: "\\\\(?:a|b|e|f|n|r|t|v|\\\\|')", name: "constant.character.escape.ansi-c.shell" }, { match: '\\\\[0-9]{3}"', name: "constant.character.escape.octal.shell" }, { match: '\\\\x[0-9a-fA-F]{2}"', name: "constant.character.escape.hex.shell" }, { match: '\\\\c."', name: "constant.character.escape.control-char.shell" }] }] }, subshell_dollar: { patterns: [{ begin: "(?:\\$\\()", beginCaptures: { 0: { name: "punctuation.definition.subshell.single.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.subshell.single.shell" } }, name: "meta.scope.subshell", patterns: [{ include: "#parenthese" }, { include: "#initial_context" }] }] }, support: { patterns: [{ match: "(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)", name: "support.function.builtin.shell" }] }, typical_statements: { patterns: [{ include: "#assignment_statement" }, { include: "#case_statement" }, { include: "#for_statement" }, { include: "#while_statement" }, { include: "#function_definition" }, { include: "#command_statement" }, { include: "#line_continuation" }, { include: "#arithmetic_double" }, { include: "#normal_context" }] }, variable: { patterns: [{ captures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.all.shell" }, 2: { name: "variable.parameter.positional.all.shell" } }, match: "(?:(\\$)(\\@(?!\\w)))" }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.shell" }, 2: { name: "variable.parameter.positional.shell" } }, match: "(?:(\\$)([0-9](?!\\w)))" }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.language.special.shell" }, 2: { name: "variable.language.special.shell" } }, match: "(?:(\\$)([-*#?$!0_](?!\\w)))" }, { begin: "(?:(\\$)(\\{)(?:[ \\t]*+)(?=\\d))", beginCaptures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.shell" }, 2: { name: "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell" } }, contentName: "meta.parameter-expansion", end: "\\}", endCaptures: { 0: { name: "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell" } }, patterns: [{ include: "#special_expansion" }, { include: "#array_access_inline" }, { match: "[0-9]+", name: "variable.parameter.positional.shell" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)", name: "variable.other.normal.shell" }, { include: "#variable" }, { include: "#string" }] }, { begin: "(?:(\\$)(\\{))", beginCaptures: { 1: { name: "punctuation.definition.variable.shell" }, 2: { name: "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell" } }, contentName: "meta.parameter-expansion", end: "\\}", endCaptures: { 0: { name: "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell" } }, patterns: [{ include: "#special_expansion" }, { include: "#array_access_inline" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)", name: "variable.other.normal.shell" }, { include: "#variable" }, { include: "#string" }] }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.other.normal.shell" }, 2: { name: "variable.other.normal.shell" } }, match: "(?:(\\$)((?:\\w+)(?!\\w)))" }] }, while_statement: { patterns: [{ begin: "(\\bwhile\\b)", beginCaptures: { 1: { name: "keyword.control.while.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.while.shell", patterns: [{ include: "#line_continuation" }, { include: "#math_operators" }, { include: "#option" }, { include: "#simple_unquoted" }, { include: "#normal_context" }, { include: "#string" }] }] } }, scopeName: "source.shell", aliases: ["bash", "sh", "shell", "zsh"] });
2
- var n = [
3
- e
4
- ];
5
- export {
6
- n as default
7
- };
@@ -1,7 +0,0 @@
1
- const e = Object.freeze({ displayName: "Shell", name: "shellscript", patterns: [{ include: "#initial_context" }], repository: { alias_statement: { begin: "(?:(?:[ \\t]*+)(alias)(?:[ \\t]*+)((?:(?:((?<!\\w)-\\w+\\b)(?:[ \\t]*+))*))(?:(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))))", beginCaptures: { 1: { name: "storage.type.alias.shell" }, 2: { patterns: [{ match: "(?<!\\w)-\\w+\\b", name: "string.unquoted.argument.shell constant.other.option.shell" }] }, 3: { name: "string.unquoted.argument.shell constant.other.option.shell" }, 4: { name: "variable.other.assignment.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "variable.other.assignment.shell" }, 7: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 8: { name: "punctuation.definition.array.access.shell" }, 9: { name: "keyword.operator.assignment.shell" }, 10: { name: "keyword.operator.assignment.compound.shell" }, 11: { name: "keyword.operator.assignment.compound.shell" } }, end: "(?:(?= |\\t|$)|(?:(?:(?:(;)|(&&))|(\\|\\|))|(&)))", endCaptures: { 1: { name: "punctuation.terminator.statement.semicolon.shell" }, 2: { name: "punctuation.separator.statement.and.shell" }, 3: { name: "punctuation.separator.statement.or.shell" }, 4: { name: "punctuation.separator.statement.background.shell" } }, name: "meta.expression.assignment.alias.shell", patterns: [{ include: "#normal_context" }] }, argument: { begin: "(?:[ \\t]++)(?!(?:&|\\||\\(|\\[|#|\\n|$|;))", beginCaptures: {}, end: "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", endCaptures: {}, name: "meta.argument.shell", patterns: [{ include: "#argument_context" }, { include: "#line_continuation" }] }, argument_context: { patterns: [{ captures: { 1: { name: "string.unquoted.argument.shell", patterns: [{ match: "\\*", name: "variable.language.special.wildcard.shell" }, { include: "#variable" }, { include: "#numeric_literal" }, { captures: { 1: { name: "constant.language.$1.shell" } }, match: "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)" }] } }, match: "(?:[ \\t]*+)((?:[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+)(?!>))" }, { include: "#normal_context" }] }, arithmetic_double: { patterns: [{ begin: "\\(\\(", beginCaptures: { 0: { name: "punctuation.section.arithmetic.double.shell" } }, end: "\\)(?:\\s*)\\)", endCaptures: { 0: { name: "punctuation.section.arithmetic.double.shell" } }, name: "meta.arithmetic.shell", patterns: [{ include: "#math" }, { include: "#string" }] }] }, arithmetic_no_dollar: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.section.arithmetic.single.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.section.arithmetic.single.shell" } }, name: "meta.arithmetic.shell", patterns: [{ include: "#math" }, { include: "#string" }] }] }, array_access_inline: { captures: { 1: { name: "punctuation.section.array.shell" }, 2: { patterns: [{ include: "#special_expansion" }, { include: "#string" }, { include: "#variable" }] }, 3: { name: "punctuation.section.array.shell" } }, match: "(?:(\\[)([^\\[\\]]+)(\\]))" }, array_value: { begin: "(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))(?:[ \\t]*+)(\\()", beginCaptures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" }, 9: { name: "punctuation.definition.array.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.array.shell" } }, patterns: [{ include: "#comment" }, { captures: { 1: { name: "variable.other.assignment.array.shell entity.other.attribute-name.shell" }, 2: { name: "keyword.operator.assignment.shell punctuation.definition.assignment.shell" } }, match: "(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(\\=))" }, { captures: { 1: { name: "punctuation.definition.bracket.named-array.shell" }, 2: { name: "string.unquoted.shell entity.other.attribute-name.bracket.shell" }, 3: { name: "punctuation.definition.bracket.named-array.shell" }, 4: { name: "punctuation.definition.assignment.shell" } }, match: "(?:(\\[)(.+?)(\\])(\\=))" }, { include: "#normal_context" }, { include: "#simple_unquoted" }] }, assignment_statement: { patterns: [{ include: "#array_value" }, { include: "#modified_assignment_statement" }, { include: "#normal_assignment_statement" }] }, basic_command_name: { captures: { 1: { name: "storage.modifier.$1.shell" }, 2: { name: "entity.name.function.call.shell entity.name.command.shell", patterns: [{ match: "(?<!\\w)(?:continue|return|break)(?!\\w)", name: "keyword.control.$0.shell" }, { match: "(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)", name: "support.function.builtin.shell" }, { include: "#variable" }] } }, match: `(?:(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!"|'|\\\\\\n?$)(?:[^!'"<> \\t\\n\\r]+?)))(?:(?= |\\t)|(?:(?=;|\\||&|\\n|\\)|\\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))))`, name: "meta.statement.command.name.basic.shell" }, block_comment: { begin: "(?:(?:\\s*+)(\\/\\*))", beginCaptures: { 1: { name: "punctuation.definition.comment.begin.shell" } }, end: "\\*\\/", endCaptures: { 0: { name: "punctuation.definition.comment.end.shell" } }, name: "comment.block.shell" }, boolean: { match: "\\b(?:true|false)\\b", name: "constant.language.$0.shell" }, case_statement: { begin: "(?:(\\bcase\\b)(?:[ \\t]*+)(.+?)(?:[ \\t]*+)(\\bin\\b))", beginCaptures: { 1: { name: "keyword.control.case.shell" }, 2: { patterns: [{ include: "#initial_context" }] }, 3: { name: "keyword.control.in.shell" } }, end: "\\besac\\b", endCaptures: { 0: { name: "keyword.control.esac.shell" } }, name: "meta.case.shell", patterns: [{ include: "#comment" }, { captures: { 1: { name: "keyword.operator.pattern.case.default.shell" } }, match: "(?:[ \\t]*+)(\\* *\\))" }, { begin: "(?<!\\))(?!(?:[ \\t]*+)(?:esac\\b|$))", beginCaptures: {}, end: "(?:(?=\\besac\\b)|(\\)))", endCaptures: { 1: { name: "keyword.operator.pattern.case.shell" } }, name: "meta.case.entry.pattern.shell", patterns: [{ include: "#case_statement_context" }] }, { begin: "(?<=\\))", beginCaptures: {}, end: "(?:(;;)|(?=\\besac\\b))", endCaptures: { 1: { name: "punctuation.terminator.statement.case.shell" } }, name: "meta.case.entry.body.shell", patterns: [{ include: "#typical_statements" }, { include: "#initial_context" }] }] }, case_statement_context: { patterns: [{ match: "\\*", name: "variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "\\+", name: "variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "\\?", name: "variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell" }, { match: "@", name: "variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell" }, { match: "\\|", name: "keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell" }, { match: "\\\\.", name: "constant.character.escape.shell" }, { match: "(?<=\\tin| in| |\\t|;;)\\(", name: "keyword.operator.pattern.case.shell" }, { begin: "(?<=\\S)(\\()", beginCaptures: { 1: { name: "punctuation.definition.group.shell punctuation.definition.regex.group.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.definition.regex.group.shell" } }, name: "meta.parenthese.shell", patterns: [{ include: "#case_statement_context" }] }, { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.character-class.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.character-class.shell" } }, name: "string.regexp.character-class.shell", patterns: [{ match: "\\\\.", name: "constant.character.escape.shell" }] }, { include: "#string" }, { match: "[^) \\t\\n\\[\\?\\*\\|\\@]", name: "string.unquoted.pattern.shell string.regexp.unquoted.shell" }] }, command_name_range: { begin: "\\G", beginCaptures: {}, end: "(?:(?= |\\t|;|\\||&|$|\\n|\\)|\\`)|(?=<))", endCaptures: {}, name: "meta.statement.command.name.shell", patterns: [{ match: "(?<!\\w)(?:continue|return|break)(?!\\w)", name: "entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell" }, { match: "(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)", name: "entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell" }, { include: "#variable" }, { captures: { 1: { name: "entity.name.function.call.shell entity.name.command.shell" } }, match: `(?:(?<!\\w)(?<=\\G|'|"|\\}|\\))([^ \\n\\t\\r"'=;&\\|\`\\)\\{<>]+))` }, { begin: `(?:(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))(?:(\\$?)((?:(")|(')))))`, beginCaptures: { 1: { name: "meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell" }, 2: {}, 3: { name: "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" }, 4: { name: "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" } }, end: "(?<!\\G)(?<=(?:\\2))", endCaptures: {}, patterns: [{ include: "#continuation_of_single_quoted_command_name" }, { include: "#continuation_of_double_quoted_command_name" }] }, { include: "#line_continuation" }, { include: "#simple_unquoted" }] }, command_statement: { begin: "(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.command.shell", patterns: [{ include: "#command_name_range" }, { include: "#line_continuation" }, { include: "#option" }, { include: "#argument" }, { include: "#string" }, { include: "#heredoc" }] }, comment: { captures: { 1: { name: "comment.line.number-sign.shell meta.shebang.shell" }, 2: { name: "punctuation.definition.comment.shebang.shell" }, 3: { name: "comment.line.number-sign.shell" }, 4: { name: "punctuation.definition.comment.shell" } }, match: "(?:(?:^|(?:[ \\t]++))(?:((?:(#!)(?:.*)))|((?:(#)(?:.*)))))" }, comments: { patterns: [{ include: "#block_comment" }, { include: "#line_comment" }] }, "compound-command": { patterns: [{ begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical-expression" }, { include: "#initial_context" }] }, { begin: "(?<=\\s|^){(?=\\s|$)", beginCaptures: { 0: { name: "punctuation.definition.group.shell" } }, end: "(?<=^|;)\\s*(})", endCaptures: { 1: { name: "punctuation.definition.group.shell" } }, name: "meta.scope.group.shell", patterns: [{ include: "#initial_context" }] }] }, continuation_of_double_quoted_command_name: { begin: '(?:\\G(?<="))', beginCaptures: {}, contentName: "meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command", end: '"', endCaptures: { 0: { name: "string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" } }, patterns: [{ match: '\\\\[\\$\\n`"\\\\]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, continuation_of_single_quoted_command_name: { begin: "(?:\\G(?<='))", beginCaptures: {}, contentName: "meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command", end: "'", endCaptures: { 0: { name: "string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" } } }, custom_command_names: { patterns: [] }, custom_commands: { patterns: [] }, double_quote_context: { patterns: [{ match: '\\\\[\\$`"\\\\\\n]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, double_quote_escape_char: { match: '\\\\[\\$`"\\\\\\n]', name: "constant.character.escape.shell" }, floating_keyword: { patterns: [{ match: "(?<=^|;|&| |\\t)(?:then|elif|else|done|end|do|if|fi)(?= |\\t|;|&|$)", name: "keyword.control.$0.shell" }] }, for_statement: { patterns: [{ begin: "(?:(\\bfor\\b)(?:(?:[ \\t]*+)((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:[ \\t]*+)(\\bin\\b)))", beginCaptures: { 1: { name: "keyword.control.for.shell" }, 2: { name: "variable.other.for.shell" }, 3: { name: "keyword.control.in.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.for.in.shell", patterns: [{ include: "#string" }, { include: "#simple_unquoted" }, { include: "#normal_context" }] }, { begin: "(\\bfor\\b)", beginCaptures: { 1: { name: "keyword.control.for.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.for.shell", patterns: [{ include: "#arithmetic_double" }, { include: "#normal_context" }] }] }, function_definition: { applyEndPatternLast: 1, begin: `(?:[ \\t]*+)(?:(?:(\\bfunction\\b)(?:[ \\t]*+)([^ \\t\\n\\r\\(\\)="']+)(?:(?:(\\()(?:[ \\t]*+)(\\)))?))|(?:([^ \\t\\n\\r\\(\\)="']+)(?:[ \\t]*+)(\\()(?:[ \\t]*+)(\\))))`, beginCaptures: { 1: { name: "storage.type.function.shell" }, 2: { name: "entity.name.function.shell" }, 3: { name: "punctuation.definition.arguments.shell" }, 4: { name: "punctuation.definition.arguments.shell" }, 5: { name: "entity.name.function.shell" }, 6: { name: "punctuation.definition.arguments.shell" }, 7: { name: "punctuation.definition.arguments.shell" } }, end: "(?<=\\}|\\))", endCaptures: {}, name: "meta.function.shell", patterns: [{ match: "(?:\\G(?:\\t| |\\n))" }, { begin: "\\{", beginCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, end: "\\}", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, name: "meta.function.body.shell", patterns: [{ include: "#initial_context" }] }, { begin: "\\(", beginCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.group.shell punctuation.section.function.definition.shell" } }, name: "meta.function.body.shell", patterns: [{ include: "#initial_context" }] }, { include: "#initial_context" }] }, heredoc: { patterns: [{ begin: `(?:((?<!<)(?:<<-))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.quote.shell" }, 3: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 4: { name: "punctuation.definition.string.heredoc.quote.shell" }, 5: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.quoted.heredoc.indent.$3", end: "(?:(?:^\\t*)(?:\\3)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.$0.shell" } }, patterns: [] }, { begin: `(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)("|')(?:[ \\t]*+)([^"']+?)(?=\\s|;|&|<|"|')((?:\\2))(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.quote.shell" }, 3: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 4: { name: "punctuation.definition.string.heredoc.quote.shell" }, 5: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.quoted.heredoc.no-indent.$3", end: "(?:^(?:\\3)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [] }, { begin: `(?:((?<!<)(?:<<-))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 3: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.unquoted.heredoc.indent.$2", end: "(?:(?:^\\t*)(?:\\2)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [{ include: "#double_quote_escape_char" }, { include: "#variable" }, { include: "#interpolation" }] }, { begin: `(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)([^"' \\t]+)(?=\\s|;|&|<|"|')(.*))`, beginCaptures: { 1: { name: "keyword.operator.heredoc.shell" }, 2: { name: "punctuation.definition.string.heredoc.delimiter.shell" }, 3: { patterns: [{ include: "#redirect_fix" }, { include: "#typical_statements" }] } }, contentName: "string.unquoted.heredoc.no-indent.$2", end: "(?:^(?:\\2)(?=\\s|;|&|$))", endCaptures: { 0: { name: "punctuation.definition.string.heredoc.delimiter.shell" } }, patterns: [{ include: "#double_quote_escape_char" }, { include: "#variable" }, { include: "#interpolation" }] }] }, herestring: { patterns: [{ begin: "(<<<)\\s*(('))", beginCaptures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.quoted.single.shell" }, 3: { name: "punctuation.definition.string.begin.shell" } }, contentName: "string.quoted.single.shell", end: "(')", endCaptures: { 0: { name: "string.quoted.single.shell" }, 1: { name: "punctuation.definition.string.end.shell" } }, name: "meta.herestring.shell" }, { begin: '(<<<)\\s*(("))', beginCaptures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.quoted.double.shell" }, 3: { name: "punctuation.definition.string.begin.shell" } }, contentName: "string.quoted.double.shell", end: '(")', endCaptures: { 0: { name: "string.quoted.double.shell" }, 1: { name: "punctuation.definition.string.end.shell" } }, name: "meta.herestring.shell", patterns: [{ include: "#double_quote_context" }] }, { captures: { 1: { name: "keyword.operator.herestring.shell" }, 2: { name: "string.unquoted.herestring.shell", patterns: [{ include: "#initial_context" }] } }, match: "(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)", name: "meta.herestring.shell" }] }, initial_context: { patterns: [{ include: "#comment" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#logical_expression_double" }, { include: "#logical_expression_single" }, { include: "#assignment_statement" }, { include: "#case_statement" }, { include: "#for_statement" }, { include: "#loop" }, { include: "#function_definition" }, { include: "#line_continuation" }, { include: "#arithmetic_double" }, { include: "#misc_ranges" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#alias_statement" }, { include: "#normal_statement" }, { include: "#string" }, { include: "#support" }] }, inline_comment: { captures: { 1: { name: "comment.block.shell punctuation.definition.comment.begin.shell" }, 2: { name: "comment.block.shell" }, 3: { patterns: [{ match: "\\*\\/", name: "comment.block.shell punctuation.definition.comment.end.shell" }, { match: "\\*", name: "comment.block.shell" }] } }, match: "(\\/\\*)((?:(?:[^\\*]|(?:(?:\\*++)[^\\/]))*+)((?:(?:\\*++)\\/)))" }, interpolation: { patterns: [{ include: "#arithmetic_dollar" }, { include: "#subshell_dollar" }, { begin: "`", beginCaptures: { 0: { name: "punctuation.definition.evaluation.backticks.shell" } }, end: "`", endCaptures: { 0: { name: "punctuation.definition.evaluation.backticks.shell" } }, name: "string.interpolated.backtick.shell", patterns: [{ match: "\\\\[`\\\\$]", name: "constant.character.escape.shell" }, { begin: "(?<=\\W)(?=#)(?!#{)", beginCaptures: { 1: { name: "punctuation.whitespace.comment.leading.shell" } }, end: "(?!\\G)", patterns: [{ begin: "#", beginCaptures: { 0: { name: "punctuation.definition.comment.shell" } }, end: "(?=`)", name: "comment.line.number-sign.shell" }] }, { include: "#initial_context" }] }] }, keyword: { patterns: [{ match: "(?<=^|;|&|\\s)(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\\s|;|&|$)", name: "keyword.control.shell" }, { match: "(?<=^|;|&|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|&|$)", name: "storage.modifier.shell" }] }, line_comment: { begin: "(?:\\s*+)(\\/\\/)", beginCaptures: { 1: { name: "punctuation.definition.comment.shell" } }, end: "(?<=\\n)(?<!\\\\\\n)", endCaptures: {}, name: "comment.line.double-slash.shell", patterns: [{ include: "#line_continuation_character" }] }, line_continuation: { match: "\\\\(?=\\n)", name: "constant.character.escape.line-continuation.shell" }, "logical-expression": { patterns: [{ include: "#arithmetic_no_dollar" }, { comment: "do we want a special rule for ( expr )?", match: "=[=~]?|!=?|<|>|&&|\\|\\|", name: "keyword.operator.logical.shell" }, { match: "(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b", name: "keyword.operator.logical.shell" }] }, logical_expression_context: { patterns: [{ include: "#regex_comparison" }, { include: "#arithmetic_no_dollar" }, { include: "#logical-expression" }, { include: "#logical_expression_single" }, { include: "#logical_expression_double" }, { include: "#comment" }, { include: "#boolean" }, { include: "#redirect_number" }, { include: "#numeric_literal" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }] }, logical_expression_double: { begin: "\\[\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical_expression_context" }] }, logical_expression_single: { begin: "\\[", beginCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, end: "\\]", endCaptures: { 0: { name: "punctuation.definition.logical-expression.shell" } }, name: "meta.scope.logical-expression.shell", patterns: [{ include: "#logical_expression_context" }] }, loop: { patterns: [{ begin: "(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" }, 2: { name: "variable.other.loop.shell", patterns: [{ include: "#string" }] }, 3: { name: "keyword.control.shell" } }, end: "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", endCaptures: { 0: { name: "keyword.control.shell" } }, name: "meta.scope.for-in-loop.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" } }, end: "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", endCaptures: { 0: { name: "keyword.control.shell" } }, name: "meta.scope.while-loop.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)", beginCaptures: { 1: { name: "keyword.control.shell" }, 2: { name: "variable.other.loop.shell" } }, end: "(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))", endCaptures: { 1: { name: "keyword.control.shell" } }, name: "meta.scope.select-block.shell", patterns: [{ include: "#initial_context" }] }, { begin: "(?<=^|;|&|\\s)if(?=\\s|;|&|$)", beginCaptures: { 0: { name: "keyword.control.if.shell" } }, end: "(?<=^|;|&|\\s)fi(?=\\s|;|&|$)", endCaptures: { 0: { name: "keyword.control.fi.shell" } }, name: "meta.scope.if-block.shell", patterns: [{ include: "#initial_context" }] }] }, math: { patterns: [{ include: "#variable" }, { match: "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", name: "keyword.operator.arithmetic.shell" }, { match: "0[xX][0-9A-Fa-f]+", name: "constant.numeric.hex.shell" }, { match: ";", name: "punctuation.separator.semicolon.range" }, { match: "0\\d+", name: "constant.numeric.octal.shell" }, { match: "\\d{1,2}#[0-9a-zA-Z@_]+", name: "constant.numeric.other.shell" }, { match: "\\d+", name: "constant.numeric.integer.shell" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9]+)(?!\\w)", name: "variable.other.normal.shell" }] }, math_operators: { patterns: [{ match: "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", name: "keyword.operator.arithmetic.shell" }, { match: "0[xX][0-9A-Fa-f]+", name: "constant.numeric.hex.shell" }, { match: "0\\d+", name: "constant.numeric.octal.shell" }, { match: "\\d{1,2}#[0-9a-zA-Z@_]+", name: "constant.numeric.other.shell" }, { match: "\\d+", name: "constant.numeric.integer.shell" }] }, misc_ranges: { patterns: [{ include: "#logical_expression_single" }, { include: "#logical_expression_double" }, { include: "#subshell_dollar" }, { begin: "(?<![^ \\t])({)", beginCaptures: { 1: { name: "punctuation.definition.group.shell" } }, end: "}", endCaptures: { 0: { name: "punctuation.definition.group.shell" } }, name: "meta.scope.group.shell", patterns: [{ include: "#initial_context" }] }] }, modified_assignment_statement: { begin: "(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)", beginCaptures: { 0: { name: "storage.modifier.$0.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.shell meta.expression.assignment.modified.shell", patterns: [{ match: "(?<!\\w)-\\w+\\b", name: "string.unquoted.argument.shell constant.other.option.shell" }, { include: "#array_value" }, { captures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" }, 9: { name: "constant.numeric.shell constant.numeric.hex.shell" }, 10: { name: "constant.numeric.shell constant.numeric.octal.shell" }, 11: { name: "constant.numeric.shell constant.numeric.other.shell" }, 12: { name: "constant.numeric.shell constant.numeric.decimal.shell" }, 13: { name: "constant.numeric.shell constant.numeric.version.shell" }, 14: { name: "constant.numeric.shell constant.numeric.integer.shell" } }, match: "(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?)(?:(?:(?:(\\=)|(\\+\\=))|(\\-\\=))?)(?:(?:(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;))?))" }, { include: "#normal_context" }] }, modifiers: { match: "(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)", name: "storage.modifier.$0.shell" }, normal_assignment_statement: { begin: "(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", beginCaptures: { 1: { name: "variable.other.assignment.shell" }, 2: { name: "punctuation.definition.array.access.shell" }, 3: { name: "variable.other.assignment.shell" }, 4: { name: "constant.numeric.shell constant.numeric.integer.shell" }, 5: { name: "punctuation.definition.array.access.shell" }, 6: { name: "keyword.operator.assignment.shell" }, 7: { name: "keyword.operator.assignment.compound.shell" }, 8: { name: "keyword.operator.assignment.compound.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.expression.assignment.shell", patterns: [{ include: "#comment" }, { include: "#string" }, { include: "#normal_assignment_statement" }, { begin: "(?<= |\\t)(?! |\\t|\\w+=)", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.command.env.shell", patterns: [{ include: "#command_name_range" }, { include: "#line_continuation" }, { include: "#option" }, { include: "#argument" }, { include: "#string" }] }, { include: "#simple_unquoted" }, { include: "#normal_context" }] }, normal_context: { patterns: [{ include: "#comment" }, { include: "#pipeline" }, { include: "#normal_statement_seperator" }, { include: "#misc_ranges" }, { include: "#boolean" }, { include: "#redirect_number" }, { include: "#numeric_literal" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }, { include: "#parenthese" }] }, normal_statement: { begin: "(?:(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))(?:[ \\t]*+)(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$))", beginCaptures: {}, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.statement.shell", patterns: [{ include: "#typical_statements" }] }, normal_statement_seperator: { captures: { 1: { name: "punctuation.terminator.statement.semicolon.shell" }, 2: { name: "punctuation.separator.statement.and.shell" }, 3: { name: "punctuation.separator.statement.or.shell" }, 4: { name: "punctuation.separator.statement.background.shell" } }, match: "(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))" }, numeric_literal: { captures: { 1: { name: "constant.numeric.shell constant.numeric.hex.shell" }, 2: { name: "constant.numeric.shell constant.numeric.octal.shell" }, 3: { name: "constant.numeric.shell constant.numeric.other.shell" }, 4: { name: "constant.numeric.shell constant.numeric.decimal.shell" }, 5: { name: "constant.numeric.shell constant.numeric.version.shell" }, 6: { name: "constant.numeric.shell constant.numeric.integer.shell" } }, match: "(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;)" }, option: { begin: "(?:(?:[ \\t]++)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))))", beginCaptures: { 1: { name: "string.unquoted.argument.shell constant.other.option.dash.shell" }, 2: { name: "string.unquoted.argument.shell constant.other.option.shell" } }, contentName: "string.unquoted.argument constant.other.option", end: "(?:(?=[ \\t])|(?:(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)))", endCaptures: {}, patterns: [{ include: "#option_context" }] }, option_context: { patterns: [{ include: "#misc_ranges" }, { include: "#string" }, { include: "#variable" }, { include: "#interpolation" }, { include: "#heredoc" }, { include: "#herestring" }, { include: "#redirection" }, { include: "#pathname" }, { include: "#floating_keyword" }, { include: "#support" }] }, parenthese: { patterns: [{ begin: "\\(", beginCaptures: { 0: { name: "punctuation.section.parenthese.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.section.parenthese.shell" } }, name: "meta.parenthese.group.shell", patterns: [{ include: "#initial_context" }] }] }, pathname: { patterns: [{ match: "(?<=\\s|:|=|^)~", name: "keyword.operator.tilde.shell" }, { match: "\\*|\\?", name: "keyword.operator.glob.shell" }, { begin: "([?*+@!])(\\()", beginCaptures: { 1: { name: "keyword.operator.extglob.shell" }, 2: { name: "punctuation.definition.extglob.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.extglob.shell" } }, name: "meta.structure.extglob.shell", patterns: [{ include: "#initial_context" }] }] }, pipeline: { patterns: [{ match: "(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)", name: "keyword.other.shell" }, { match: "[|!]", name: "keyword.operator.pipe.shell" }] }, redirect_fix: { captures: { 1: { name: "keyword.operator.redirect.shell" }, 2: { name: "string.unquoted.argument.shell" } }, match: "(?:(>>?)(?:[ \\t]*+)([^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+))" }, redirect_number: { captures: { 1: { name: "keyword.operator.redirect.stdout.shell" }, 2: { name: "keyword.operator.redirect.stderr.shell" }, 3: { name: "keyword.operator.redirect.$3.shell" } }, match: "(?<=[ \\t])(?:(?:(1)|(2)|(\\d+))(?=>))" }, redirection: { patterns: [{ begin: "[><]\\(", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.interpolated.process-substitution.shell", patterns: [{ include: "#initial_context" }] }, { match: "(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])", name: "keyword.operator.redirect.shell" }] }, regex_comparison: { match: "\\=~", name: "keyword.operator.logical.regex.shell" }, regexp: { patterns: [{ match: "(?:.+)" }] }, simple_options: { captures: { 0: { patterns: [{ captures: { 1: { name: "string.unquoted.argument.shell constant.other.option.dash.shell" }, 2: { name: "string.unquoted.argument.shell constant.other.option.shell" } }, match: "(?:[ \\t]++)(\\-)(\\w+)" }] } }, match: "(?:(?:[ \\t]++)\\-(?:\\w+))*" }, simple_unquoted: { match: "[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]", name: "string.unquoted.shell" }, special_expansion: { match: "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", name: "keyword.operator.expansion.shell" }, start_of_command: { match: "(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect |nocorrect$|readonly |readonly |readonly$|function |function |function$|foreach |foreach |foreach$|coproc |coproc |coproc$|logout |logout |logout$|export |export |export$|select |select |select$|repeat |repeat |repeat$|pushd |pushd |pushd$|until |until |until$|while |while |while$|local |local |local$|case |case |case$|done |done |done$|elif |elif |elif$|else |else |else$|esac |esac |esac$|popd |popd |popd$|then |then |then$|time |time |time$|for |for |for$|end |end |end$|fi |fi |fi$|do |do |do$|in |in |in$|if |if |if$)(?!\\\\\\n?$)))" }, string: { patterns: [{ match: "\\\\.", name: "constant.character.escape.shell" }, { begin: "'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.single.shell" }, { begin: '\\$?"', beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: '"', endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.double.shell", patterns: [{ match: '\\\\[\\$\\n`"\\\\]', name: "constant.character.escape.shell" }, { include: "#variable" }, { include: "#interpolation" }] }, { begin: "\\$'", beginCaptures: { 0: { name: "punctuation.definition.string.begin.shell" } }, end: "'", endCaptures: { 0: { name: "punctuation.definition.string.end.shell" } }, name: "string.quoted.single.dollar.shell", patterns: [{ match: "\\\\(?:a|b|e|f|n|r|t|v|\\\\|')", name: "constant.character.escape.ansi-c.shell" }, { match: '\\\\[0-9]{3}"', name: "constant.character.escape.octal.shell" }, { match: '\\\\x[0-9a-fA-F]{2}"', name: "constant.character.escape.hex.shell" }, { match: '\\\\c."', name: "constant.character.escape.control-char.shell" }] }] }, subshell_dollar: { patterns: [{ begin: "(?:\\$\\()", beginCaptures: { 0: { name: "punctuation.definition.subshell.single.shell" } }, end: "\\)", endCaptures: { 0: { name: "punctuation.definition.subshell.single.shell" } }, name: "meta.scope.subshell", patterns: [{ include: "#parenthese" }, { include: "#initial_context" }] }] }, support: { patterns: [{ match: "(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)", name: "support.function.builtin.shell" }] }, typical_statements: { patterns: [{ include: "#assignment_statement" }, { include: "#case_statement" }, { include: "#for_statement" }, { include: "#while_statement" }, { include: "#function_definition" }, { include: "#command_statement" }, { include: "#line_continuation" }, { include: "#arithmetic_double" }, { include: "#normal_context" }] }, variable: { patterns: [{ captures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.all.shell" }, 2: { name: "variable.parameter.positional.all.shell" } }, match: "(?:(\\$)(\\@(?!\\w)))" }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.shell" }, 2: { name: "variable.parameter.positional.shell" } }, match: "(?:(\\$)([0-9](?!\\w)))" }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.language.special.shell" }, 2: { name: "variable.language.special.shell" } }, match: "(?:(\\$)([-*#?$!0_](?!\\w)))" }, { begin: "(?:(\\$)(\\{)(?:[ \\t]*+)(?=\\d))", beginCaptures: { 1: { name: "punctuation.definition.variable.shell variable.parameter.positional.shell" }, 2: { name: "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell" } }, contentName: "meta.parameter-expansion", end: "\\}", endCaptures: { 0: { name: "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell" } }, patterns: [{ include: "#special_expansion" }, { include: "#array_access_inline" }, { match: "[0-9]+", name: "variable.parameter.positional.shell" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)", name: "variable.other.normal.shell" }, { include: "#variable" }, { include: "#string" }] }, { begin: "(?:(\\$)(\\{))", beginCaptures: { 1: { name: "punctuation.definition.variable.shell" }, 2: { name: "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell" } }, contentName: "meta.parameter-expansion", end: "\\}", endCaptures: { 0: { name: "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell" } }, patterns: [{ include: "#special_expansion" }, { include: "#array_access_inline" }, { match: "(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)", name: "variable.other.normal.shell" }, { include: "#variable" }, { include: "#string" }] }, { captures: { 1: { name: "punctuation.definition.variable.shell variable.other.normal.shell" }, 2: { name: "variable.other.normal.shell" } }, match: "(?:(\\$)((?:\\w+)(?!\\w)))" }] }, while_statement: { patterns: [{ begin: "(\\bwhile\\b)", beginCaptures: { 1: { name: "keyword.control.while.shell" } }, end: "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", endCaptures: {}, name: "meta.while.shell", patterns: [{ include: "#line_continuation" }, { include: "#math_operators" }, { include: "#option" }, { include: "#simple_unquoted" }, { include: "#normal_context" }, { include: "#string" }] }] } }, scopeName: "source.shell", aliases: ["bash", "sh", "shell", "zsh"] });
2
- var n = [
3
- e
4
- ];
5
- export {
6
- n as default
7
- };