@spencerboucher/switchyard 0.5.0 → 0.7.0

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 (167) hide show
  1. package/README.md +9 -7
  2. package/dist/bridge/pi-model.js +44 -0
  3. package/dist/bridge/switchyard-bridge.js +24 -2
  4. package/dist/bridge/switchyard-terminal.js +146 -4
  5. package/dist/switchyard.mjs +1301 -700
  6. package/package.json +1 -1
  7. package/web-dist/assets/AutomationView-BIW_pO0M.js +2 -0
  8. package/web-dist/assets/AutomationView-BIW_pO0M.js.map +1 -0
  9. package/web-dist/assets/Badge-BiDp7NKI.js +2 -0
  10. package/web-dist/assets/Badge-BiDp7NKI.js.map +1 -0
  11. package/web-dist/assets/InteractionCard-CWxyDv81.js +6 -0
  12. package/web-dist/assets/InteractionCard-CWxyDv81.js.map +1 -0
  13. package/web-dist/assets/{Menu-C4GUY_ym.js → Menu-BDt1bxwz.js} +2 -2
  14. package/web-dist/assets/Menu-BDt1bxwz.js.map +1 -0
  15. package/web-dist/assets/{SegmentedControl-ChdVilXb.js → SegmentedControl-D-2BCZzd.js} +2 -2
  16. package/web-dist/assets/{SegmentedControl-ChdVilXb.js.map → SegmentedControl-D-2BCZzd.js.map} +1 -1
  17. package/web-dist/assets/Tabs-ByiPklAw.js +184 -0
  18. package/web-dist/assets/Tabs-ByiPklAw.js.map +1 -0
  19. package/web-dist/assets/TextArea-BYr88SnV.js +2 -0
  20. package/web-dist/assets/TextArea-BYr88SnV.js.map +1 -0
  21. package/web-dist/assets/attention-Bya8XHKI.js +2 -0
  22. package/web-dist/assets/attention-Bya8XHKI.js.map +1 -0
  23. package/web-dist/assets/automations-DiXKRcnE.js +2 -0
  24. package/web-dist/assets/automations-DiXKRcnE.js.map +1 -0
  25. package/web-dist/assets/board-BrLaJwLJ.js +10 -0
  26. package/web-dist/assets/board-BrLaJwLJ.js.map +1 -0
  27. package/web-dist/assets/c-Cz4nF6n_.js +1 -0
  28. package/web-dist/assets/c-SSSlmE39.js +2 -0
  29. package/web-dist/assets/c-SSSlmE39.js.map +1 -0
  30. package/web-dist/assets/code-DKLO8bzz.js +11 -0
  31. package/web-dist/assets/code-DKLO8bzz.js.map +1 -0
  32. package/web-dist/assets/cpp-Cts1PyIS.js +2 -0
  33. package/web-dist/assets/cpp-Cts1PyIS.js.map +1 -0
  34. package/web-dist/assets/cpp-DzjeI0uH.js +1 -0
  35. package/web-dist/assets/css-BGIxQoYs.js +2 -0
  36. package/web-dist/assets/css-BGIxQoYs.js.map +1 -0
  37. package/web-dist/assets/css-DgaLhXQH.js +1 -0
  38. package/web-dist/assets/describe-DnvH6_fl.js +5 -0
  39. package/web-dist/assets/describe-DnvH6_fl.js.map +1 -0
  40. package/web-dist/assets/diff-woXpYk--.js +2 -0
  41. package/web-dist/assets/diff-woXpYk--.js.map +1 -0
  42. package/web-dist/assets/dist-BE_V9dwJ.js +56 -0
  43. package/web-dist/assets/dist-BE_V9dwJ.js.map +1 -0
  44. package/web-dist/assets/dockerfile-IyjqRm3v.js +2 -0
  45. package/web-dist/assets/dockerfile-IyjqRm3v.js.map +1 -0
  46. package/web-dist/assets/enroll-DUDpbJoB.js +2 -0
  47. package/web-dist/assets/enroll-DUDpbJoB.js.map +1 -0
  48. package/web-dist/assets/github-dark-C-LZuMrd.js +2 -0
  49. package/web-dist/assets/github-dark-C-LZuMrd.js.map +1 -0
  50. package/web-dist/assets/github-light-EUqPIrTm.js +2 -0
  51. package/web-dist/assets/github-light-EUqPIrTm.js.map +1 -0
  52. package/web-dist/assets/go-rLFTqkRN.js +2 -0
  53. package/web-dist/assets/go-rLFTqkRN.js.map +1 -0
  54. package/web-dist/assets/html-BMn1ogTm.js +2 -0
  55. package/web-dist/assets/html-BMn1ogTm.js.map +1 -0
  56. package/web-dist/assets/html-BWDvXlHg.js +1 -0
  57. package/web-dist/assets/index-DvRcMGEe.css +2 -0
  58. package/web-dist/assets/index-vIzH1m8u.js +11 -0
  59. package/web-dist/assets/index-vIzH1m8u.js.map +1 -0
  60. package/web-dist/assets/java-BtIQNnN0.js +2 -0
  61. package/web-dist/assets/java-BtIQNnN0.js.map +1 -0
  62. package/web-dist/assets/java-_ATy9zCa.js +1 -0
  63. package/web-dist/assets/javascript-BzbQS41l.js +2 -0
  64. package/web-dist/assets/javascript-BzbQS41l.js.map +1 -0
  65. package/web-dist/assets/javascript-CpIGwZ_Y.js +1 -0
  66. package/web-dist/assets/json-qhed-kSA.js +2 -0
  67. package/web-dist/assets/json-qhed-kSA.js.map +1 -0
  68. package/web-dist/assets/jsonc-CYpm1nAK.js +2 -0
  69. package/web-dist/assets/jsonc-CYpm1nAK.js.map +1 -0
  70. package/web-dist/assets/jsx-C4yDKi0A.js +1 -0
  71. package/web-dist/assets/jsx-D3KKoC5L.js +2 -0
  72. package/web-dist/assets/jsx-D3KKoC5L.js.map +1 -0
  73. package/web-dist/assets/logic-xb-QF00E.js +2 -0
  74. package/web-dist/assets/logic-xb-QF00E.js.map +1 -0
  75. package/web-dist/assets/lua-DjuecEsk.js +2 -0
  76. package/web-dist/assets/lua-DjuecEsk.js.map +1 -0
  77. package/web-dist/assets/lua-fPRBWD-V.js +1 -0
  78. package/web-dist/assets/{more-syTnSpW3.js → more-BP5x45cs.js} +2 -2
  79. package/web-dist/assets/{more-syTnSpW3.js.map → more-BP5x45cs.js.map} +1 -1
  80. package/web-dist/assets/now--XjJC37b.js +2 -0
  81. package/web-dist/assets/now--XjJC37b.js.map +1 -0
  82. package/web-dist/assets/python-gzcpVVnB.js +2 -0
  83. package/web-dist/assets/python-gzcpVVnB.js.map +1 -0
  84. package/web-dist/assets/ruby-Bx-U2qjP.js +2 -0
  85. package/web-dist/assets/ruby-Bx-U2qjP.js.map +1 -0
  86. package/web-dist/assets/rust-DpiIf5JO.js +2 -0
  87. package/web-dist/assets/rust-DpiIf5JO.js.map +1 -0
  88. package/web-dist/assets/scss-8bKmll0B.js +2 -0
  89. package/web-dist/assets/scss-8bKmll0B.js.map +1 -0
  90. package/web-dist/assets/send-BKjswHxB.js +2 -0
  91. package/web-dist/assets/send-BKjswHxB.js.map +1 -0
  92. package/web-dist/assets/settings-D8T1esWq.js +7 -0
  93. package/web-dist/assets/settings-D8T1esWq.js.map +1 -0
  94. package/web-dist/assets/shared-CZ7fcu_B.js +3 -0
  95. package/web-dist/assets/shared-CZ7fcu_B.js.map +1 -0
  96. package/web-dist/assets/shellscript-CVTB3cr6.js +1 -0
  97. package/web-dist/assets/shellscript-CqHdAlCp.js +2 -0
  98. package/web-dist/assets/shellscript-CqHdAlCp.js.map +1 -0
  99. package/web-dist/assets/sliders-horizontal-DAoirila.js +2 -0
  100. package/web-dist/assets/sliders-horizontal-DAoirila.js.map +1 -0
  101. package/web-dist/assets/sql-CNu3Or2W.js +2 -0
  102. package/web-dist/assets/sql-CNu3Or2W.js.map +1 -0
  103. package/web-dist/assets/sql-CfM2IJm3.js +1 -0
  104. package/web-dist/assets/states--geW2Ntl.js +2 -0
  105. package/web-dist/assets/states--geW2Ntl.js.map +1 -0
  106. package/web-dist/assets/swift-CyEgAFGc.js +2 -0
  107. package/web-dist/assets/swift-CyEgAFGc.js.map +1 -0
  108. package/web-dist/assets/terminal-login-BJxV78au.js +2 -0
  109. package/web-dist/assets/terminal-login-BJxV78au.js.map +1 -0
  110. package/web-dist/assets/toml-CcmNWLt0.js +2 -0
  111. package/web-dist/assets/toml-CcmNWLt0.js.map +1 -0
  112. package/web-dist/assets/tsx-BOvsFOI6.js +2 -0
  113. package/web-dist/assets/tsx-BOvsFOI6.js.map +1 -0
  114. package/web-dist/assets/tsx-CGosfAUg.js +1 -0
  115. package/web-dist/assets/typescript-Bb1J8qyy.js +1 -0
  116. package/web-dist/assets/typescript-j_1H8WHN.js +2 -0
  117. package/web-dist/assets/typescript-j_1H8WHN.js.map +1 -0
  118. package/web-dist/assets/useNow-jxdoOC_1.js +2 -0
  119. package/web-dist/assets/{useNow-BQpDYijR.js.map → useNow-jxdoOC_1.js.map} +1 -1
  120. package/web-dist/assets/xml-DuKfbPI6.js +1 -0
  121. package/web-dist/assets/xml-WY0zc4PG.js +2 -0
  122. package/web-dist/assets/xml-WY0zc4PG.js.map +1 -0
  123. package/web-dist/assets/yaml-DDA_XMNu.js +1 -0
  124. package/web-dist/assets/yaml-DijMHRDA.js +2 -0
  125. package/web-dist/assets/yaml-DijMHRDA.js.map +1 -0
  126. package/web-dist/index.html +4 -3
  127. package/web-dist/sw.js +1 -1
  128. package/web-dist/sw.js.map +1 -1
  129. package/web-dist/assets/AutomationView-CFohp0SQ.js +0 -2
  130. package/web-dist/assets/AutomationView-CFohp0SQ.js.map +0 -1
  131. package/web-dist/assets/InteractionCard-B-xmpTNG.js +0 -4
  132. package/web-dist/assets/InteractionCard-B-xmpTNG.js.map +0 -1
  133. package/web-dist/assets/Markdown-jXkvZeRp.js +0 -31
  134. package/web-dist/assets/Markdown-jXkvZeRp.js.map +0 -1
  135. package/web-dist/assets/Menu-C4GUY_ym.js.map +0 -1
  136. package/web-dist/assets/Overlay--v0ur2lj.js +0 -2
  137. package/web-dist/assets/Overlay--v0ur2lj.js.map +0 -1
  138. package/web-dist/assets/TextArea-BsQHOQMe.js +0 -2
  139. package/web-dist/assets/TextArea-BsQHOQMe.js.map +0 -1
  140. package/web-dist/assets/attention-q6_xlnT4.js +0 -2
  141. package/web-dist/assets/attention-q6_xlnT4.js.map +0 -1
  142. package/web-dist/assets/automations-CyA83OAD.js +0 -2
  143. package/web-dist/assets/automations-CyA83OAD.js.map +0 -1
  144. package/web-dist/assets/board-BFvNcFhk.js +0 -10
  145. package/web-dist/assets/board-BFvNcFhk.js.map +0 -1
  146. package/web-dist/assets/code-DavnmlQN.js +0 -8
  147. package/web-dist/assets/code-DavnmlQN.js.map +0 -1
  148. package/web-dist/assets/describe-BirsjlUl.js +0 -5
  149. package/web-dist/assets/describe-BirsjlUl.js.map +0 -1
  150. package/web-dist/assets/dist-C-h8FC-n.js +0 -56
  151. package/web-dist/assets/dist-C-h8FC-n.js.map +0 -1
  152. package/web-dist/assets/enroll-C7UBC20s.js +0 -2
  153. package/web-dist/assets/enroll-C7UBC20s.js.map +0 -1
  154. package/web-dist/assets/index-ByiuDoG0.css +0 -2
  155. package/web-dist/assets/index-IdzOP9GE.js +0 -11
  156. package/web-dist/assets/index-IdzOP9GE.js.map +0 -1
  157. package/web-dist/assets/logic-D_Eq9DMW.js +0 -2
  158. package/web-dist/assets/logic-D_Eq9DMW.js.map +0 -1
  159. package/web-dist/assets/now-BqsLS-tK.js +0 -2
  160. package/web-dist/assets/now-BqsLS-tK.js.map +0 -1
  161. package/web-dist/assets/settings-DRj7UPtP.js +0 -8
  162. package/web-dist/assets/settings-DRj7UPtP.js.map +0 -1
  163. package/web-dist/assets/sliders-horizontal-S3tmwxsP.js +0 -2
  164. package/web-dist/assets/sliders-horizontal-S3tmwxsP.js.map +0 -1
  165. package/web-dist/assets/states-DrTQuYXw.js +0 -2
  166. package/web-dist/assets/states-DrTQuYXw.js.map +0 -1
  167. package/web-dist/assets/useNow-BQpDYijR.js +0 -2
@@ -0,0 +1,3 @@
1
+ import{_ as e,i as t,m as n,n as r,t as i}from"./jsx-runtime-D13aM9HY.js";import{r as a}from"./Badge-BiDp7NKI.js";import{P as o,T as s,W as c,d as l,g as u,h as d,l as f,m as p,v as m}from"./states--geW2Ntl.js";import{n as h,t as g}from"./server-SxFxIScj.js";import{n as _,r as v,t as y}from"./sliders-horizontal-DAoirila.js";import{t as b}from"./copy-oWgGHmkS.js";import{t as x}from"./key-round-VDbE9E4X.js";import{F as S,P as C,l as w,r as T}from"./index-vIzH1m8u.js";import{r as ee}from"./TextArea-BYr88SnV.js";import{t as te}from"./dist-BE_V9dwJ.js";var E={name:`database-backup`,size:24,node:[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 12a9 3 0 0 0 5 2.69`,key:`1ui2ym`}],[`path`,{d:`M21 9.3V5`,key:`6k6cib`}],[`path`,{d:`M3 5v14a9 3 0 0 0 6.47 2.88`,key:`i62tjy`}],[`path`,{d:`M12 12v4h4`,key:`1bxaet`}],[`path`,{d:`M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16`,key:`1f4ei9`}]]};E.node;var D=r(E),O={name:`keyboard`,size:24,node:[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]};O.node;var k=r(O),A={name:`monitor-smartphone`,size:24,node:[[`path`,{d:`M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8`,key:`10dyio`}],[`path`,{d:`M10 19v-3.96 3.15`,key:`1irgej`}],[`path`,{d:`M7 19h5`,key:`qswx4l`}],[`rect`,{width:`6`,height:`10`,x:`16`,y:`12`,rx:`2`,key:`1egngj`}]]};A.node;var j=r(A),M={name:`rotate-ccw-clock`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]],aliases:[`history`]};M.node;var N=r(M),P={name:`stethoscope`,size:24,node:[[`path`,{d:`M11 2v2`,key:`1539x4`}],[`path`,{d:`M5 2v2`,key:`1yf1q8`}],[`path`,{d:`M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1`,key:`rb5t3r`}],[`path`,{d:`M8 15a6 6 0 0 0 12 0v-3`,key:`x18d4x`}],[`circle`,{cx:`20`,cy:`10`,r:`2`,key:`ts1r5v`}]]};P.node;var F=r(P),I={name:`terminal`,size:24,node:[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]};I.node;var L=r(I),R=e(n(),1),z=i(),B=[{path:`hosts`,label:`Hosts`,description:`Execution hosts, capabilities and versions`,icon:g},{path:`devices`,label:`Devices`,description:`Signed-in browsers, apps and terminals`,icon:j},{path:`sign-in`,label:`Sign-in`,description:`Passkeys, single sign-on and signing out`,icon:x},{path:`projects`,label:`Projects`,description:`Repositories, checkouts and workspaces`,icon:_},{path:`profiles`,label:`Pi profiles`,description:`Provider, model and thinking presets`,icon:y},{path:`adapters`,label:`Adapters`,description:`Extension adapters on each host`,icon:m},{path:`notifications`,label:`Notifications`,description:`Push, quiet hours and previews`,icon:S},{path:`backups`,label:`Backups`,description:`Back up and restore the coordinator`,icon:D},{path:`diagnostics`,label:`Diagnostics`,description:`Versions, migrations, events and recent problems`,icon:F},{path:`device`,label:`This device`,description:`Preferences stored on this device`,icon:k}],V=e=>e?`/settings/${e}`:`/settings`;function H({title:e,description:n,actions:r,back:i,testId:a,children:o}){let s=T(),c=i??(s===`mobile`?{to:`/settings`,label:`Settings`}:null);return(0,z.jsxs)(`section`,{"data-testid":a,className:`flex w-full min-w-0 flex-col gap-4 px-4 py-4 md:px-6`,children:[c&&(0,z.jsxs)(t,{to:c.to,className:`tap -ml-2 inline-flex w-fit items-center gap-1 rounded-md px-2 py-1 text-sm font-medium text-accent hover:bg-surface-2`,children:[(0,z.jsx)(v,{"aria-hidden":!0,className:`size-4`}),`Back to `,c.label]}),(0,z.jsxs)(`header`,{className:`flex min-w-0 flex-wrap items-start gap-3`,children:[(0,z.jsxs)(`div`,{className:`min-w-0 flex-[1_1_15rem]`,children:[(0,z.jsx)(`h1`,{className:`break-words text-lg font-semibold`,children:e}),n&&(0,z.jsx)(`p`,{className:`text-sm text-muted`,children:n})]}),r&&(0,z.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:r})]}),o]})}function U({title:e,description:t,actions:n,children:r,className:i}){return(0,z.jsxs)(`section`,{className:d(`min-w-0 rounded-lg border border-border bg-surface p-4`,i),children:[(e||n)&&(0,z.jsxs)(`div`,{className:`mb-3 flex min-w-0 flex-wrap items-start gap-2`,children:[(0,z.jsxs)(`div`,{className:`min-w-0 flex-[1_1_12rem]`,children:[e&&(0,z.jsx)(`h2`,{className:`text-base font-semibold`,children:e}),t&&(0,z.jsx)(`p`,{className:`text-sm text-muted`,children:t})]}),n&&(0,z.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:n})]}),r]})}function W({items:e}){return(0,z.jsx)(`dl`,{className:`grid min-w-0 gap-x-4 gap-y-1 text-sm sm:grid-cols-[minmax(8rem,12rem)_minmax(0,1fr)]`,children:e.map(([e,t],n)=>(0,z.jsxs)(`div`,{className:`contents`,children:[(0,z.jsx)(`dt`,{className:`text-muted`,children:e}),(0,z.jsx)(`dd`,{className:`mb-1 min-w-0 break-words sm:mb-0`,children:t})]},n))})}function ne(){let e=s();return e.state===`live`||e.state===`connecting`?null:(0,z.jsxs)(`p`,{role:`status`,className:`flex items-center gap-1.5 text-sm text-muted`,children:[(0,z.jsx)(N,{"aria-hidden":!0,className:`size-4 shrink-0`}),(0,z.jsxs)(`span`,{children:[`Showing last known data`,e.lastSyncedAt?` from ${p(e.lastSyncedAt)}`:``,`. Changes made elsewhere appear after reconnecting.`]})]})}function G(){return o(e=>e.hydrated)}function K({icon:e,label:t,tone:n=`neutral`,spin:r,className:i}){return(0,z.jsxs)(`span`,{className:d(`inline-flex max-w-full items-center gap-1 rounded-full border px-2 text-xs leading-6 font-medium`,a[n],i),children:[r?(0,z.jsx)(l,{className:`size-3.5`}):(0,z.jsx)(e,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,z.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]})}var q={darwin:`macOS`,linux:`Linux`};function J({host:e}){return e.piVersion?e.piCompatible?(0,z.jsx)(K,{icon:C,tone:`success`,label:`Pi ${e.piVersion} (compatible)`}):(0,z.jsx)(K,{icon:u,tone:`danger`,label:`Pi ${e.piVersion} (incompatible, needs ${te})`}):(0,z.jsx)(K,{icon:u,tone:`warning`,label:`Pi not detected (incompatible)`})}function Y({id:e,label:t,hint:n,error:r,children:i,className:a}){return(0,z.jsxs)(`div`,{className:d(`flex w-full min-w-0 max-w-2xl flex-col gap-1`,a),children:[(0,z.jsx)(`label`,{htmlFor:e,className:`text-sm font-medium`,children:t}),i,n&&(0,z.jsx)(`p`,{id:`${e}-hint`,className:`text-xs text-muted`,children:n}),r&&(0,z.jsxs)(`p`,{id:`${e}-error`,className:`flex items-start gap-1 text-xs text-danger`,children:[(0,z.jsx)(u,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0`}),(0,z.jsx)(`span`,{className:`min-w-0 whitespace-pre-line break-words`,children:r})]})]})}function X(e,t){let n=[t.hint&&`${e}-hint`,t.error&&`${e}-error`].filter(Boolean);return{"aria-describedby":n.length?n.join(` `):void 0,"aria-invalid":t.error?!0:void 0}}function Z({className:e,children:t,...n}){return(0,z.jsx)(`select`,{className:d(`tap block h-9 w-full min-w-0 rounded-md border border-border bg-surface px-2 text-base text-text md:text-sm`,`focus:border-accent focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-0`,e),...n,children:t})}function re({label:e,description:t,checked:n,onChange:r,disabled:i}){let a=(0,R.useId)();return(0,z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,z.jsx)(`input`,{id:a,type:`checkbox`,role:`switch`,"aria-checked":n,checked:n,disabled:i,onChange:e=>r(e.target.checked),"aria-describedby":t?`${a}-desc`:void 0,className:`peer sr-only`}),(0,z.jsxs)(`label`,{htmlFor:a,className:d(`tap flex min-w-0 flex-1 cursor-pointer items-start gap-3 rounded-md`,`peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--sy-focus)]`,i&&`cursor-not-allowed opacity-60`),children:[(0,z.jsx)(`span`,{"aria-hidden":!0,className:d(`relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border transition-colors`,n?`border-accent bg-accent`:`border-border-strong bg-surface-3`),children:(0,z.jsx)(`span`,{className:d(`absolute size-4 rounded-full bg-surface shadow transition-transform`,n?`translate-x-5`:`translate-x-1`)})}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`span`,{className:`block text-sm font-medium`,children:[e,` `,(0,z.jsxs)(`span`,{className:`font-normal text-muted`,children:[`(`,n?`On`:`Off`,`)`]})]}),t&&(0,z.jsx)(`span`,{id:`${a}-desc`,className:`block text-sm text-muted`,children:t})]})]})]})}function ie({label:e,description:t,checked:n,onChange:r}){let i=(0,R.useId)();return(0,z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,z.jsx)(`input`,{id:i,type:`checkbox`,checked:n,onChange:e=>r(e.target.checked),"aria-describedby":t?`${i}-desc`:void 0,className:`tap mt-0.5 size-5 shrink-0 accent-[var(--sy-accent)]`}),(0,z.jsxs)(`label`,{htmlFor:i,className:`min-w-0 flex-1 cursor-pointer text-sm`,children:[(0,z.jsx)(`span`,{className:`block font-medium`,children:e}),t&&(0,z.jsx)(`span`,{id:`${i}-desc`,className:`block text-muted`,children:t})]})]})}function ae(e){let t=e.trim();return t?t.startsWith(`/`)?null:`Use an absolute path that starts with /, e.g. /Users/me/src/app.`:`Enter the path of the checkout on the host.`}function oe(e){if(typeof e!=`object`||!e)return!1;let t=e;return Array.isArray(t.passkeys)&&typeof t.passkeyAvailability==`object`}function se(e){return e.split(`
2
+ `).map(e=>e.trim()).filter(Boolean)}function Q({error:e}){return e?(0,z.jsxs)(`p`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-border bg-danger-soft px-3 py-2 text-sm`,children:[(0,z.jsx)(u,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0 text-danger`}),(0,z.jsx)(`span`,{className:`min-w-0 break-words`,children:c(e)})]}):null}async function $(e,t=`Copied to clipboard`){try{return await navigator.clipboard.writeText(e),w.success(t),!0}catch{return w.error(`Could not copy. Select the text and copy it manually.`),!1}}function ce({text:e,label:t=`Copy`,toastMessage:n,size:r=`sm`}){let[i,a]=(0,R.useState)(!1),o=(0,R.useRef)(null);return(0,R.useEffect)(()=>()=>void(o.current&&clearTimeout(o.current)),[]),(0,z.jsx)(f,{size:r,icon:i?(0,z.jsx)(h,{className:`size-4`}):(0,z.jsx)(b,{className:`size-4`}),onClick:async()=>{await $(e,n)&&(a(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>a(!1),2e3))},children:i?`Copied`:t})}function le({text:e,label:t,copyLabel:n=`Copy`}){return(0,z.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start`,children:[(0,z.jsx)(`figcaption`,{className:`sr-only`,children:t}),(0,z.jsx)(`pre`,{className:`min-w-0 flex-1 whitespace-pre-wrap break-all rounded-md border border-border bg-surface-2 px-3 py-2 font-mono text-sm`,children:e}),(0,z.jsx)(ce,{text:e,label:n})]})}function ue(e){let[t,n]=(0,R.useState)(()=>Date.now());if((0,R.useEffect)(()=>{if(!e)return;n(Date.now());let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),!e)return null;let r=Date.parse(e);return Number.isNaN(r)?null:Math.max(0,r-t)}function de(e){let t=Math.ceil(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function fe({open:e,onClose:t,title:n,description:r,confirmLabel:i,onConfirm:a,busy:o,error:s,danger:c=!0,confirmDisabled:l,disabledReason:u,children:d}){return(0,z.jsx)(ee,{open:e,onClose:o?()=>void 0:t,dismissOnBackdrop:!o,title:n,description:r,footer:(0,z.jsxs)(z.Fragment,{children:[l&&u&&(0,z.jsx)(`p`,{className:`mr-auto min-w-0 flex-1 basis-full text-xs text-muted sm:basis-auto`,children:u}),(0,z.jsx)(f,{onClick:t,disabled:o,children:`Cancel`}),(0,z.jsx)(f,{variant:c?`danger`:`primary`,busy:o,disabled:l,onClick:a,children:i})]}),children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[d,(0,z.jsx)(Q,{error:s})]})})}export{G as C,j as E,ue as S,L as T,X as _,Y as a,V as b,W as c,J as d,B as f,$ as g,re as h,le as i,ne as l,Z as m,ie as n,Q as o,H as p,fe as r,K as s,U as t,q as u,de as v,ae as w,se as x,oe as y};
3
+ //# sourceMappingURL=shared-CZ7fcu_B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-CZ7fcu_B.js","names":["__iconData","__iconData","__iconData","__iconData","__iconData","History","useId","useState","useRef","_Fragment","__toESM","Link","require_react","createLucideIcon","require_jsx_runtime","TONE_CLASSES","useSyncStore","useConnection","errorMessage","Spinner","TriangleAlert","cn","Button","formatTime","Puzzle","Check","Server","FolderGit2","ChevronLeft","SlidersHorizontal","Copy","KeyRound","Bell","CircleCheck","toast","useBreakpoint","Dialog","PI_SUPPORTED_RANGE","__iconData$5","DatabaseBackup","__iconData$4","Keyboard","__iconData$3","MonitorSmartphone","__iconData$2","RotateCcwClock","__iconData$1","Stethoscope","__iconData","Terminal","import_react","import_jsx_runtime","SECTIONS","settingsPath","sub","SectionPage","bp","backLink","back","testId","title","description","actions","children","Card","className","KeyValues","items","k","v","i","LastKnownNote","connection","useHydrated","s","InlineStatus","Icon","tone","spin","label","PLATFORM_LABEL","PiCompat","host","Field","id","hint","error","describedBy","ids","opts","SelectInput","rest","Toggle","checked","onChange","disabled","Checkbox","validateAbsolutePath","p","path","isAuthMethods","m","splitLines","text","l","InlineError","copyText","what","CopyButton","copied","setCopied","timer","toastMessage","CopyBlock","copyLabel","useCountdown","now","setNow","iso","at","formatCountdown","ms","ConfirmDialog","busy","onClose","confirmDisabled","disabledReason","danger","onConfirm","confirmLabel"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/database-backup.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/keyboard.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/monitor-smartphone.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/rotate-ccw-clock.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/stethoscope.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/terminal.mjs","../../src/features/settings/shared.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"database-backup\",\n size: 24,\n node: [\n [\"ellipse\", { cx: \"12\", cy: \"5\", rx: \"9\", ry: \"3\", key: \"msslwz\" }],\n [\"path\", { d: \"M3 12a9 3 0 0 0 5 2.69\", key: \"1ui2ym\" }],\n [\"path\", { d: \"M21 9.3V5\", key: \"6k6cib\" }],\n [\"path\", { d: \"M3 5v14a9 3 0 0 0 6.47 2.88\", key: \"i62tjy\" }],\n [\"path\", { d: \"M12 12v4h4\", key: \"1bxaet\" }],\n [\n \"path\",\n {\n d: \"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16\",\n key: \"1f4ei9\"\n }\n ]\n ]\n};\n__iconData.node;\nconst DatabaseBackup = createLucideIcon(__iconData);\n\nexport { __iconData, DatabaseBackup as default };\n//# sourceMappingURL=database-backup.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"keyboard\",\n size: 24,\n node: [\n [\"path\", { d: \"M10 8h.01\", key: \"1r9ogq\" }],\n [\"path\", { d: \"M12 12h.01\", key: \"1mp3jc\" }],\n [\"path\", { d: \"M14 8h.01\", key: \"1primd\" }],\n [\"path\", { d: \"M16 12h.01\", key: \"1l6xoz\" }],\n [\"path\", { d: \"M18 8h.01\", key: \"emo2bl\" }],\n [\"path\", { d: \"M6 8h.01\", key: \"x9i8wu\" }],\n [\"path\", { d: \"M7 16h10\", key: \"wp8him\" }],\n [\"path\", { d: \"M8 12h.01\", key: \"czm47f\" }],\n [\"rect\", { width: \"20\", height: \"16\", x: \"2\", y: \"4\", rx: \"2\", key: \"18n3k1\" }]\n ]\n};\n__iconData.node;\nconst Keyboard = createLucideIcon(__iconData);\n\nexport { __iconData, Keyboard as default };\n//# sourceMappingURL=keyboard.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"monitor-smartphone\",\n size: 24,\n node: [\n [\"path\", { d: \"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8\", key: \"10dyio\" }],\n [\"path\", { d: \"M10 19v-3.96 3.15\", key: \"1irgej\" }],\n [\"path\", { d: \"M7 19h5\", key: \"qswx4l\" }],\n [\"rect\", { width: \"6\", height: \"10\", x: \"16\", y: \"12\", rx: \"2\", key: \"1egngj\" }]\n ]\n};\n__iconData.node;\nconst MonitorSmartphone = createLucideIcon(__iconData);\n\nexport { __iconData, MonitorSmartphone as default };\n//# sourceMappingURL=monitor-smartphone.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"rotate-ccw-clock\",\n size: 24,\n node: [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M12 7v5l4 2\", key: \"1fdv2h\" }]\n ],\n aliases: [\"history\"]\n};\n__iconData.node;\nconst RotateCcwClock = createLucideIcon(__iconData);\n\nexport { __iconData, RotateCcwClock as default };\n//# sourceMappingURL=rotate-ccw-clock.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"stethoscope\",\n size: 24,\n node: [\n [\"path\", { d: \"M11 2v2\", key: \"1539x4\" }],\n [\"path\", { d: \"M5 2v2\", key: \"1yf1q8\" }],\n [\"path\", { d: \"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\", key: \"rb5t3r\" }],\n [\"path\", { d: \"M8 15a6 6 0 0 0 12 0v-3\", key: \"x18d4x\" }],\n [\"circle\", { cx: \"20\", cy: \"10\", r: \"2\", key: \"ts1r5v\" }]\n ]\n};\n__iconData.node;\nconst Stethoscope = createLucideIcon(__iconData);\n\nexport { __iconData, Stethoscope as default };\n//# sourceMappingURL=stethoscope.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"terminal\",\n size: 24,\n node: [\n [\"path\", { d: \"M12 19h8\", key: \"baeox8\" }],\n [\"path\", { d: \"m4 17 6-6-6-6\", key: \"1yngyt\" }]\n ]\n};\n__iconData.node;\nconst Terminal = createLucideIcon(__iconData);\n\nexport { __iconData, Terminal as default };\n//# sourceMappingURL=terminal.mjs.map\n","import type { Host } from \"@switchyard/protocol\";\nimport { PI_SUPPORTED_RANGE } from \"@switchyard/protocol\";\nimport {\n Bell,\n Check,\n ChevronLeft,\n CircleCheck,\n Copy,\n DatabaseBackup,\n FolderGit2,\n History,\n Keyboard,\n KeyRound,\n type LucideIcon,\n MonitorSmartphone,\n Puzzle,\n Server,\n SlidersHorizontal,\n Stethoscope,\n TriangleAlert,\n} from \"lucide-react\";\nimport { type ReactNode, useEffect, useId, useRef, useState } from \"react\";\nimport { Link } from \"react-router\";\nimport { useBreakpoint } from \"../../app/useBreakpoint\";\nimport { TONE_CLASSES, type Tone } from \"../../components/ui/Badge\";\nimport { Button } from \"../../components/ui/Button\";\nimport { Dialog } from \"../../components/ui/Overlay\";\nimport { Spinner } from \"../../components/ui/Spinner\";\nimport { toast } from \"../../components/ui/Toast\";\nimport { cn } from \"../../lib/cn\";\nimport { formatTime } from \"../../lib/time\";\nimport { errorMessage } from \"../../sync/api\";\nimport { useConnection, useSyncStore } from \"../../sync/store\";\n\n/* ------------------------------------------------------------------ */\n/* Sections */\n/* ------------------------------------------------------------------ */\n\nexport interface SectionDef {\n path: string;\n label: string;\n description: string;\n icon: LucideIcon;\n}\n\nexport const SECTIONS: SectionDef[] = [\n {\n path: \"hosts\",\n label: \"Hosts\",\n description: \"Execution hosts, capabilities and versions\",\n icon: Server,\n },\n {\n path: \"devices\",\n label: \"Devices\",\n description: \"Signed-in browsers, apps and terminals\",\n icon: MonitorSmartphone,\n },\n {\n path: \"sign-in\",\n label: \"Sign-in\",\n description: \"Passkeys, single sign-on and signing out\",\n icon: KeyRound,\n },\n {\n path: \"projects\",\n label: \"Projects\",\n description: \"Repositories, checkouts and workspaces\",\n icon: FolderGit2,\n },\n {\n path: \"profiles\",\n label: \"Pi profiles\",\n description: \"Provider, model and thinking presets\",\n icon: SlidersHorizontal,\n },\n {\n path: \"adapters\",\n label: \"Adapters\",\n description: \"Extension adapters on each host\",\n icon: Puzzle,\n },\n {\n path: \"notifications\",\n label: \"Notifications\",\n description: \"Push, quiet hours and previews\",\n icon: Bell,\n },\n {\n path: \"backups\",\n label: \"Backups\",\n description: \"Back up and restore the coordinator\",\n icon: DatabaseBackup,\n },\n {\n path: \"diagnostics\",\n label: \"Diagnostics\",\n description: \"Versions, migrations, events and recent problems\",\n icon: Stethoscope,\n },\n {\n path: \"device\",\n label: \"This device\",\n description: \"Preferences stored on this device\",\n icon: Keyboard,\n },\n];\n\nexport const settingsPath = (sub?: string) => (sub ? `/settings/${sub}` : \"/settings\");\n\n/* ------------------------------------------------------------------ */\n/* Page scaffolding */\n/* ------------------------------------------------------------------ */\n\n/**\n * A settings page: heading, optional actions and a Back link. Top-level\n * sections show \"Back to Settings\" on mobile only (desktop has the section\n * nav); detail pages pass an explicit `back` shown everywhere.\n */\nexport function SectionPage({\n title,\n description,\n actions,\n back,\n testId,\n children,\n}: {\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n back?: { to: string; label: string };\n testId?: string;\n children?: ReactNode;\n}) {\n const bp = useBreakpoint();\n const backLink = back ?? (bp === \"mobile\" ? { to: \"/settings\", label: \"Settings\" } : null);\n return (\n <section data-testid={testId} className=\"flex w-full min-w-0 flex-col gap-4 px-4 py-4 md:px-6\">\n {backLink && (\n <Link\n to={backLink.to}\n className=\"tap -ml-2 inline-flex w-fit items-center gap-1 rounded-md px-2 py-1 text-sm font-medium text-accent hover:bg-surface-2\"\n >\n <ChevronLeft aria-hidden className=\"size-4\" />\n Back to {backLink.label}\n </Link>\n )}\n <header className=\"flex min-w-0 flex-wrap items-start gap-3\">\n <div className=\"min-w-0 flex-[1_1_15rem]\">\n <h1 className=\"break-words text-lg font-semibold\">{title}</h1>\n {description && <p className=\"text-sm text-muted\">{description}</p>}\n </div>\n {actions && <div className=\"flex flex-wrap items-center gap-2\">{actions}</div>}\n </header>\n {children}\n </section>\n );\n}\n\n/** A titled block inside a settings page. */\nexport function Card({\n title,\n description,\n actions,\n children,\n className,\n}: {\n title?: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n children?: ReactNode;\n className?: string;\n}) {\n return (\n <section className={cn(\"min-w-0 rounded-lg border border-border bg-surface p-4\", className)}>\n {(title || actions) && (\n <div className=\"mb-3 flex min-w-0 flex-wrap items-start gap-2\">\n <div className=\"min-w-0 flex-[1_1_12rem]\">\n {title && <h2 className=\"text-base font-semibold\">{title}</h2>}\n {description && <p className=\"text-sm text-muted\">{description}</p>}\n </div>\n {actions && <div className=\"flex flex-wrap items-center gap-2\">{actions}</div>}\n </div>\n )}\n {children}\n </section>\n );\n}\n\n/** Key/value list that stacks on narrow screens. */\nexport function KeyValues({ items }: { items: [ReactNode, ReactNode][] }) {\n return (\n <dl className=\"grid min-w-0 gap-x-4 gap-y-1 text-sm sm:grid-cols-[minmax(8rem,12rem)_minmax(0,1fr)]\">\n {items.map(([k, v], i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: static, order-stable list\n <div key={i} className=\"contents\">\n <dt className=\"text-muted\">{k}</dt>\n <dd className=\"mb-1 min-w-0 break-words sm:mb-0\">{v}</dd>\n </div>\n ))}\n </dl>\n );\n}\n\n/** \"Showing last known data\" when the live connection is down (spec 18). */\nexport function LastKnownNote() {\n const connection = useConnection();\n if (connection.state === \"live\" || connection.state === \"connecting\") return null;\n return (\n <p role=\"status\" className=\"flex items-center gap-1.5 text-sm text-muted\">\n <History aria-hidden className=\"size-4 shrink-0\" />\n <span>\n Showing last known data\n {connection.lastSyncedAt ? ` from ${formatTime(connection.lastSyncedAt)}` : \"\"}. Changes\n made elsewhere appear after reconnecting.\n </span>\n </p>\n );\n}\n\n/** Whether store-backed data is available yet. */\nexport function useHydrated(): boolean {\n return useSyncStore((s) => s.hydrated);\n}\n\n/** Icon plus text status, the tone only reinforces. */\nexport function InlineStatus({\n icon: Icon,\n label,\n tone = \"neutral\",\n spin,\n className,\n}: {\n icon: LucideIcon;\n label: ReactNode;\n tone?: Tone;\n spin?: boolean;\n className?: string;\n}) {\n return (\n <span\n className={cn(\n \"inline-flex max-w-full items-center gap-1 rounded-full border px-2 text-xs leading-6 font-medium\",\n TONE_CLASSES[tone],\n className,\n )}\n >\n {spin ? <Spinner className=\"size-3.5\" /> : <Icon aria-hidden className=\"size-3.5 shrink-0\" />}\n <span className=\"min-w-0 truncate\">{label}</span>\n </span>\n );\n}\n\nexport const PLATFORM_LABEL: Record<Host[\"platform\"], string> = {\n darwin: \"macOS\",\n linux: \"Linux\",\n};\n\n/** Pi version plus compatible/incompatible text. */\nexport function PiCompat({ host }: { host: Pick<Host, \"piVersion\" | \"piCompatible\"> }) {\n if (!host.piVersion) {\n return (\n <InlineStatus icon={TriangleAlert} tone=\"warning\" label=\"Pi not detected (incompatible)\" />\n );\n }\n return host.piCompatible ? (\n <InlineStatus icon={CircleCheck} tone=\"success\" label={`Pi ${host.piVersion} (compatible)`} />\n ) : (\n <InlineStatus\n icon={TriangleAlert}\n tone=\"danger\"\n label={`Pi ${host.piVersion} (incompatible, needs ${PI_SUPPORTED_RANGE})`}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Form controls */\n/* ------------------------------------------------------------------ */\n\n/** Label, control, hint and error. The control must use `id` and `describedBy`. */\nexport function Field({\n id,\n label,\n hint,\n error,\n children,\n className,\n}: {\n id: string;\n label: ReactNode;\n hint?: ReactNode;\n error?: string | null;\n children: ReactNode;\n className?: string;\n}) {\n return (\n <div className={cn(\"flex w-full min-w-0 max-w-2xl flex-col gap-1\", className)}>\n <label htmlFor={id} className=\"text-sm font-medium\">\n {label}\n </label>\n {children}\n {hint && (\n <p id={`${id}-hint`} className=\"text-xs text-muted\">\n {hint}\n </p>\n )}\n {error && (\n <p id={`${id}-error`} className=\"flex items-start gap-1 text-xs text-danger\">\n <TriangleAlert aria-hidden className=\"mt-0.5 size-3.5 shrink-0\" />\n <span className=\"min-w-0 whitespace-pre-line break-words\">{error}</span>\n </p>\n )}\n </div>\n );\n}\n\n/** aria-describedby / aria-invalid props for a Field control. */\nexport function describedBy(id: string, opts: { hint?: boolean; error?: string | null }) {\n const ids = [opts.hint && `${id}-hint`, opts.error && `${id}-error`].filter(Boolean);\n return {\n \"aria-describedby\": ids.length ? ids.join(\" \") : undefined,\n \"aria-invalid\": opts.error ? true : undefined,\n } as const;\n}\n\n/** Native select styled like TextInput. */\nexport function SelectInput({\n className,\n children,\n ...rest\n}: React.SelectHTMLAttributes<HTMLSelectElement>) {\n return (\n <select\n className={cn(\n \"tap block h-9 w-full min-w-0 rounded-md border border-border bg-surface px-2 text-base text-text md:text-sm\",\n \"focus:border-accent focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-0\",\n className,\n )}\n {...rest}\n >\n {children}\n </select>\n );\n}\n\n/** On/off switch built on a checkbox, with the state written out. */\nexport function Toggle({\n label,\n description,\n checked,\n onChange,\n disabled,\n}: {\n label: ReactNode;\n description?: ReactNode;\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n}) {\n const id = useId();\n return (\n <div className=\"flex min-w-0 items-start gap-3\">\n <input\n id={id}\n type=\"checkbox\"\n role=\"switch\"\n aria-checked={checked}\n checked={checked}\n disabled={disabled}\n onChange={(e) => onChange(e.target.checked)}\n aria-describedby={description ? `${id}-desc` : undefined}\n className=\"peer sr-only\"\n />\n <label\n htmlFor={id}\n className={cn(\n \"tap flex min-w-0 flex-1 cursor-pointer items-start gap-3 rounded-md\",\n \"peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--sy-focus)]\",\n disabled && \"cursor-not-allowed opacity-60\",\n )}\n >\n <span\n aria-hidden\n className={cn(\n \"relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border transition-colors\",\n checked ? \"border-accent bg-accent\" : \"border-border-strong bg-surface-3\",\n )}\n >\n <span\n className={cn(\n \"absolute size-4 rounded-full bg-surface shadow transition-transform\",\n checked ? \"translate-x-5\" : \"translate-x-1\",\n )}\n />\n </span>\n <span className=\"min-w-0 flex-1\">\n <span className=\"block text-sm font-medium\">\n {label} <span className=\"font-normal text-muted\">({checked ? \"On\" : \"Off\"})</span>\n </span>\n {description && (\n <span id={`${id}-desc`} className=\"block text-sm text-muted\">\n {description}\n </span>\n )}\n </span>\n </label>\n </div>\n );\n}\n\n/** A labelled checkbox (used for explicit confirmations). */\nexport function Checkbox({\n label,\n description,\n checked,\n onChange,\n}: {\n label: ReactNode;\n description?: ReactNode;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}) {\n const id = useId();\n return (\n <div className=\"flex min-w-0 items-start gap-2\">\n <input\n id={id}\n type=\"checkbox\"\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n aria-describedby={description ? `${id}-desc` : undefined}\n className=\"tap mt-0.5 size-5 shrink-0 accent-[var(--sy-accent)]\"\n />\n <label htmlFor={id} className=\"min-w-0 flex-1 cursor-pointer text-sm\">\n <span className=\"block font-medium\">{label}</span>\n {description && (\n <span id={`${id}-desc`} className=\"block text-muted\">\n {description}\n </span>\n )}\n </label>\n </div>\n );\n}\n\n/** Validate an absolute host path; returns an error message or null. */\nexport function validateAbsolutePath(path: string): string | null {\n const p = path.trim();\n if (!p) return \"Enter the path of the checkout on the host.\";\n if (!p.startsWith(\"/\")) return \"Use an absolute path that starts with /, e.g. /Users/me/src/app.\";\n return null;\n}\n\n/** Shape check for GET /api/auth/methods. */\nexport function isAuthMethods(v: unknown): boolean {\n if (typeof v !== \"object\" || v === null) return false;\n const m = v as { passkeys?: unknown; passkeyAvailability?: unknown };\n return Array.isArray(m.passkeys) && typeof m.passkeyAvailability === \"object\";\n}\n\n/** Split a textarea into trimmed non-empty lines. */\nexport function splitLines(text: string): string[] {\n return text\n .split(\"\\n\")\n .map((l) => l.trim())\n .filter(Boolean);\n}\n\n/** Inline error message for a failed mutation. */\nexport function InlineError({ error }: { error: unknown }) {\n if (!error) return null;\n return (\n <p\n role=\"alert\"\n className=\"flex items-start gap-2 rounded-md border border-border bg-danger-soft px-3 py-2 text-sm\"\n >\n <TriangleAlert aria-hidden className=\"mt-0.5 size-4 shrink-0 text-danger\" />\n <span className=\"min-w-0 break-words\">{errorMessage(error)}</span>\n </p>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Copy */\n/* ------------------------------------------------------------------ */\n\nexport async function copyText(text: string, what = \"Copied to clipboard\"): Promise<boolean> {\n try {\n await navigator.clipboard.writeText(text);\n toast.success(what);\n return true;\n } catch {\n toast.error(\"Could not copy. Select the text and copy it manually.\");\n return false;\n }\n}\n\nexport function CopyButton({\n text,\n label = \"Copy\",\n toastMessage,\n size = \"sm\",\n}: {\n text: string;\n label?: string;\n toastMessage?: string;\n size?: \"sm\" | \"md\";\n}) {\n const [copied, setCopied] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n useEffect(() => () => void (timer.current && clearTimeout(timer.current)), []);\n return (\n <Button\n size={size}\n icon={copied ? <Check className=\"size-4\" /> : <Copy className=\"size-4\" />}\n onClick={async () => {\n if (await copyText(text, toastMessage)) {\n setCopied(true);\n if (timer.current) clearTimeout(timer.current);\n timer.current = setTimeout(() => setCopied(false), 2000);\n }\n }}\n >\n {copied ? \"Copied\" : label}\n </Button>\n );\n}\n\n/** A monospace command or URL with a copy button; wraps instead of overflowing. */\nexport function CopyBlock({\n text,\n label,\n copyLabel = \"Copy\",\n}: {\n text: string;\n /** Accessible name of the code block. */\n label: string;\n copyLabel?: string;\n}) {\n return (\n <figure className=\"m-0 flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start\">\n <figcaption className=\"sr-only\">{label}</figcaption>\n <pre className=\"min-w-0 flex-1 whitespace-pre-wrap break-all rounded-md border border-border bg-surface-2 px-3 py-2 font-mono text-sm\">\n {text}\n </pre>\n <CopyButton text={text} label={copyLabel} />\n </figure>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Expiry countdown */\n/* ------------------------------------------------------------------ */\n\n/** Milliseconds until `iso`, ticking every second; null without a time. */\nexport function useCountdown(iso: string | null | undefined): number | null {\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n if (!iso) return;\n setNow(Date.now());\n const t = setInterval(() => setNow(Date.now()), 1000);\n return () => clearInterval(t);\n }, [iso]);\n if (!iso) return null;\n const at = Date.parse(iso);\n if (Number.isNaN(at)) return null;\n return Math.max(0, at - now);\n}\n\nexport function formatCountdown(ms: number): string {\n const s = Math.ceil(ms / 1000);\n return `${Math.floor(s / 60)}:${String(s % 60).padStart(2, \"0\")}`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Confirmation */\n/* ------------------------------------------------------------------ */\n\n/**\n * Confirmation dialog for destructive actions. Never closes on its own:\n * the caller closes it after the server acknowledges (no optimistic success).\n */\nexport function ConfirmDialog({\n open,\n onClose,\n title,\n description,\n confirmLabel,\n onConfirm,\n busy,\n error,\n danger = true,\n confirmDisabled,\n disabledReason,\n children,\n}: {\n open: boolean;\n onClose: () => void;\n title: ReactNode;\n description?: ReactNode;\n confirmLabel: string;\n onConfirm: () => void;\n busy?: boolean;\n error?: unknown;\n danger?: boolean;\n confirmDisabled?: boolean;\n /** Shown next to the actions when the confirm button is disabled. */\n disabledReason?: ReactNode;\n children?: ReactNode;\n}) {\n return (\n <Dialog\n open={open}\n onClose={busy ? () => undefined : onClose}\n dismissOnBackdrop={!busy}\n title={title}\n description={description}\n footer={\n <>\n {confirmDisabled && disabledReason && (\n <p className=\"mr-auto min-w-0 flex-1 basis-full text-xs text-muted sm:basis-auto\">\n {disabledReason}\n </p>\n )}\n <Button onClick={onClose} disabled={busy}>\n Cancel\n </Button>\n <Button\n variant={danger ? \"danger\" : \"primary\"}\n busy={busy}\n disabled={confirmDisabled}\n onClick={onConfirm}\n >\n {confirmLabel}\n </Button>\n </>\n }\n >\n <div className=\"flex flex-col gap-3\">\n {children}\n <InlineError error={error} />\n </div>\n </Dialog>\n );\n}\n"],"ignoreList":[0,1,2,3,4,5],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export{t as default}from"./shellscript-CqHdAlCp.js";
@@ -0,0 +1,2 @@
1
+ var e=[Object.freeze(JSON.parse(`{"displayName":"Shell","name":"shellscript","patterns":[{"include":"#initial_context"}],"repository":{"alias_statement":{"begin":"[\\\\t ]*+(alias)[\\\\t ]*+((?:((?<!\\\\w)-\\\\w+)\\\\b[\\\\t ]*+)*)[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\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)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\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)[-0-9A-Z_a-z]+(?!\\\\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|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\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|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":"\\\\b(case)\\\\b[\\\\t ]*+(.+?)[\\\\t ]*+\\\\b(in)\\\\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|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|[\\"')}])([^\\\\t\\\\n\\\\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\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|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":"\\\\b(for)\\\\b[\\\\t ]*+((?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w))[\\\\t ]*+\\\\b(in)\\\\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":"\\\\b(for)\\\\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 ]*+(?:\\\\b(function)\\\\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"},{"match":"=[=~]?|!=?|[<>]|&&|\\\\|\\\\|","name":"keyword.operator.logical.shell"},{"match":"(?<!\\\\S)-(nt|ot|ef|eq|ne|l[et]|g[et]|[GLNOSa-hknopr-uwxz])\\\\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]\\\\h+","name":"constant.numeric.hex.shell"},{"match":";","name":"punctuation.separator.semicolon.range"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-z]+","name":"constant.numeric.other.shell"},{"match":"\\\\d+","name":"constant.numeric.integer.shell"},{"match":"(?<!\\\\w)[0-9A-Z_a-z]+(?!\\\\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]\\\\h+","name":"constant.numeric.hex.shell"},{"match":"0\\\\d+","name":"constant.numeric.octal.shell"},{"match":"\\\\d{1,2}#[0-9@-Z_a-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 ])(\\\\{)(?![$\\\\w])","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)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+))(]))?(?:(?:(=)|(\\\\+=))|(-=))?(?:(?<=[\\\\t =]|^|[(\\\\[{])(?:(?:(?:(?:(?:(0[Xx]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9@-Z_a-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)[-0-9A-Z_a-z]+(?!\\\\w))(?:(\\\\[)((?:(?:\\\\$?(?<!\\\\w)[-0-9A-Z_a-z]+(?!\\\\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]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9@-Z_a-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\\\\t|nocorrect$|readonly |readonly\\\\t|readonly$|function |function\\\\t|function$|foreach |foreach\\\\t|foreach$|coproc |coproc\\\\t|coproc$|logout |logout\\\\t|logout$|export |export\\\\t|export$|select |select\\\\t|select$|repeat |repeat\\\\t|repeat$|pushd |pushd\\\\t|pushd$|until |until\\\\t|until$|while |while\\\\t|while$|local |local\\\\t|local$|case |case\\\\t|case$|done |done\\\\t|done$|elif |elif\\\\t|elif$|else |else\\\\t|else$|esac |esac\\\\t|esac$|popd |popd\\\\t|popd$|then |then\\\\t|then$|time |time\\\\t|time$|for |for\\\\t|for$|end |end\\\\t|end$|fi |fi\\\\t|fi$|do |do\\\\t|do$|in |in\\\\t|in$|if |if\\\\t|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":"\\\\\\\\['\\\\\\\\abefnrtv]","name":"constant.character.escape.ansi-c.shell"},{"match":"\\\\\\\\[0-9]{3}\\"","name":"constant.character.escape.octal.shell"},{"match":"\\\\\\\\x\\\\h{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)[-0-9A-Z_a-z]+(?!\\\\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)[-0-9A-Z_a-z]+(?!\\\\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":"\\\\b(while)\\\\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"]}`))];export{e as t};
2
+ //# sourceMappingURL=shellscript-CqHdAlCp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shellscript-CqHdAlCp.js","names":["shellscript_default"],"sources":["../../../../node_modules/.pnpm/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/shellscript.mjs"],"sourcesContent":["const lang = Object.freeze(JSON.parse(\"{\\\"displayName\\\":\\\"Shell\\\",\\\"name\\\":\\\"shellscript\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#initial_context\\\"}],\\\"repository\\\":{\\\"alias_statement\\\":{\\\"begin\\\":\\\"[\\\\\\\\t ]*+(alias)[\\\\\\\\t ]*+((?:((?<!\\\\\\\\w)-\\\\\\\\w+)\\\\\\\\b[\\\\\\\\t ]*+)*)[\\\\\\\\t ]*+((?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\w))(?:(\\\\\\\\[)((?:(?:\\\\\\\\$?(?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\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)[-0-9A-Z_a-z]+(?!\\\\\\\\w))(?:(\\\\\\\\[)((?:(?:\\\\\\\\$?(?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\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)[-0-9A-Z_a-z]+(?!\\\\\\\\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|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\\\\\\\\t|nocorrect$|readonly |readonly\\\\\\\\t|readonly$|function |function\\\\\\\\t|function$|foreach |foreach\\\\\\\\t|foreach$|coproc |coproc\\\\\\\\t|coproc$|logout |logout\\\\\\\\t|logout$|export |export\\\\\\\\t|export$|select |select\\\\\\\\t|select$|repeat |repeat\\\\\\\\t|repeat$|pushd |pushd\\\\\\\\t|pushd$|until |until\\\\\\\\t|until$|while |while\\\\\\\\t|while$|local |local\\\\\\\\t|local$|case |case\\\\\\\\t|case$|done |done\\\\\\\\t|done$|elif |elif\\\\\\\\t|elif$|else |else\\\\\\\\t|else$|esac |esac\\\\\\\\t|esac$|popd |popd\\\\\\\\t|popd$|then |then\\\\\\\\t|then$|time |time\\\\\\\\t|time$|for |for\\\\\\\\t|for$|end |end\\\\\\\\t|end$|fi |fi\\\\\\\\t|fi$|do |do\\\\\\\\t|do$|in |in\\\\\\\\t|in$|if |if\\\\\\\\t|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\\\":\\\"\\\\\\\\b(case)\\\\\\\\b[\\\\\\\\t ]*+(.+?)[\\\\\\\\t ]*+\\\\\\\\b(in)\\\\\\\\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|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|[\\\\\\\"')}])([^\\\\\\\\t\\\\\\\\n\\\\\\\\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\\\\\\\\t|nocorrect$|readonly |readonly\\\\\\\\t|readonly$|function |function\\\\\\\\t|function$|foreach |foreach\\\\\\\\t|foreach$|coproc |coproc\\\\\\\\t|coproc$|logout |logout\\\\\\\\t|logout$|export |export\\\\\\\\t|export$|select |select\\\\\\\\t|select$|repeat |repeat\\\\\\\\t|repeat$|pushd |pushd\\\\\\\\t|pushd$|until |until\\\\\\\\t|until$|while |while\\\\\\\\t|while$|local |local\\\\\\\\t|local$|case |case\\\\\\\\t|case$|done |done\\\\\\\\t|done$|elif |elif\\\\\\\\t|elif$|else |else\\\\\\\\t|else$|esac |esac\\\\\\\\t|esac$|popd |popd\\\\\\\\t|popd$|then |then\\\\\\\\t|then$|time |time\\\\\\\\t|time$|for |for\\\\\\\\t|for$|end |end\\\\\\\\t|end$|fi |fi\\\\\\\\t|fi$|do |do\\\\\\\\t|do$|in |in\\\\\\\\t|in$|if |if\\\\\\\\t|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\\\":\\\"\\\\\\\\b(for)\\\\\\\\b[\\\\\\\\t ]*+((?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\w))[\\\\\\\\t ]*+\\\\\\\\b(in)\\\\\\\\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\\\":\\\"\\\\\\\\b(for)\\\\\\\\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 ]*+(?:\\\\\\\\b(function)\\\\\\\\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\\\"},{\\\"match\\\":\\\"=[=~]?|!=?|[<>]|&&|\\\\\\\\|\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.logical.shell\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\S)-(nt|ot|ef|eq|ne|l[et]|g[et]|[GLNOSa-hknopr-uwxz])\\\\\\\\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]\\\\\\\\h+\\\",\\\"name\\\":\\\"constant.numeric.hex.shell\\\"},{\\\"match\\\":\\\";\\\",\\\"name\\\":\\\"punctuation.separator.semicolon.range\\\"},{\\\"match\\\":\\\"0\\\\\\\\d+\\\",\\\"name\\\":\\\"constant.numeric.octal.shell\\\"},{\\\"match\\\":\\\"\\\\\\\\d{1,2}#[0-9@-Z_a-z]+\\\",\\\"name\\\":\\\"constant.numeric.other.shell\\\"},{\\\"match\\\":\\\"\\\\\\\\d+\\\",\\\"name\\\":\\\"constant.numeric.integer.shell\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\w)[0-9A-Z_a-z]+(?!\\\\\\\\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]\\\\\\\\h+\\\",\\\"name\\\":\\\"constant.numeric.hex.shell\\\"},{\\\"match\\\":\\\"0\\\\\\\\d+\\\",\\\"name\\\":\\\"constant.numeric.octal.shell\\\"},{\\\"match\\\":\\\"\\\\\\\\d{1,2}#[0-9@-Z_a-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 ])(\\\\\\\\{)(?![$\\\\\\\\w])\\\",\\\"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)[-0-9A-Z_a-z]+(?!\\\\\\\\w))(?:(\\\\\\\\[)((?:(?:\\\\\\\\$?(?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\w)|@)|\\\\\\\\*)|(-?\\\\\\\\d+))(]))?(?:(?:(=)|(\\\\\\\\+=))|(-=))?(?:(?<=[\\\\\\\\t =]|^|[(\\\\\\\\[{])(?:(?:(?:(?:(?:(0[Xx]\\\\\\\\h+)|(0\\\\\\\\d+))|(\\\\\\\\d{1,2}#[0-9@-Z_a-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)[-0-9A-Z_a-z]+(?!\\\\\\\\w))(?:(\\\\\\\\[)((?:(?:\\\\\\\\$?(?<!\\\\\\\\w)[-0-9A-Z_a-z]+(?!\\\\\\\\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]\\\\\\\\h+)|(0\\\\\\\\d+))|(\\\\\\\\d{1,2}#[0-9@-Z_a-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\\\\\\\\t|nocorrect$|readonly |readonly\\\\\\\\t|readonly$|function |function\\\\\\\\t|function$|foreach |foreach\\\\\\\\t|foreach$|coproc |coproc\\\\\\\\t|coproc$|logout |logout\\\\\\\\t|logout$|export |export\\\\\\\\t|export$|select |select\\\\\\\\t|select$|repeat |repeat\\\\\\\\t|repeat$|pushd |pushd\\\\\\\\t|pushd$|until |until\\\\\\\\t|until$|while |while\\\\\\\\t|while$|local |local\\\\\\\\t|local$|case |case\\\\\\\\t|case$|done |done\\\\\\\\t|done$|elif |elif\\\\\\\\t|elif$|else |else\\\\\\\\t|else$|esac |esac\\\\\\\\t|esac$|popd |popd\\\\\\\\t|popd$|then |then\\\\\\\\t|then$|time |time\\\\\\\\t|time$|for |for\\\\\\\\t|for$|end |end\\\\\\\\t|end$|fi |fi\\\\\\\\t|fi$|do |do\\\\\\\\t|do$|in |in\\\\\\\\t|in$|if |if\\\\\\\\t|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\\\":\\\"\\\\\\\\\\\\\\\\['\\\\\\\\\\\\\\\\abefnrtv]\\\",\\\"name\\\":\\\"constant.character.escape.ansi-c.shell\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[0-9]{3}\\\\\\\"\\\",\\\"name\\\":\\\"constant.character.escape.octal.shell\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\x\\\\\\\\h{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)[-0-9A-Z_a-z]+(?!\\\\\\\\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)[-0-9A-Z_a-z]+(?!\\\\\\\\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\\\":\\\"\\\\\\\\b(while)\\\\\\\\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\\\"]}\"))\n\nexport default [\nlang\n]\n"],"ignoreList":[0],"mappings":"AAEA,IAAAA,EAAe,CAFF,OAAO,OAAO,KAAK,MAAM,u8wCAA2y4C,CAGj14C,CACA,E"}
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./jsx-runtime-D13aM9HY.js";var t={name:`chevron-left`,size:24,node:[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]};t.node;var n=e(t),r={name:`folder-git-2`,size:24,node:[[`path`,{d:`M18 19a5 5 0 0 1-5-5v8`,key:`sz5oeg`}],[`path`,{d:`M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5`,key:`1w6njk`}],[`circle`,{cx:`13`,cy:`12`,r:`2`,key:`1j92g6`}],[`circle`,{cx:`20`,cy:`19`,r:`2`,key:`1obnsp`}]]};r.node;var i=e(r),a={name:`sliders-horizontal`,size:24,node:[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]};a.node;var o=e(a);export{i as n,n as r,o as t};
2
+ //# sourceMappingURL=sliders-horizontal-DAoirila.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliders-horizontal-DAoirila.js","names":["__iconData","__iconData","createLucideIcon","__iconData$2","ChevronLeft","__iconData$1","FolderGit2","__iconData","SlidersHorizontal"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/chevron-left.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/folder-git-2.mjs","../../../../node_modules/.pnpm/lucide-react@1.61.0_@types+react@19.3.0_react@19.3.1/node_modules/lucide-react/dist/esm/icons/sliders-horizontal.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"chevron-left\",\n size: 24,\n node: [[\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]]\n};\n__iconData.node;\nconst ChevronLeft = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronLeft as default };\n//# sourceMappingURL=chevron-left.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"folder-git-2\",\n size: 24,\n node: [\n [\"path\", { d: \"M18 19a5 5 0 0 1-5-5v8\", key: \"sz5oeg\" }],\n [\n \"path\",\n {\n d: \"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5\",\n key: \"1w6njk\"\n }\n ],\n [\"circle\", { cx: \"13\", cy: \"12\", r: \"2\", key: \"1j92g6\" }],\n [\"circle\", { cx: \"20\", cy: \"19\", r: \"2\", key: \"1obnsp\" }]\n ]\n};\n__iconData.node;\nconst FolderGit2 = createLucideIcon(__iconData);\n\nexport { __iconData, FolderGit2 as default };\n//# sourceMappingURL=folder-git-2.mjs.map\n","/**\n * @license lucide-react v1.61.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"sliders-horizontal\",\n size: 24,\n node: [\n [\"path\", { d: \"M10 5H3\", key: \"1qgfaw\" }],\n [\"path\", { d: \"M12 19H3\", key: \"yhmn1j\" }],\n [\"path\", { d: \"M14 3v4\", key: \"1sua03\" }],\n [\"path\", { d: \"M16 17v4\", key: \"1q0r14\" }],\n [\"path\", { d: \"M21 12h-9\", key: \"1o4lsq\" }],\n [\"path\", { d: \"M21 19h-5\", key: \"1rlt1p\" }],\n [\"path\", { d: \"M21 5h-7\", key: \"1oszz2\" }],\n [\"path\", { d: \"M8 10v4\", key: \"tgpxqk\" }],\n [\"path\", { d: \"M8 12H3\", key: \"a7s4jb\" }]\n ]\n};\n__iconData.node;\nconst SlidersHorizontal = createLucideIcon(__iconData);\n\nexport { __iconData, SlidersHorizontal as default };\n//# sourceMappingURL=sliders-horizontal.mjs.map\n"],"ignoreList":[0,1,2],"mappings":"A,8CASA,IAAMA,EAAa,CACjB,KAAM,eACN,KAAM,GACN,KAAM,CAAC,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,CAAC,CACzD,EACAA,EAAW,KACX,IAAMI,EAAcF,EAAiBF,CAAU,ECNzCC,EAAa,CACjB,KAAM,eACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAS,CAAC,EACvD,CACE,OACA,CACE,EAAG,yGACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,EACxD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAC1D,CACF,EACAA,EAAW,KACX,IAAMK,EAAaJ,EAAiBD,CAAU,ECjBxCM,EAAa,CACjB,KAAM,qBACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,CAC1C,CACF,EACAA,EAAW,KACX,IAAMC,EAAoBN,EAAiBK,CAAU,E"}
@@ -0,0 +1,2 @@
1
+ var e=[Object.freeze(JSON.parse(`{"displayName":"SQL","name":"sql","patterns":[{"match":"((?<!@)@)\\\\b(\\\\w+)\\\\b","name":"text.variable"},{"applyEndPatternLast":1,"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.bracket.begin.sql"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.bracket.end.sql"}},"name":"text.bracketed","patterns":[{"match":"\\\\[|]]","name":"constant.character.bracket.sql"}]},{"include":"#comments"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"},"5":{"name":"entity.name.function.sql"}},"match":"(?i:^\\\\s*(create(?:\\\\s+or\\\\s+replace)?)\\\\s+(aggregate|conversion|database|domain|function|group|(unique\\\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\s+)([\\"'\`]?)(\\\\w+)\\\\4","name":"meta.create.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.sql"}},"match":"(?i:^\\\\s*(drop)\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"},"3":{"name":"entity.name.function.sql"},"4":{"name":"keyword.other.cascade.sql"}},"match":"(?i:\\\\s*(drop)\\\\s+(table)\\\\s+(\\\\w+)(\\\\s+cascade)?\\\\b)","name":"meta.drop.sql"},{"captures":{"1":{"name":"keyword.other.create.sql"},"2":{"name":"keyword.other.table.sql"}},"match":"(?i:^\\\\s*(alter)\\\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\\\s+)","name":"meta.alter.sql"},{"captures":{"1":{"name":"storage.type.sql"},"2":{"name":"storage.type.sql"},"3":{"name":"constant.numeric.sql"},"4":{"name":"storage.type.sql"},"5":{"name":"constant.numeric.sql"},"6":{"name":"storage.type.sql"},"7":{"name":"constant.numeric.sql"},"8":{"name":"constant.numeric.sql"},"9":{"name":"storage.type.sql"},"10":{"name":"constant.numeric.sql"},"11":{"name":"storage.type.sql"},"12":{"name":"storage.type.sql"},"13":{"name":"storage.type.sql"},"14":{"name":"constant.numeric.sql"},"15":{"name":"storage.type.sql"}},"match":"(?i)\\\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\\\b|\\\\b(bit\\\\svarying|character\\\\s(?:varying)?|tinyint|var\\\\schar|float|interval)\\\\((\\\\d+)\\\\)|\\\\b(char|number|varchar\\\\d?)\\\\b(?:\\\\((\\\\d+)\\\\))?|\\\\b(numeric|decimal)\\\\b(?:\\\\((\\\\d+),(\\\\d+)\\\\))?|\\\\b(times?)\\\\b(?:\\\\((\\\\d+)\\\\))?(\\\\swith(?:out)?\\\\stime\\\\szone\\\\b)?|\\\\b(timestamp)(s|tz)?\\\\b(?:\\\\((\\\\d+)\\\\))?(\\\\s(with(?:|out))\\\\stime\\\\szone\\\\b)?"},{"match":"(?i:\\\\b((?:primary|foreign)\\\\s+key|references|on\\\\s+(delete|update)(\\\\s+cascade)?|nocheck|check|constraint|collate|default)\\\\b)","name":"storage.modifier.sql"},{"match":"\\\\b\\\\d+\\\\b","name":"constant.numeric.sql"},{"match":"(?i:\\\\b(select(\\\\s+(all|distinct))?|insert\\\\s+(ignore\\\\s+)?into|update|delete|from|set|where|group\\\\s+by|or|like|and|union(\\\\s+all)?|having|order\\\\s+by|limit|cross\\\\s+join|join|straight_join|(inner|(left|right|full)(\\\\s+outer)?)\\\\s+join|natural(\\\\s+(inner|(left|right|full)(\\\\s+outer)?))?\\\\s+join)\\\\b)","name":"keyword.other.DML.sql"},{"match":"(?i:\\\\b(on|off|((is\\\\s+)?not\\\\s+)?null)\\\\b)","name":"keyword.other.DDL.create.II.sql"},{"match":"(?i:\\\\bvalues\\\\b)","name":"keyword.other.DML.II.sql"},{"match":"(?i:\\\\b(begin(\\\\s+work)?|start\\\\s+transaction|commit(\\\\s+work)?|rollback(\\\\s+work)?)\\\\b)","name":"keyword.other.LUW.sql"},{"match":"(?i:\\\\b(grant(\\\\swith\\\\sgrant\\\\soption)?|revoke)\\\\b)","name":"keyword.other.authorization.sql"},{"match":"(?i:\\\\bin\\\\b)","name":"keyword.other.data-integrity.sql"},{"match":"(?i:^\\\\s*(comment\\\\s+on\\\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\\\s+)","name":"keyword.other.object-comments.sql"},{"match":"(?i)\\\\bAS\\\\b","name":"keyword.other.alias.sql"},{"match":"(?i)\\\\b(DESC|ASC)\\\\b","name":"keyword.other.order.sql"},{"match":"\\\\*","name":"keyword.operator.star.sql"},{"match":"[!<>]?=|<>|[<>]","name":"keyword.operator.comparison.sql"},{"match":"[-+/]","name":"keyword.operator.math.sql"},{"match":"\\\\|\\\\|","name":"keyword.operator.concatenator.sql"},{"captures":{"1":{"name":"support.function.aggregate.sql"}},"match":"(?i)\\\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdevp??|varp??)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.analytic.sql"}},"match":"(?i)\\\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.bitmanipulation.sql"}},"match":"(?i)\\\\b((?:bit_coun|get_bi|left_shif|right_shif|set_bi)t)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.conversion.sql"}},"match":"(?i)\\\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.collation.sql"}},"match":"(?i)\\\\b(collationproperty|tertiary_weights)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cryptographic.sql"}},"match":"(?i)\\\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.cursor.sql"}},"match":"(?i)\\\\b(cursor_status)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datetime.sql"}},"match":"(?i)\\\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.datatype.sql"}},"match":"(?i)\\\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.expression.sql"}},"match":"(?i)\\\\b(coalesce|nullif)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.globalvar.sql"}},"match":"(?<!@)@@(?i)\\\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.json.sql"}},"match":"(?i)\\\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.logical.sql"}},"match":"(?i)\\\\b(choose|iif|greatest|least)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.mathematical.sql"}},"match":"(?i)\\\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.metadata.sql"}},"match":"(?i)\\\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.ranking.sql"}},"match":"(?i)\\\\b(rank|dense_rank|ntile|row_number)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.rowset.sql"}},"match":"(?i)\\\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.security.sql"}},"match":"(?i)\\\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.string.sql"}},"match":"(?i)\\\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.system.sql"}},"match":"(?i)\\\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.textimage.sql"}},"match":"(?i)\\\\b(patindex|textptr|textvalid)\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"support.function.vector.sql"}},"match":"(?i)\\\\b(vector_(?:distance|norm|normalize))\\\\b\\\\s*\\\\("},{"captures":{"1":{"name":"constant.other.database-name.sql"},"2":{"name":"constant.other.table-name.sql"}},"match":"(\\\\w+?)\\\\.(\\\\w+)"},{"include":"#strings"},{"include":"#regexps"},{"match":"\\\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\\\\\s+or\\\\\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime2??|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|sessions??|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablockx??|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|top??|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|values??|varbinary|varchar|vector|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows??|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\\\b","name":"keyword.other.sql"},{"captures":{"1":{"name":"punctuation.section.scope.begin.sql"},"2":{"name":"punctuation.section.scope.end.sql"}},"match":"(\\\\()(\\\\))","name":"meta.block.sql"}],"repository":{"comment-block":{"begin":"/\\\\*","captures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\\\*/","name":"comment.block","patterns":[{"include":"#comment-block"}]},"comments":{"patterns":[{"begin":"(^[\\\\t ]+)?(?=--)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\\\G)","patterns":[{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.sql"}},"end":"\\\\n","name":"comment.line.double-dash.sql"}]},{"begin":"(^[\\\\t ]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.sql"}},"end":"(?!\\\\G)","patterns":[]},{"include":"#comment-block"}]},"regexps":{"patterns":[{"begin":"/(?=\\\\S.*/)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"/","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.sql","patterns":[{"include":"#string_interpolation"},{"match":"\\\\\\\\/","name":"constant.character.escape.slash.sql"}]},{"begin":"%r\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.regexp.modr.sql","patterns":[{"include":"#string_interpolation"}]}]},"string_escape":{"match":"\\\\\\\\.","name":"constant.character.escape.sql"},"string_interpolation":{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"match":"(#\\\\{)([^}]*)(})","name":"string.interpolated.sql"},"strings":{"patterns":[{"captures":{"2":{"name":"punctuation.definition.string.begin.sql"},"3":{"name":"punctuation.definition.string.end.sql"}},"match":"(?:(?<![0-9A-Z_a-z])(N))?(')[^']*(')","name":"string.quoted.single.sql"},{"begin":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"'","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.single.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"2":{"name":"punctuation.definition.string.end.sql"}},"match":"(\`)[^\\\\\\\\\`]*(\`)","name":"string.quoted.other.backtick.sql"},{"begin":"\`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\`","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.other.backtick.sql","patterns":[{"include":"#string_escape"}]},{"captures":{"1":{"name":"punctuation.definition.string.begin.sql"},"2":{"name":"punctuation.definition.string.end.sql"}},"match":"(\\")[^\\"#]*(\\")","name":"string.quoted.double.sql"},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.quoted.double.sql","patterns":[{"include":"#string_interpolation"}]},{"begin":"%\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.sql"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.sql"}},"name":"string.other.quoted.brackets.sql","patterns":[{"include":"#string_interpolation"}]}]}},"scopeName":"source.sql"}`))];export{e as t};
2
+ //# sourceMappingURL=sql-CNu3Or2W.js.map