@shikijs/langs 3.2.2 → 3.4.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 (226) hide show
  1. package/dist/abap.mjs +1 -1
  2. package/dist/actionscript-3.mjs +1 -1
  3. package/dist/ada.mjs +1 -1
  4. package/dist/angular-expression.mjs +1 -1
  5. package/dist/angular-html.mjs +1 -1
  6. package/dist/angular-inline-style.mjs +1 -1
  7. package/dist/angular-inline-template.mjs +1 -1
  8. package/dist/angular-let-declaration.mjs +1 -1
  9. package/dist/angular-template-blocks.mjs +1 -1
  10. package/dist/angular-ts.mjs +1 -1
  11. package/dist/apache.mjs +1 -1
  12. package/dist/apex.mjs +1 -1
  13. package/dist/apl.mjs +1 -1
  14. package/dist/applescript.mjs +1 -1
  15. package/dist/ara.mjs +1 -1
  16. package/dist/asciidoc.mjs +1 -1
  17. package/dist/asm.mjs +1 -1
  18. package/dist/astro.mjs +1 -1
  19. package/dist/awk.mjs +1 -1
  20. package/dist/ballerina.mjs +1 -1
  21. package/dist/bat.mjs +1 -1
  22. package/dist/beancount.mjs +1 -1
  23. package/dist/berry.mjs +1 -1
  24. package/dist/bibtex.mjs +1 -1
  25. package/dist/bicep.mjs +1 -1
  26. package/dist/blade.mjs +1 -1
  27. package/dist/bsl.mjs +1 -1
  28. package/dist/c.mjs +1 -1
  29. package/dist/cadence.mjs +1 -1
  30. package/dist/cairo.mjs +1 -1
  31. package/dist/clarity.mjs +1 -1
  32. package/dist/clojure.mjs +1 -1
  33. package/dist/cmake.mjs +1 -1
  34. package/dist/cobol.mjs +1 -1
  35. package/dist/codeql.mjs +1 -1
  36. package/dist/coffee.mjs +1 -1
  37. package/dist/common-lisp.mjs +1 -1
  38. package/dist/coq.mjs +1 -1
  39. package/dist/cpp-macro.mjs +1 -1
  40. package/dist/cpp.mjs +1 -1
  41. package/dist/crystal.mjs +1 -1
  42. package/dist/csharp.mjs +1 -1
  43. package/dist/css.mjs +1 -1
  44. package/dist/cue.mjs +1 -1
  45. package/dist/cypher.mjs +1 -1
  46. package/dist/d.mjs +1 -1
  47. package/dist/dart.mjs +1 -1
  48. package/dist/dax.mjs +1 -1
  49. package/dist/desktop.mjs +1 -1
  50. package/dist/diff.mjs +1 -1
  51. package/dist/dotenv.mjs +1 -1
  52. package/dist/dream-maker.mjs +1 -1
  53. package/dist/edge.mjs +1 -1
  54. package/dist/elixir.mjs +1 -1
  55. package/dist/elm.mjs +1 -1
  56. package/dist/emacs-lisp.mjs +1 -1
  57. package/dist/erb.mjs +1 -1
  58. package/dist/erlang.mjs +1 -1
  59. package/dist/es-tag-css.mjs +1 -1
  60. package/dist/es-tag-glsl.mjs +1 -1
  61. package/dist/es-tag-html.mjs +1 -1
  62. package/dist/es-tag-sql.mjs +1 -1
  63. package/dist/es-tag-xml.mjs +1 -1
  64. package/dist/fennel.mjs +1 -1
  65. package/dist/fish.mjs +1 -1
  66. package/dist/fluent.mjs +1 -1
  67. package/dist/fortran-fixed-form.mjs +1 -1
  68. package/dist/fortran-free-form.mjs +1 -1
  69. package/dist/fsharp.mjs +1 -1
  70. package/dist/gdresource.mjs +1 -1
  71. package/dist/gdscript.mjs +1 -1
  72. package/dist/gdshader.mjs +1 -1
  73. package/dist/genie.mjs +1 -1
  74. package/dist/gherkin.mjs +1 -1
  75. package/dist/gleam.mjs +1 -1
  76. package/dist/glimmer-js.mjs +1 -1
  77. package/dist/glimmer-ts.mjs +1 -1
  78. package/dist/glsl.mjs +1 -1
  79. package/dist/gnuplot.mjs +1 -1
  80. package/dist/go.mjs +1 -1
  81. package/dist/graphql.mjs +1 -1
  82. package/dist/groovy.mjs +1 -1
  83. package/dist/hack.mjs +1 -1
  84. package/dist/haml.mjs +1 -1
  85. package/dist/handlebars.mjs +1 -1
  86. package/dist/haskell.mjs +1 -1
  87. package/dist/haxe.mjs +1 -1
  88. package/dist/hcl.mjs +1 -1
  89. package/dist/hjson.mjs +1 -1
  90. package/dist/hlsl.mjs +1 -1
  91. package/dist/html-derivative.mjs +1 -1
  92. package/dist/html.mjs +1 -1
  93. package/dist/http.mjs +1 -1
  94. package/dist/hxml.mjs +1 -1
  95. package/dist/hy.mjs +1 -1
  96. package/dist/imba.mjs +1 -1
  97. package/dist/ini.mjs +1 -1
  98. package/dist/java.mjs +1 -1
  99. package/dist/javascript.mjs +1 -1
  100. package/dist/jinja.mjs +1 -1
  101. package/dist/jison.mjs +1 -1
  102. package/dist/json.mjs +1 -1
  103. package/dist/json5.mjs +1 -1
  104. package/dist/jsonc.mjs +1 -1
  105. package/dist/jsonl.mjs +1 -1
  106. package/dist/jsonnet.mjs +1 -1
  107. package/dist/jssm.mjs +1 -1
  108. package/dist/jsx.mjs +1 -1
  109. package/dist/julia.mjs +1 -1
  110. package/dist/kotlin.mjs +1 -1
  111. package/dist/kusto.mjs +1 -1
  112. package/dist/latex.mjs +1 -1
  113. package/dist/lean.mjs +1 -1
  114. package/dist/less.mjs +1 -1
  115. package/dist/liquid.mjs +1 -1
  116. package/dist/llvm.mjs +1 -1
  117. package/dist/log.mjs +1 -1
  118. package/dist/logo.mjs +1 -1
  119. package/dist/lua.mjs +1 -1
  120. package/dist/luau.mjs +1 -1
  121. package/dist/make.mjs +1 -1
  122. package/dist/markdown-vue.mjs +1 -1
  123. package/dist/markdown.mjs +1 -1
  124. package/dist/marko.mjs +1 -1
  125. package/dist/matlab.mjs +1 -1
  126. package/dist/mdc.mjs +1 -1
  127. package/dist/mdx.mjs +1 -1
  128. package/dist/mermaid.mjs +1 -1
  129. package/dist/mipsasm.mjs +1 -1
  130. package/dist/mojo.mjs +1 -1
  131. package/dist/move.mjs +1 -1
  132. package/dist/narrat.mjs +1 -1
  133. package/dist/nextflow.mjs +1 -1
  134. package/dist/nginx.mjs +1 -1
  135. package/dist/nim.mjs +1 -1
  136. package/dist/nix.mjs +1 -1
  137. package/dist/nushell.mjs +1 -1
  138. package/dist/objective-c.mjs +1 -1
  139. package/dist/objective-cpp.mjs +1 -1
  140. package/dist/ocaml.mjs +1 -1
  141. package/dist/pascal.mjs +1 -1
  142. package/dist/perl.mjs +1 -1
  143. package/dist/php.mjs +1 -1
  144. package/dist/plsql.mjs +1 -1
  145. package/dist/po.mjs +1 -1
  146. package/dist/polar.mjs +1 -1
  147. package/dist/postcss.mjs +1 -1
  148. package/dist/powerquery.mjs +1 -1
  149. package/dist/powershell.mjs +1 -1
  150. package/dist/prisma.mjs +1 -1
  151. package/dist/prolog.mjs +1 -1
  152. package/dist/proto.mjs +1 -1
  153. package/dist/pug.mjs +1 -1
  154. package/dist/puppet.mjs +1 -1
  155. package/dist/purescript.mjs +1 -1
  156. package/dist/python.mjs +1 -1
  157. package/dist/qml.mjs +1 -1
  158. package/dist/qss.mjs +1 -1
  159. package/dist/r.mjs +1 -1
  160. package/dist/racket.mjs +1 -1
  161. package/dist/raku.mjs +1 -1
  162. package/dist/razor.mjs +1 -1
  163. package/dist/reg.mjs +1 -1
  164. package/dist/regexp.mjs +1 -1
  165. package/dist/rel.mjs +1 -1
  166. package/dist/riscv.mjs +1 -1
  167. package/dist/rst.mjs +1 -1
  168. package/dist/ruby.mjs +1 -1
  169. package/dist/rust.mjs +1 -1
  170. package/dist/sas.mjs +1 -1
  171. package/dist/sass.mjs +1 -1
  172. package/dist/scala.mjs +1 -1
  173. package/dist/scheme.mjs +1 -1
  174. package/dist/scss.mjs +1 -1
  175. package/dist/sdbl.mjs +1 -1
  176. package/dist/shaderlab.mjs +1 -1
  177. package/dist/shellscript.mjs +1 -1
  178. package/dist/shellsession.mjs +1 -1
  179. package/dist/smalltalk.mjs +1 -1
  180. package/dist/solidity.mjs +1 -1
  181. package/dist/soy.mjs +1 -1
  182. package/dist/sparql.mjs +1 -1
  183. package/dist/splunk.mjs +1 -1
  184. package/dist/sql.mjs +1 -1
  185. package/dist/ssh-config.mjs +1 -1
  186. package/dist/stata.mjs +1 -1
  187. package/dist/stylus.mjs +1 -1
  188. package/dist/svelte.mjs +1 -1
  189. package/dist/swift.mjs +1 -1
  190. package/dist/system-verilog.mjs +1 -1
  191. package/dist/systemd.mjs +1 -1
  192. package/dist/talonscript.mjs +1 -1
  193. package/dist/tasl.mjs +1 -1
  194. package/dist/tcl.mjs +1 -1
  195. package/dist/templ.mjs +1 -1
  196. package/dist/terraform.mjs +1 -1
  197. package/dist/tex.mjs +1 -1
  198. package/dist/toml.mjs +1 -1
  199. package/dist/tsx.mjs +1 -1
  200. package/dist/turtle.mjs +1 -1
  201. package/dist/twig.mjs +1 -1
  202. package/dist/typescript.mjs +1 -1
  203. package/dist/typespec.mjs +1 -1
  204. package/dist/typst.mjs +1 -1
  205. package/dist/v.mjs +1 -1
  206. package/dist/vala.mjs +1 -1
  207. package/dist/vb.mjs +1 -1
  208. package/dist/verilog.mjs +1 -1
  209. package/dist/vhdl.mjs +1 -1
  210. package/dist/viml.mjs +1 -1
  211. package/dist/vue-html.mjs +1 -1
  212. package/dist/vue-sfc-style-variable-injection.mjs +1 -1
  213. package/dist/vue.mjs +3 -3
  214. package/dist/vyper.mjs +1 -1
  215. package/dist/wasm.mjs +1 -1
  216. package/dist/wenyan.mjs +1 -1
  217. package/dist/wgsl.mjs +1 -1
  218. package/dist/wikitext.mjs +1 -1
  219. package/dist/wit.mjs +1 -1
  220. package/dist/wolfram.mjs +1 -1
  221. package/dist/xml.mjs +1 -1
  222. package/dist/xsl.mjs +1 -1
  223. package/dist/yaml.mjs +1 -1
  224. package/dist/zenscript.mjs +1 -1
  225. package/dist/zig.mjs +1 -1
  226. package/package.json +3 -3
package/dist/sdbl.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"1C (Query)\",\"fileTypes\":[\"sdbl\",\"query\"],\"firstLineMatch\":\"(?i)Выбрать|Select(\\\\s+Разрешенные|\\\\s+Allowed)?(\\\\s+Различные|\\\\s+Distinct)?(\\\\s+Первые|\\\\s+Top)?.*\",\"name\":\"sdbl\",\"patterns\":[{\"match\":\"(^\\\\s*//.*$)\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"\\\"\",\"end\":\"\\\"(?!\\\")\",\"name\":\"string.quoted.double.sdbl\",\"patterns\":[{\"match\":\"\\\"\\\"\",\"name\":\"constant.character.escape.sdbl\"},{\"match\":\"(^\\\\s*//.*$)\",\"name\":\"comment.line.double-slash.sdbl\"}]},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\\\\wа-яё.]|$)\",\"name\":\"constant.language.sdbl\"},{\"match\":\"(?<=[^\\\\wа-яё.]|^)(\\\\d+\\\\.?\\\\d*)(?=[^\\\\wа-яё.]|$)\",\"name\":\"constant.numeric.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^\\\\wа-яё.]|$)\",\"name\":\"keyword.control.conditional.sdbl\"},{\"match\":\"(?i)(?<!КАК\\\\s|AS\\\\s)(?<=[^\\\\wа-яё.]|^)(НЕ|NOT|И|AND|ИЛИ|OR|В\\\\s+ИЕРАРХИИ|IN\\\\s+HIERARCHY|В|In|Между|Between|Есть(\\\\s+НЕ)?\\\\s+NULL|Is(\\\\s+NOT)?\\\\s+NULL|Ссылка|Refs|Подобно|Like)(?=[^\\\\wа-яё.]|$)\",\"name\":\"keyword.operator.logical.sdbl\"},{\"match\":\"<=|>=|[=<>]\",\"name\":\"keyword.operator.comparison.sdbl\"},{\"match\":\"([+\\\\-*/%])\",\"name\":\"keyword.operator.arithmetic.sdbl\"},{\"match\":\"([,;])\",\"name\":\"keyword.operator.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EmptyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\\\\s+(Внешнее\\\\s+|Outer\\\\s+)?Соединение|Join)|((Внутреннее|Inner)\\\\s+Соединение|Join)|Где|Where|(Сгруппировать\\\\s+По(\\\\s+Группирующим\\\\s+Наборам)?)|(Group\\\\s+By(\\\\s+Grouping\\\\s+Set)?)|Имеющие|Having|Объединить(\\\\s+Все)?|Union(\\\\s+All)?|(Упорядочить\\\\s+По)|(Order\\\\s+By)|Автоупорядочивание|Autoorder|Итоги|Totals|По(\\\\s+Общие)?|By(\\\\s+Overall)?|(Только\\\\s+)?Иерархия|(Only\\\\s+)?Hierarchy|Периодами|Periods|Индексировать|Index|Выразить|Cast|Возр|Asc|Убыв|Desc|Для\\\\s+Изменения|(For\\\\s+Update(\\\\s+Of)?)|Спецсимвол|Escape|СгруппированоПо|GroupedBy)(?=[^\\\\wа-яё.]|$)\",\"name\":\"keyword.control.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^\\\\wа-яё.])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^\\\\wа-яё.]|$)\",\"name\":\"support.type.sdbl\"},{\"match\":\"(&[\\\\wа-яё]+)\",\"name\":\"variable.parameter.sdbl\"}],\"scopeName\":\"source.sdbl\",\"aliases\":[\"1c-query\"]}"))
1
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"1C (Query)\",\"fileTypes\":[\"sdbl\",\"query\"],\"firstLineMatch\":\"(?i)Выбрать|Select(\\\\s+Разрешенные|\\\\s+Allowed)?(\\\\s+Различные|\\\\s+Distinct)?(\\\\s+Первые|\\\\s+Top)?.*\",\"name\":\"sdbl\",\"patterns\":[{\"match\":\"^(\\\\s*//.*)$\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.sdbl\"},{\"begin\":\"\\\"\",\"end\":\"\\\"(?!\\\")\",\"name\":\"string.quoted.double.sdbl\",\"patterns\":[{\"match\":\"\\\"\\\"\",\"name\":\"constant.character.escape.sdbl\"},{\"match\":\"^(\\\\s*//.*)$\",\"name\":\"comment.line.double-slash.sdbl\"}]},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^.а-яё\\\\w]|$)\",\"name\":\"constant.language.sdbl\"},{\"match\":\"(?<=[^.а-яё\\\\w]|^)(\\\\d+\\\\.?\\\\d*)(?=[^.а-яё\\\\w]|$)\",\"name\":\"constant.numeric.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Выбор|Case|Когда|When|Тогда|Then|Иначе|Else|Конец|End)(?=[^.а-яё\\\\w]|$)\",\"name\":\"keyword.control.conditional.sdbl\"},{\"match\":\"(?i)(?<!КАК\\\\s|AS\\\\s)(?<=[^.а-яё\\\\w]|^)(НЕ|NOT|И|AND|ИЛИ|OR|В\\\\s+ИЕРАРХИИ|IN\\\\s+HIERARCHY|В|In|Между|Between|Есть(\\\\s+НЕ)?\\\\s+NULL|Is(\\\\s+NOT)?\\\\s+NULL|Ссылка|Refs|Подобно|Like)(?=[^.а-яё\\\\w]|$)\",\"name\":\"keyword.operator.logical.sdbl\"},{\"match\":\"<=|>=|[<=>]\",\"name\":\"keyword.operator.comparison.sdbl\"},{\"match\":\"([-%*+/])\",\"name\":\"keyword.operator.arithmetic.sdbl\"},{\"match\":\"([,;])\",\"name\":\"keyword.operator.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Выбрать|Select|Разрешенные|Allowed|Различные|Distinct|Первые|Top|Как|As|ПустаяТаблица|EmptyTable|Поместить|Into|Уничтожить|Drop|Из|From|((Левое|Left|Правое|Right|Полное|Full)\\\\s+(Внешнее\\\\s+|Outer\\\\s+)?Соединение|Join)|((Внутреннее|Inner)\\\\s+Соединение|Join)|Где|Where|(Сгруппировать\\\\s+По(\\\\s+Группирующим\\\\s+Наборам)?)|(Group\\\\s+By(\\\\s+Grouping\\\\s+Set)?)|Имеющие|Having|Объединить(\\\\s+Все)?|Union(\\\\s+All)?|(Упорядочить\\\\s+По)|(Order\\\\s+By)|Автоупорядочивание|Autoorder|Итоги|Totals|По(\\\\s+Общие)?|By(\\\\s+Overall)?|(Только\\\\s+)?Иерархия|(Only\\\\s+)?Hierarchy|Периодами|Periods|Индексировать|Index|Выразить|Cast|Возр|Asc|Убыв|Desc|Для\\\\s+Изменения|(For\\\\s+Update(\\\\s+Of)?)|Спецсимвол|Escape|СгруппированоПо|GroupedBy)(?=[^.а-яё\\\\w]|$)\",\"name\":\"keyword.control.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Значение|Value|ДатаВремя|DateTime|Тип|Type)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Подстрока|Substring|НРег|Lower|ВРег|Upper|Лев|Left|Прав|Right|ДлинаСтроки|StringLength|СтрНайти|StrFind|СтрЗаменить|StrReplace|СокрЛП|TrimAll|СокрЛ|TrimL|СокрП|TrimR)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Год|Year|Квартал|Quarter|Месяц|Month|ДеньГода|DayOfYear|День|Day|Неделя|Week|ДеньНедели|Weekday|Час|Hour|Минута|Minute|Секунда|Second|НачалоПериода|BeginOfPeriod|КонецПериода|EndOfPeriod|ДобавитьКДате|DateAdd|РазностьДат|DateDiff|Полугодие|HalfYear|Декада|TenDays)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(ACOS|COS|ASIN|SIN|ATAN|TAN|EXP|POW|LOG|LOG10|Цел|Int|Окр|Round|SQRT)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(Сумма|Sum|Среднее|Avg|Минимум|Min|Максимум|Max|Количество|Count)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w]|^)(ЕстьNULL|IsNULL|Представление|Presentation|ПредставлениеСсылки|RefPresentation|ТипЗначения|ValueType|АвтономерЗаписи|RecordAutoNumber|РазмерХранимыхДанных|StoredDataSize|УникальныйИдентификатор|UUID)(?=\\\\()\",\"name\":\"support.function.sdbl\"},{\"match\":\"(?i)(?<=[^.а-яё\\\\w])(Число|Number|Строка|String|Дата|Date|Булево|Boolean)(?=[^.а-яё\\\\w]|$)\",\"name\":\"support.type.sdbl\"},{\"match\":\"(&[а-яё\\\\w]+)\",\"name\":\"variable.parameter.sdbl\"}],\"scopeName\":\"source.sdbl\",\"aliases\":[\"1c-query\"]}"))
2
2
 
3
3
  export default [
4
4
  lang
@@ -1,6 +1,6 @@
1
1
  import hlsl from './hlsl.mjs'
2
2
 
3
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"ShaderLab\",\"name\":\"shaderlab\",\"patterns\":[{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.shaderlab\"},{\"match\":\"\\\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\\\b\",\"name\":\"support.type.basic.shaderlab\"},{\"include\":\"#numbers\"},{\"match\":\"\\\\b(?i:Shader|Properties|SubShader|Pass|Category)\\\\b\",\"name\":\"storage.type.structure.shaderlab\"},{\"match\":\"\\\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\\\b\",\"name\":\"support.type.propertyname.shaderlab\"},{\"match\":\"\\\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\\\b\",\"name\":\"support.constant.property-value.shaderlab\"},{\"match\":\"\\\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\\\b\",\"name\":\"support.constant.property-value.comparisonfunction.shaderlab\"},{\"match\":\"\\\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\\\b\",\"name\":\"support.constant.property-value.stenciloperation.shaderlab\"},{\"match\":\"\\\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\\\b\",\"name\":\"support.constant.property-value.texturecombiners.shaderlab\"},{\"match\":\"\\\\b(?i:Global|Linear|Exp2|Exp)\\\\b\",\"name\":\"support.constant.property-value.fog.shaderlab\"},{\"match\":\"\\\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\\\b\",\"name\":\"support.constant.property-value.bindchannels.shaderlab\"},{\"match\":\"\\\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\\\b\",\"name\":\"support.constant.property-value.blendoperations.shaderlab\"},{\"match\":\"\\\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\\\b\",\"name\":\"support.constant.property-value.blendfactors.shaderlab\"},{\"match\":\"\\\\[([a-zA-Z_][a-zA-Z0-9_]*)](?!\\\\s*[a-zA-Z_][a-zA-Z0-9_]*\\\\s*\\\\(\\\")\",\"name\":\"support.variable.reference.shaderlab\"},{\"begin\":\"(\\\\[)\",\"end\":\"(])\",\"name\":\"meta.attribute.shaderlab\",\"patterns\":[{\"match\":\"\\\\G([a-zA-Z]+)\\\\b\",\"name\":\"support.type.attributename.shaderlab\"},{\"include\":\"#numbers\"}]},{\"match\":\"\\\\b([a-zA-Z_][a-zA-Z0-9_]*)\\\\s*\\\\(\",\"name\":\"support.variable.declaration.shaderlab\"},{\"begin\":\"\\\\b(CG(?:PROGRAM|INCLUDE))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\b(ENDCG)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.cgblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\\b(HLSL(?:PROGRAM|INCLUDE))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\b(ENDHLSL)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.hlslblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\"\",\"end\":\"\\\"\",\"name\":\"string.quoted.double.shaderlab\"}],\"repository\":{\"hlsl-embedded\":{\"patterns\":[{\"include\":\"source.hlsl\"},{\"match\":\"\\\\b(fixed([1-4](x[1-4])?)?)\\\\b\",\"name\":\"storage.type.basic.shaderlab\"},{\"match\":\"\\\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\\\b\",\"name\":\"support.variable.transformations.shaderlab\"},{\"match\":\"\\\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\\\b\",\"name\":\"support.variable.camera.shaderlab\"},{\"match\":\"\\\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\\\b\",\"name\":\"support.variable.time.shaderlab\"},{\"match\":\"\\\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\\\b\",\"name\":\"support.variable.lighting.shaderlab\"},{\"match\":\"\\\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\\\b\",\"name\":\"support.variable.fog.shaderlab\"},{\"match\":\"\\\\b(unity_LODFade)\\\\b\",\"name\":\"support.variable.various.shaderlab\"},{\"match\":\"\\\\b(SHADER_API_(?:D3D9|D3D11|GLCORE|OPENGL|GLES|GLES3|METAL|D3D11_9X|PSSL|XBOXONE|PSP2|WIIU|MOBILE|GLSL))\\\\b\",\"name\":\"support.variable.preprocessor.targetplatform.shaderlab\"},{\"match\":\"\\\\b(SHADER_TARGET)\\\\b\",\"name\":\"support.variable.preprocessor.targetmodel.shaderlab\"},{\"match\":\"\\\\b(UNITY_VERSION)\\\\b\",\"name\":\"support.variable.preprocessor.unityversion.shaderlab\"},{\"match\":\"\\\\b(UNITY_(?:BRANCH|FLATTEN|NO_SCREENSPACE_SHADOWS|NO_LINEAR_COLORSPACE|NO_RGBM|NO_DXT5nm|FRAMEBUFFER_FETCH_AVAILABLE|USE_RGBA_FOR_POINT_SHADOWS|ATTEN_CHANNEL|HALF_TEXEL_OFFSET|UV_STARTS_AT_TOP|MIGHT_NOT_HAVE_DEPTH_Texture|NEAR_CLIP_VALUE|VPOS_TYPE|CAN_COMPILE_TESSELLATION|COMPILER_HLSL|COMPILER_HLSL2GLSL|COMPILER_CG|REVERSED_Z))\\\\b\",\"name\":\"support.variable.preprocessor.platformdifference.shaderlab\"},{\"match\":\"\\\\b(UNITY_PASS_(?:FORWARDBASE|FORWARDADD|DEFERRED|SHADOWCASTER|PREPASSBASE|PREPASSFINAL))\\\\b\",\"name\":\"support.variable.preprocessor.texture2D.shaderlab\"},{\"match\":\"\\\\b(appdata_(?:base|tan|full|img))\\\\b\",\"name\":\"support.class.structures.shaderlab\"},{\"match\":\"\\\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\\\b\",\"name\":\"support.class.surface.shaderlab\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\b([0-9]+\\\\.?[0-9]*)\\\\b\",\"name\":\"constant.numeric.shaderlab\"}]}},\"scopeName\":\"source.shaderlab\",\"embeddedLangs\":[\"hlsl\"],\"aliases\":[\"shader\"]}"))
3
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"ShaderLab\",\"name\":\"shaderlab\",\"patterns\":[{\"begin\":\"//\",\"end\":\"$\",\"name\":\"comment.line.double-slash.shaderlab\"},{\"match\":\"\\\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\\\b\",\"name\":\"support.type.basic.shaderlab\"},{\"include\":\"#numbers\"},{\"match\":\"\\\\b(?i:Shader|Properties|SubShader|Pass|Category)\\\\b\",\"name\":\"storage.type.structure.shaderlab\"},{\"match\":\"\\\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\\\b\",\"name\":\"support.type.propertyname.shaderlab\"},{\"match\":\"\\\\b(?i:Back|Front|On|Off|[ABGR]{1,3}|AmbientAndDiffuse|Emission)\\\\b\",\"name\":\"support.constant.property-value.shaderlab\"},{\"match\":\"\\\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\\\b\",\"name\":\"support.constant.property-value.comparisonfunction.shaderlab\"},{\"match\":\"\\\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\\\b\",\"name\":\"support.constant.property-value.stenciloperation.shaderlab\"},{\"match\":\"\\\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\\\b\",\"name\":\"support.constant.property-value.texturecombiners.shaderlab\"},{\"match\":\"\\\\b(?i:Global|Linear|Exp2?)\\\\b\",\"name\":\"support.constant.property-value.fog.shaderlab\"},{\"match\":\"\\\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\\\b\",\"name\":\"support.constant.property-value.bindchannels.shaderlab\"},{\"match\":\"\\\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\\\b\",\"name\":\"support.constant.property-value.blendoperations.shaderlab\"},{\"match\":\"\\\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\\\b\",\"name\":\"support.constant.property-value.blendfactors.shaderlab\"},{\"match\":\"\\\\[([A-Z_a-z][0-9A-Z_a-z]*)](?!\\\\s*[A-Z_a-z][0-9A-Z_a-z]*\\\\s*\\\\(\\\")\",\"name\":\"support.variable.reference.shaderlab\"},{\"begin\":\"(\\\\[)\",\"end\":\"(])\",\"name\":\"meta.attribute.shaderlab\",\"patterns\":[{\"match\":\"\\\\G([A-Za-z]+)\\\\b\",\"name\":\"support.type.attributename.shaderlab\"},{\"include\":\"#numbers\"}]},{\"match\":\"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\s*\\\\(\",\"name\":\"support.variable.declaration.shaderlab\"},{\"begin\":\"\\\\b(CG(?:PROGRAM|INCLUDE))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\b(ENDCG)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.cgblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\\b(HLSL(?:PROGRAM|INCLUDE))\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"end\":\"\\\\b(ENDHLSL)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.other\"}},\"name\":\"meta.hlslblock\",\"patterns\":[{\"include\":\"#hlsl-embedded\"}]},{\"begin\":\"\\\"\",\"end\":\"\\\"\",\"name\":\"string.quoted.double.shaderlab\"}],\"repository\":{\"hlsl-embedded\":{\"patterns\":[{\"include\":\"source.hlsl\"},{\"match\":\"\\\\b(fixed([1-4](x[1-4])?)?)\\\\b\",\"name\":\"storage.type.basic.shaderlab\"},{\"match\":\"\\\\b(UNITY_MATRIX_MVP?|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\\\b\",\"name\":\"support.variable.transformations.shaderlab\"},{\"match\":\"\\\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\\\b\",\"name\":\"support.variable.camera.shaderlab\"},{\"match\":\"\\\\b((?:_|_Sin|_Cos|unity_Delta)Time)\\\\b\",\"name\":\"support.variable.time.shaderlab\"},{\"match\":\"\\\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\\\b\",\"name\":\"support.variable.lighting.shaderlab\"},{\"match\":\"\\\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\\\b\",\"name\":\"support.variable.fog.shaderlab\"},{\"match\":\"\\\\b(unity_LODFade)\\\\b\",\"name\":\"support.variable.various.shaderlab\"},{\"match\":\"\\\\b(SHADER_API_(?:D3D9|D3D11|GLCORE|OPENGL|GLES3??|METAL|D3D11_9X|PSSL|XBOXONE|PSP2|WIIU|MOBILE|GLSL))\\\\b\",\"name\":\"support.variable.preprocessor.targetplatform.shaderlab\"},{\"match\":\"\\\\b(SHADER_TARGET)\\\\b\",\"name\":\"support.variable.preprocessor.targetmodel.shaderlab\"},{\"match\":\"\\\\b(UNITY_VERSION)\\\\b\",\"name\":\"support.variable.preprocessor.unityversion.shaderlab\"},{\"match\":\"\\\\b(UNITY_(?:BRANCH|FLATTEN|NO_SCREENSPACE_SHADOWS|NO_LINEAR_COLORSPACE|NO_RGBM|NO_DXT5nm|FRAMEBUFFER_FETCH_AVAILABLE|USE_RGBA_FOR_POINT_SHADOWS|ATTEN_CHANNEL|HALF_TEXEL_OFFSET|UV_STARTS_AT_TOP|MIGHT_NOT_HAVE_DEPTH_Texture|NEAR_CLIP_VALUE|VPOS_TYPE|CAN_COMPILE_TESSELLATION|COMPILER_HLSL|COMPILER_HLSL2GLSL|COMPILER_CG|REVERSED_Z))\\\\b\",\"name\":\"support.variable.preprocessor.platformdifference.shaderlab\"},{\"match\":\"\\\\b(UNITY_PASS_(?:FORWARDBASE|FORWARDADD|DEFERRED|SHADOWCASTER|PREPASSBASE|PREPASSFINAL))\\\\b\",\"name\":\"support.variable.preprocessor.texture2D.shaderlab\"},{\"match\":\"\\\\b(appdata_(?:base|tan|full|img))\\\\b\",\"name\":\"support.class.structures.shaderlab\"},{\"match\":\"\\\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\\\b\",\"name\":\"support.class.surface.shaderlab\"}]},\"numbers\":{\"patterns\":[{\"match\":\"\\\\b([0-9]+\\\\.?[0-9]*)\\\\b\",\"name\":\"constant.numeric.shaderlab\"}]}},\"scopeName\":\"source.shaderlab\",\"embeddedLangs\":[\"hlsl\"],\"aliases\":[\"shader\"]}"))
4
4
 
5
5
  export default [
6
6
  ...hlsl,
@@ -1,4 +1,4 @@
1
- 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)[a-zA-Z_0-9-]+(?!\\\\w))(?:(\\\\[)((?:(?:(?:\\\\$?(?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+)))(]))?(?:(?:(=)|(\\\\+=))|(-=))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.alias.shell\"},\"2\":{\"patterns\":[{\"match\":\"(?<!\\\\w)-\\\\w+\\\\b\",\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}]},\"3\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"},\"4\":{\"name\":\"variable.other.assignment.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"variable.other.assignment.shell\"},\"7\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"8\":{\"name\":\"punctuation.definition.array.access.shell\"},\"9\":{\"name\":\"keyword.operator.assignment.shell\"},\"10\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"11\":{\"name\":\"keyword.operator.assignment.compound.shell\"}},\"end\":\"(?:(?=[ \\\\t]|$)|(?:(?:(?:(;)|(&&))|(\\\\|\\\\|))|(&)))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.semicolon.shell\"},\"2\":{\"name\":\"punctuation.separator.statement.and.shell\"},\"3\":{\"name\":\"punctuation.separator.statement.or.shell\"},\"4\":{\"name\":\"punctuation.separator.statement.background.shell\"}},\"name\":\"meta.expression.assignment.alias.shell\",\"patterns\":[{\"include\":\"#normal_context\"}]},\"argument\":{\"begin\":\"[ \\\\t]++(?!(?:[\\\\&|(\\\\[#\\\\n]|$|;))\",\"beginCaptures\":{},\"end\":\"(?=[ \\\\t;|\\\\&]|$|[\\\\n)`])\",\"endCaptures\":{},\"name\":\"meta.argument.shell\",\"patterns\":[{\"include\":\"#argument_context\"},{\"include\":\"#line_continuation\"}]},\"argument_context\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.unquoted.argument.shell\",\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"variable.language.special.wildcard.shell\"},{\"include\":\"#variable\"},{\"include\":\"#numeric_literal\"},{\"captures\":{\"1\":{\"name\":\"constant.language.$1.shell\"}},\"match\":\"(?<!\\\\w)(\\\\b(?:true|false)\\\\b)(?!\\\\w)\"}]}},\"match\":\"[ \\\\t]*+([^ \\\\t\\\\n>\\\\&;<()$`\\\\\\\\\\\"'|]+(?!>))\"},{\"include\":\"#normal_context\"}]},\"arithmetic_double\":{\"patterns\":[{\"begin\":\"\\\\(\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.double.shell\"}},\"end\":\"\\\\)\\\\s*\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.double.shell\"}},\"name\":\"meta.arithmetic.shell\",\"patterns\":[{\"include\":\"#math\"},{\"include\":\"#string\"}]}]},\"arithmetic_no_dollar\":{\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.single.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arithmetic.single.shell\"}},\"name\":\"meta.arithmetic.shell\",\"patterns\":[{\"include\":\"#math\"},{\"include\":\"#string\"}]}]},\"array_access_inline\":{\"captures\":{\"1\":{\"name\":\"punctuation.section.array.shell\"},\"2\":{\"patterns\":[{\"include\":\"#special_expansion\"},{\"include\":\"#string\"},{\"include\":\"#variable\"}]},\"3\":{\"name\":\"punctuation.section.array.shell\"}},\"match\":\"(\\\\[)([^\\\\[\\\\]]+)(])\"},\"array_value\":{\"begin\":\"[ \\\\t]*+((?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w))(?:(\\\\[)((?:(?:(?:\\\\$?(?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+)))(]))?(?:(?:(=)|(\\\\+=))|(-=))[ \\\\t]*+(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.assignment.shell\"},\"2\":{\"name\":\"punctuation.definition.array.access.shell\"},\"3\":{\"name\":\"variable.other.assignment.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"keyword.operator.assignment.shell\"},\"7\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"8\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"9\":{\"name\":\"punctuation.definition.array.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.array.shell\"}},\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"variable.other.assignment.array.shell entity.other.attribute-name.shell\"},\"2\":{\"name\":\"keyword.operator.assignment.shell punctuation.definition.assignment.shell\"}},\"match\":\"((?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w))(=)\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.bracket.named-array.shell\"},\"2\":{\"name\":\"string.unquoted.shell entity.other.attribute-name.bracket.shell\"},\"3\":{\"name\":\"punctuation.definition.bracket.named-array.shell\"},\"4\":{\"name\":\"punctuation.definition.assignment.shell\"}},\"match\":\"(\\\\[)(.+?)(])(=)\"},{\"include\":\"#normal_context\"},{\"include\":\"#simple_unquoted\"}]},\"assignment_statement\":{\"patterns\":[{\"include\":\"#array_value\"},{\"include\":\"#modified_assignment_statement\"},{\"include\":\"#normal_assignment_statement\"}]},\"basic_command_name\":{\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.shell\"},\"2\":{\"name\":\"entity.name.function.call.shell entity.name.command.shell\",\"patterns\":[{\"match\":\"(?<!\\\\w)(?:continue|return|break)(?!\\\\w)\",\"name\":\"keyword.control.$0.shell\"},{\"match\":\"(?<!\\\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|[:.])(?!/)(?!\\\\w)(?!-)\",\"name\":\"support.function.builtin.shell\"},{\"include\":\"#variable\"}]}},\"match\":\"(?!(?:[!\\\\&|(){\\\\[<>#\\\\n]|$|[; \\\\t]))(?!nocorrect |nocorrect\\\\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\":\"(\\\\bcase\\\\b)[ \\\\t]*+(.+?)[ \\\\t]*+(\\\\bin\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.case.shell\"},\"2\":{\"patterns\":[{\"include\":\"#initial_context\"}]},\"3\":{\"name\":\"keyword.control.in.shell\"}},\"end\":\"\\\\besac\\\\b\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.esac.shell\"}},\"name\":\"meta.case.shell\",\"patterns\":[{\"include\":\"#comment\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.pattern.case.default.shell\"}},\"match\":\"[ \\\\t]*+(\\\\* *\\\\))\"},{\"begin\":\"(?<!\\\\))(?![ \\\\t]*+(?:esac\\\\b|$))\",\"beginCaptures\":{},\"end\":\"(?:(?=\\\\besac\\\\b)|(\\\\)))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.operator.pattern.case.shell\"}},\"name\":\"meta.case.entry.pattern.shell\",\"patterns\":[{\"include\":\"#case_statement_context\"}]},{\"begin\":\"(?<=\\\\))\",\"beginCaptures\":{},\"end\":\"(?:(;;)|(?=\\\\besac\\\\b))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.case.shell\"}},\"name\":\"meta.case.entry.body.shell\",\"patterns\":[{\"include\":\"#typical_statements\"},{\"include\":\"#initial_context\"}]}]},\"case_statement_context\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"\\\\+\",\"name\":\"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"\\\\?\",\"name\":\"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell\"},{\"match\":\"@\",\"name\":\"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell\"},{\"match\":\"\\\\|\",\"name\":\"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell\"},{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.shell\"},{\"match\":\"(?<=\\\\tin| in|[ \\\\t]|;;)\\\\(\",\"name\":\"keyword.operator.pattern.case.shell\"},{\"begin\":\"(?<=\\\\S)(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.group.shell punctuation.definition.regex.group.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.definition.regex.group.shell\"}},\"name\":\"meta.parenthese.shell\",\"patterns\":[{\"include\":\"#case_statement_context\"}]},{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.character-class.shell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.character-class.shell\"}},\"name\":\"string.regexp.character-class.shell\",\"patterns\":[{\"match\":\"\\\\\\\\.\",\"name\":\"constant.character.escape.shell\"}]},{\"include\":\"#string\"},{\"match\":\"[^) \\\\t\\\\n\\\\[?*|@]\",\"name\":\"string.unquoted.pattern.shell string.regexp.unquoted.shell\"}]},\"command_name_range\":{\"begin\":\"\\\\G\",\"beginCaptures\":{},\"end\":\"(?:(?=[ \\\\t;|\\\\&]|$|[\\\\n)`])|(?=<))\",\"endCaptures\":{},\"name\":\"meta.statement.command.name.shell\",\"patterns\":[{\"match\":\"(?<!\\\\w)(?:continue|return|break)(?!\\\\w)\",\"name\":\"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell\"},{\"match\":\"(?<!\\\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|[:.])(?!/)(?!\\\\w)(?!-)\",\"name\":\"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell\"},{\"include\":\"#variable\"},{\"captures\":{\"1\":{\"name\":\"entity.name.function.call.shell entity.name.command.shell\"}},\"match\":\"(?<!\\\\w)(?<=\\\\G|['\\\"})])([^ \\\\n\\\\t\\\\r\\\"'=;\\\\&|`){<>]+)\"},{\"begin\":\"(?:\\\\G|(?<![ \\\\t;|\\\\&\\\\n{#]))(\\\\$?)((?:(\\\")|(')))\",\"beginCaptures\":{\"1\":{\"name\":\"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell\"},\"2\":{},\"3\":{\"name\":\"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell\"},\"4\":{\"name\":\"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell\"}},\"end\":\"(?<!\\\\G)(?<=\\\\2)\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#continuation_of_single_quoted_command_name\"},{\"include\":\"#continuation_of_double_quoted_command_name\"}]},{\"include\":\"#line_continuation\"},{\"include\":\"#simple_unquoted\"}]},\"command_statement\":{\"begin\":\"[ \\\\t]*+(?!(?:[!\\\\&|(){\\\\[<>#\\\\n]|$|[; \\\\t]))(?!nocorrect |nocorrect\\\\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\":\"(\\\\bfor\\\\b)[ \\\\t]*+((?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w))[ \\\\t]*+(\\\\bin\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.shell\"},\"2\":{\"name\":\"variable.other.for.shell\"},\"3\":{\"name\":\"keyword.control.in.shell\"}},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.for.in.shell\",\"patterns\":[{\"include\":\"#string\"},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"}]},{\"begin\":\"(\\\\bfor\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.for.shell\"}},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.for.shell\",\"patterns\":[{\"include\":\"#arithmetic_double\"},{\"include\":\"#normal_context\"}]}]},\"function_definition\":{\"applyEndPatternLast\":1,\"begin\":\"[ \\\\t]*+(?:(\\\\bfunction\\\\b)[ \\\\t]*+([^ \\\\t\\\\n\\\\r()=\\\"']+)(?:(\\\\()[ \\\\t]*+(\\\\)))?|([^ \\\\t\\\\n\\\\r()=\\\"']+)[ \\\\t]*+(\\\\()[ \\\\t]*+(\\\\)))\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.shell\"},\"2\":{\"name\":\"entity.name.function.shell\"},\"3\":{\"name\":\"punctuation.definition.arguments.shell\"},\"4\":{\"name\":\"punctuation.definition.arguments.shell\"},\"5\":{\"name\":\"entity.name.function.shell\"},\"6\":{\"name\":\"punctuation.definition.arguments.shell\"},\"7\":{\"name\":\"punctuation.definition.arguments.shell\"}},\"end\":\"(?<=[})])\",\"endCaptures\":{},\"name\":\"meta.function.shell\",\"patterns\":[{\"match\":\"\\\\G[\\\\t \\\\n]\"},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"name\":\"meta.function.body.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.group.shell punctuation.section.function.definition.shell\"}},\"name\":\"meta.function.body.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"include\":\"#initial_context\"}]},\"heredoc\":{\"patterns\":[{\"begin\":\"((?<!<)<<-)[ \\\\t]*+([\\\"'])[ \\\\t]*+([^\\\"']+?)(?=[\\\\s;\\\\&<\\\"'])(\\\\2)(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"3\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"4\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"5\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.quoted.heredoc.indent.$3\",\"end\":\"^\\\\t*\\\\3(?=[\\\\s;\\\\&]|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.$0.shell\"}},\"patterns\":[]},{\"begin\":\"((?<!<)<<(?!<))[ \\\\t]*+([\\\"'])[ \\\\t]*+([^\\\"']+?)(?=[\\\\s;\\\\&<\\\"'])(\\\\2)(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"3\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"4\":{\"name\":\"punctuation.definition.string.heredoc.quote.shell\"},\"5\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.quoted.heredoc.no-indent.$3\",\"end\":\"^\\\\3(?=[\\\\s;\\\\&]|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[]},{\"begin\":\"((?<!<)<<-)[ \\\\t]*+([^\\\"' \\\\t]+)(?=[\\\\s;\\\\&<\\\"'])(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"3\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.unquoted.heredoc.indent.$2\",\"end\":\"^\\\\t*\\\\2(?=[\\\\s;\\\\&]|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[{\"include\":\"#double_quote_escape_char\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]},{\"begin\":\"((?<!<)<<(?!<))[ \\\\t]*+([^\\\"' \\\\t]+)(?=[\\\\s;\\\\&<\\\"'])(.*)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.heredoc.shell\"},\"2\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"},\"3\":{\"patterns\":[{\"include\":\"#redirect_fix\"},{\"include\":\"#typical_statements\"}]}},\"contentName\":\"string.unquoted.heredoc.no-indent.$2\",\"end\":\"^\\\\2(?=[\\\\s;\\\\&]|$)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.heredoc.delimiter.shell\"}},\"patterns\":[{\"include\":\"#double_quote_escape_char\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"}]}]},\"herestring\":{\"patterns\":[{\"begin\":\"(<<<)\\\\s*(('))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.quoted.single.shell\"},\"3\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"contentName\":\"string.quoted.single.shell\",\"end\":\"(')\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.single.shell\"},\"1\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"meta.herestring.shell\"},{\"begin\":\"(<<<)\\\\s*((\\\"))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.quoted.double.shell\"},\"3\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"contentName\":\"string.quoted.double.shell\",\"end\":\"(\\\")\",\"endCaptures\":{\"0\":{\"name\":\"string.quoted.double.shell\"},\"1\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"meta.herestring.shell\",\"patterns\":[{\"include\":\"#double_quote_context\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.operator.herestring.shell\"},\"2\":{\"name\":\"string.unquoted.herestring.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}},\"match\":\"(<<<)\\\\s*(([^\\\\s)\\\\\\\\]|\\\\\\\\.)+)\",\"name\":\"meta.herestring.shell\"}]},\"initial_context\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#logical_expression_single\"},{\"include\":\"#assignment_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"#for_statement\"},{\"include\":\"#loop\"},{\"include\":\"#function_definition\"},{\"include\":\"#line_continuation\"},{\"include\":\"#arithmetic_double\"},{\"include\":\"#misc_ranges\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#alias_statement\"},{\"include\":\"#normal_statement\"},{\"include\":\"#string\"},{\"include\":\"#support\"}]},\"inline_comment\":{\"captures\":{\"1\":{\"name\":\"comment.block.shell punctuation.definition.comment.begin.shell\"},\"2\":{\"name\":\"comment.block.shell\"},\"3\":{\"patterns\":[{\"match\":\"\\\\*/\",\"name\":\"comment.block.shell punctuation.definition.comment.end.shell\"},{\"match\":\"\\\\*\",\"name\":\"comment.block.shell\"}]}},\"match\":\"(/\\\\*)((?:[^*]|\\\\*++[^/])*+(\\\\*++/))\"},\"interpolation\":{\"patterns\":[{\"include\":\"#arithmetic_dollar\"},{\"include\":\"#subshell_dollar\"},{\"begin\":\"`\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.evaluation.backticks.shell\"}},\"end\":\"`\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.evaluation.backticks.shell\"}},\"name\":\"string.interpolated.backtick.shell\",\"patterns\":[{\"match\":\"\\\\\\\\[`\\\\\\\\$]\",\"name\":\"constant.character.escape.shell\"},{\"begin\":\"(?<=\\\\W)(?=#)(?!#\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.shell\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"#\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.shell\"}},\"end\":\"(?=`)\",\"name\":\"comment.line.number-sign.shell\"}]},{\"include\":\"#initial_context\"}]}]},\"keyword\":{\"patterns\":[{\"match\":\"(?<=^|[;\\\\&\\\\s])(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=[\\\\s;\\\\&]|$)\",\"name\":\"keyword.control.shell\"},{\"match\":\"(?<=^|[;\\\\&\\\\s])(?:export|declare|typeset|local|readonly)(?=[\\\\s;\\\\&]|$)\",\"name\":\"storage.modifier.shell\"}]},\"line_comment\":{\"begin\":\"\\\\s*+(//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.shell\"}},\"end\":\"(?<=\\\\n)(?<!\\\\\\\\\\\\n)\",\"endCaptures\":{},\"name\":\"comment.line.double-slash.shell\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},\"line_continuation\":{\"match\":\"\\\\\\\\(?=\\\\n)\",\"name\":\"constant.character.escape.line-continuation.shell\"},\"logical-expression\":{\"patterns\":[{\"include\":\"#arithmetic_no_dollar\"},{\"match\":\"=[=~]?|!=?|[<>]|&&|\\\\|\\\\|\",\"name\":\"keyword.operator.logical.shell\"},{\"match\":\"(?<!\\\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\\\b\",\"name\":\"keyword.operator.logical.shell\"}]},\"logical_expression_context\":{\"patterns\":[{\"include\":\"#regex_comparison\"},{\"include\":\"#arithmetic_no_dollar\"},{\"include\":\"#logical-expression\"},{\"include\":\"#logical_expression_single\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#comment\"},{\"include\":\"#boolean\"},{\"include\":\"#redirect_number\"},{\"include\":\"#numeric_literal\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"}]},\"logical_expression_double\":{\"begin\":\"\\\\[\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"end\":\"]]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"name\":\"meta.scope.logical-expression.shell\",\"patterns\":[{\"include\":\"#logical_expression_context\"}]},\"logical_expression_single\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.logical-expression.shell\"}},\"name\":\"meta.scope.logical-expression.shell\",\"patterns\":[{\"include\":\"#logical_expression_context\"}]},\"loop\":{\"patterns\":[{\"begin\":\"(?<=^|[;\\\\&\\\\s])(for)\\\\s+(.+?)\\\\s+(in)(?=[\\\\s;\\\\&]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"},\"2\":{\"name\":\"variable.other.loop.shell\",\"patterns\":[{\"include\":\"#string\"}]},\"3\":{\"name\":\"keyword.control.shell\"}},\"end\":\"(?<=^|[;\\\\&\\\\s])done(?=[\\\\s;\\\\&]|$|\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.for-in-loop.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|[;\\\\&\\\\s])(while|until)(?=[\\\\s;\\\\&]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"}},\"end\":\"(?<=^|[;\\\\&\\\\s])done(?=[\\\\s;\\\\&]|$|\\\\))\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.while-loop.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|[;\\\\&\\\\s])(select)\\\\s+((?:[^\\\\s\\\\\\\\]|\\\\\\\\.)+)(?=[\\\\s;\\\\&]|$)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"},\"2\":{\"name\":\"variable.other.loop.shell\"}},\"end\":\"(?<=^|[;\\\\&\\\\s])(done)(?=[\\\\s;\\\\&]|$|\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"keyword.control.shell\"}},\"name\":\"meta.scope.select-block.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"begin\":\"(?<=^|[;\\\\&\\\\s])if(?=[\\\\s;\\\\&]|$)\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.if.shell\"}},\"end\":\"(?<=^|[;\\\\&\\\\s])fi(?=[\\\\s;\\\\&]|$)\",\"endCaptures\":{\"0\":{\"name\":\"keyword.control.fi.shell\"}},\"name\":\"meta.scope.if-block.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"math\":{\"patterns\":[{\"include\":\"#variable\"},{\"match\":\"\\\\+{1,2}|-{1,2}|[!~]|\\\\*{1,2}|[/%]|<[<=]?|>[>=]?|==|!=|^|\\\\|{1,2}|&{1,2}|[?:,=]|[*/%+\\\\-\\\\&^|]=|<<=|>>=\",\"name\":\"keyword.operator.arithmetic.shell\"},{\"match\":\"0[xX]\\\\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-9a-zA-Z@_]+\",\"name\":\"constant.numeric.other.shell\"},{\"match\":\"\\\\d+\",\"name\":\"constant.numeric.integer.shell\"},{\"match\":\"(?<!\\\\w)[a-zA-Z_0-9]+(?!\\\\w)\",\"name\":\"variable.other.normal.shell\"}]},\"math_operators\":{\"patterns\":[{\"match\":\"\\\\+{1,2}|-{1,2}|[!~]|\\\\*{1,2}|[/%]|<[<=]?|>[>=]?|==|!=|^|\\\\|{1,2}|&{1,2}|[?:,=]|[*/%+\\\\-\\\\&^|]=|<<=|>>=\",\"name\":\"keyword.operator.arithmetic.shell\"},{\"match\":\"0[xX]\\\\h+\",\"name\":\"constant.numeric.hex.shell\"},{\"match\":\"0\\\\d+\",\"name\":\"constant.numeric.octal.shell\"},{\"match\":\"\\\\d{1,2}#[0-9a-zA-Z@_]+\",\"name\":\"constant.numeric.other.shell\"},{\"match\":\"\\\\d+\",\"name\":\"constant.numeric.integer.shell\"}]},\"misc_ranges\":{\"patterns\":[{\"include\":\"#logical_expression_single\"},{\"include\":\"#logical_expression_double\"},{\"include\":\"#subshell_dollar\"},{\"begin\":\"(?<![^ \\\\t])(\\\\{)(?![\\\\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)[a-zA-Z_0-9-]+(?!\\\\w))(?:(\\\\[)((?:(?:(?:\\\\$?(?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+)))(]))?(?:(?:(=)|(\\\\+=))|(-=))?(?:(?<=[= \\\\t]|^|[{(\\\\[])(?:(?:(?:(?:(?:(0[xX]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\\\d+\\\\.\\\\d+))|(-?\\\\d+(?:\\\\.\\\\d+)+))|(-?\\\\d+))(?=[ \\\\t]|$|[});]))?\"},{\"include\":\"#normal_context\"}]},\"modifiers\":{\"match\":\"(?<=^|[;\\\\& \\\\t])(?:readonly|declare|typeset|export|local)(?=[ \\\\t;\\\\&]|$)\",\"name\":\"storage.modifier.$0.shell\"},\"normal_assignment_statement\":{\"begin\":\"[ \\\\t]*+((?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w))(?:(\\\\[)((?:(?:(?:\\\\$?(?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w)|@)|\\\\*)|(-?\\\\d+)))(]))?(?:(?:(=)|(\\\\+=))|(-=))\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.assignment.shell\"},\"2\":{\"name\":\"punctuation.definition.array.access.shell\"},\"3\":{\"name\":\"variable.other.assignment.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"},\"5\":{\"name\":\"punctuation.definition.array.access.shell\"},\"6\":{\"name\":\"keyword.operator.assignment.shell\"},\"7\":{\"name\":\"keyword.operator.assignment.compound.shell\"},\"8\":{\"name\":\"keyword.operator.assignment.compound.shell\"}},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.expression.assignment.shell\",\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#string\"},{\"include\":\"#normal_assignment_statement\"},{\"begin\":\"(?<=[ \\\\t])(?![ \\\\t]|\\\\w+=)\",\"beginCaptures\":{},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.command.env.shell\",\"patterns\":[{\"include\":\"#command_name_range\"},{\"include\":\"#line_continuation\"},{\"include\":\"#option\"},{\"include\":\"#argument\"},{\"include\":\"#string\"}]},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"}]},\"normal_context\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#pipeline\"},{\"include\":\"#normal_statement_seperator\"},{\"include\":\"#misc_ranges\"},{\"include\":\"#boolean\"},{\"include\":\"#redirect_number\"},{\"include\":\"#numeric_literal\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"},{\"include\":\"#parenthese\"}]},\"normal_statement\":{\"begin\":\"(?!^[ \\\\t]*+$)(?:(?<=^until | until |\\\\tuntil |^while | while |\\\\twhile |^elif | elif |\\\\telif |^else | else |\\\\telse |^then | then |\\\\tthen |^do | do |\\\\tdo |^if | if |\\\\tif )|(?<=(?:^|[;|\\\\&!({`])))[ \\\\t]*+(?!nocorrect\\\\W|nocorrect\\\\$|function\\\\W|function\\\\$|foreach\\\\W|foreach\\\\$|repeat\\\\W|repeat\\\\$|logout\\\\W|logout\\\\$|coproc\\\\W|coproc\\\\$|select\\\\W|select\\\\$|while\\\\W|while\\\\$|pushd\\\\W|pushd\\\\$|until\\\\W|until\\\\$|case\\\\W|case\\\\$|done\\\\W|done\\\\$|elif\\\\W|elif\\\\$|else\\\\W|else\\\\$|esac\\\\W|esac\\\\$|popd\\\\W|popd\\\\$|then\\\\W|then\\\\$|time\\\\W|time\\\\$|for\\\\W|for\\\\$|end\\\\W|end\\\\$|fi\\\\W|fi\\\\$|do\\\\W|do\\\\$|in\\\\W|in\\\\$|if\\\\W|if\\\\$)\",\"beginCaptures\":{},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.statement.shell\",\"patterns\":[{\"include\":\"#typical_statements\"}]},\"normal_statement_seperator\":{\"captures\":{\"1\":{\"name\":\"punctuation.terminator.statement.semicolon.shell\"},\"2\":{\"name\":\"punctuation.separator.statement.and.shell\"},\"3\":{\"name\":\"punctuation.separator.statement.or.shell\"},\"4\":{\"name\":\"punctuation.separator.statement.background.shell\"}},\"match\":\"(?:(?:(?:(;)|(&&))|(\\\\|\\\\|))|(&))\"},\"numeric_literal\":{\"captures\":{\"1\":{\"name\":\"constant.numeric.shell constant.numeric.hex.shell\"},\"2\":{\"name\":\"constant.numeric.shell constant.numeric.octal.shell\"},\"3\":{\"name\":\"constant.numeric.shell constant.numeric.other.shell\"},\"4\":{\"name\":\"constant.numeric.shell constant.numeric.decimal.shell\"},\"5\":{\"name\":\"constant.numeric.shell constant.numeric.version.shell\"},\"6\":{\"name\":\"constant.numeric.shell constant.numeric.integer.shell\"}},\"match\":\"(?<=[= \\\\t]|^|[{(\\\\[])(?:(?:(?:(?:(?:(0[xX]\\\\h+)|(0\\\\d+))|(\\\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\\\d+\\\\.\\\\d+))|(-?\\\\d+(?:\\\\.\\\\d+)+))|(-?\\\\d+))(?=[ \\\\t]|$|[});])\"},\"option\":{\"begin\":\"[ \\\\t]++(-)((?!(?:[!\\\\&|(){\\\\[<>#\\\\n]|$|[; \\\\t])))\",\"beginCaptures\":{\"1\":{\"name\":\"string.unquoted.argument.shell constant.other.option.dash.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}},\"contentName\":\"string.unquoted.argument constant.other.option\",\"end\":\"(?:(?=[ \\\\t])|(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\))\",\"endCaptures\":{},\"patterns\":[{\"include\":\"#option_context\"}]},\"option_context\":{\"patterns\":[{\"include\":\"#misc_ranges\"},{\"include\":\"#string\"},{\"include\":\"#variable\"},{\"include\":\"#interpolation\"},{\"include\":\"#heredoc\"},{\"include\":\"#herestring\"},{\"include\":\"#redirection\"},{\"include\":\"#pathname\"},{\"include\":\"#floating_keyword\"},{\"include\":\"#support\"}]},\"parenthese\":{\"patterns\":[{\"begin\":\"\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parenthese.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parenthese.shell\"}},\"name\":\"meta.parenthese.group.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"pathname\":{\"patterns\":[{\"match\":\"(?<=[\\\\s:=]|^)~\",\"name\":\"keyword.operator.tilde.shell\"},{\"match\":\"[*?]\",\"name\":\"keyword.operator.glob.shell\"},{\"begin\":\"([?*+@!])(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.extglob.shell\"},\"2\":{\"name\":\"punctuation.definition.extglob.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.extglob.shell\"}},\"name\":\"meta.structure.extglob.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]}]},\"pipeline\":{\"patterns\":[{\"match\":\"(?<=^|[;\\\\&\\\\s])(time)(?=[\\\\s;\\\\&]|$)\",\"name\":\"keyword.other.shell\"},{\"match\":\"[|!]\",\"name\":\"keyword.operator.pipe.shell\"}]},\"redirect_fix\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.redirect.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell\"}},\"match\":\"(>>?)[ \\\\t]*+([^ \\\\t\\\\n>\\\\&;<()$`\\\\\\\\\\\"'|]+)\"},\"redirect_number\":{\"captures\":{\"1\":{\"name\":\"keyword.operator.redirect.stdout.shell\"},\"2\":{\"name\":\"keyword.operator.redirect.stderr.shell\"},\"3\":{\"name\":\"keyword.operator.redirect.$3.shell\"}},\"match\":\"(?<=[ \\\\t])(?:(1)|(2)|(\\\\d+))(?=>)\"},\"redirection\":{\"patterns\":[{\"begin\":\"[><]\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.shell\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.shell\"}},\"name\":\"string.interpolated.process-substitution.shell\",\"patterns\":[{\"include\":\"#initial_context\"}]},{\"match\":\"(?<![<>])(&>|\\\\d*>&\\\\d*|\\\\d*(>>|[><])|\\\\d*<&|\\\\d*<>)(?![<>])\",\"name\":\"keyword.operator.redirect.shell\"}]},\"regex_comparison\":{\"match\":\"=~\",\"name\":\"keyword.operator.logical.regex.shell\"},\"regexp\":{\"patterns\":[{\"match\":\".+\"}]},\"simple_options\":{\"captures\":{\"0\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"string.unquoted.argument.shell constant.other.option.dash.shell\"},\"2\":{\"name\":\"string.unquoted.argument.shell constant.other.option.shell\"}},\"match\":\"[ \\\\t]++(-)(\\\\w+)\"}]}},\"match\":\"(?:[ \\\\t]++-\\\\w+)*\"},\"simple_unquoted\":{\"match\":\"[^ \\\\t\\\\n>\\\\&;<()$`\\\\\\\\\\\"'|]\",\"name\":\"string.unquoted.shell\"},\"special_expansion\":{\"match\":\"!|:[-=?]?|[*@]|##|#|%%|[%/]\",\"name\":\"keyword.operator.expansion.shell\"},\"start_of_command\":{\"match\":\"[ \\\\t]*+(?!(?:[!\\\\&|(){\\\\[<>#\\\\n]|$|[; \\\\t]))(?!nocorrect |nocorrect\\\\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)[a-zA-Z_0-9-]+(?!\\\\w)\",\"name\":\"variable.other.normal.shell\"},{\"include\":\"#variable\"},{\"include\":\"#string\"}]},{\"begin\":\"(\\\\$)(\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell\"},\"2\":{\"name\":\"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell\"}},\"contentName\":\"meta.parameter-expansion\",\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell\"}},\"patterns\":[{\"include\":\"#special_expansion\"},{\"include\":\"#array_access_inline\"},{\"match\":\"(?<!\\\\w)[a-zA-Z_0-9-]+(?!\\\\w)\",\"name\":\"variable.other.normal.shell\"},{\"include\":\"#variable\"},{\"include\":\"#string\"}]},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.shell variable.other.normal.shell\"},\"2\":{\"name\":\"variable.other.normal.shell\"}},\"match\":\"(\\\\$)(\\\\w+(?!\\\\w))\"}]},\"while_statement\":{\"patterns\":[{\"begin\":\"(\\\\bwhile\\\\b)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.while.shell\"}},\"end\":\"(?=[;|\\\\&\\\\n)`{}]|[ \\\\t]*#|])(?<!\\\\\\\\)\",\"endCaptures\":{},\"name\":\"meta.while.shell\",\"patterns\":[{\"include\":\"#line_continuation\"},{\"include\":\"#math_operators\"},{\"include\":\"#option\"},{\"include\":\"#simple_unquoted\"},{\"include\":\"#normal_context\"},{\"include\":\"#string\"}]}]}},\"scopeName\":\"source.shell\",\"aliases\":[\"bash\",\"sh\",\"shell\",\"zsh\"]}"))
1
+ 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\"]}"))
2
2
 
3
3
  export default [
4
4
  lang
@@ -1,6 +1,6 @@
1
1
  import shellscript from './shellscript.mjs'
2
2
 
3
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Shell Session\",\"fileTypes\":[\"sh-session\"],\"name\":\"shellsession\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.prompt-prefix.shell-session\"},\"2\":{\"name\":\"punctuation.separator.prompt.shell-session\"},\"3\":{\"name\":\"source.shell\",\"patterns\":[{\"include\":\"source.shell\"}]}},\"match\":\"^(?:((?:\\\\(\\\\S+\\\\)\\\\s*)?(?:sh\\\\S*?|\\\\w+\\\\S+[@:]\\\\S+(?:\\\\s+\\\\S+)?|\\\\[\\\\S+?[@:]\\\\N+?].*?))\\\\s*)?([>$#%❯➜\\\\p{Greek}])\\\\s+(.*)$\"},{\"match\":\"^.+$\",\"name\":\"meta.output.shell-session\"}],\"scopeName\":\"text.shell-session\",\"embeddedLangs\":[\"shellscript\"],\"aliases\":[\"console\"]}"))
3
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Shell Session\",\"fileTypes\":[\"sh-session\"],\"name\":\"shellsession\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"entity.other.prompt-prefix.shell-session\"},\"2\":{\"name\":\"punctuation.separator.prompt.shell-session\"},\"3\":{\"name\":\"source.shell\",\"patterns\":[{\"include\":\"source.shell\"}]}},\"match\":\"^(?:((?:\\\\(\\\\S+\\\\)\\\\s*)?(?:sh\\\\S*?|\\\\w+\\\\S+[:@]\\\\S+(?:\\\\s+\\\\S+)?|\\\\[\\\\S+?[:@]\\\\N+?].*?))\\\\s*)?([#$%>❯➜\\\\p{Greek}])\\\\s+(.*)$\"},{\"match\":\"^.+$\",\"name\":\"meta.output.shell-session\"}],\"scopeName\":\"text.shell-session\",\"embeddedLangs\":[\"shellscript\"],\"aliases\":[\"console\"]}"))
4
4
 
5
5
  export default [
6
6
  ...shellscript,
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Smalltalk\",\"fileTypes\":[\"st\"],\"foldingStartMarker\":\"\\\\[\",\"foldingStopMarker\":\"^(?:\\\\s*]|\\\\s])\",\"name\":\"smalltalk\",\"patterns\":[{\"match\":\"\\\\$.\",\"name\":\"constant.character.smalltalk\"},{\"match\":\"\\\\b(class)\\\\b\",\"name\":\"storage.type.$1.smalltalk\"},{\"match\":\"\\\\b(extend|super|self)\\\\b\",\"name\":\"storage.modifier.$1.smalltalk\"},{\"match\":\"\\\\b(yourself|new|Smalltalk)\\\\b\",\"name\":\"keyword.control.$1.smalltalk\"},{\"match\":\":=\",\"name\":\"keyword.operator.assignment.smalltalk\"},{\"match\":\"/^:\\\\w*\\\\s*\\\\|/\",\"name\":\"constant.other.block.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.instance-variables.begin.smalltalk\"},\"2\":{\"patterns\":[{\"match\":\"\\\\w+\",\"name\":\"support.type.variable.declaration.smalltalk\"}]},\"3\":{\"name\":\"punctuation.definition.instance-variables.end.smalltalk\"}},\"match\":\"(\\\\|)(\\\\s*\\\\w[\\\\w ]*)(\\\\|)\"},{\"captures\":{\"1\":{\"patterns\":[{\"match\":\":\\\\w+\",\"name\":\"entity.name.function.block.smalltalk\"}]}},\"match\":\"\\\\[((\\\\s+|:\\\\w+)*)\\\\|\"},{\"include\":\"#numeric\"},{\"match\":\"<(?![<=])|>(?![<=>])|<=|>=|=|==|~=|~~|>>|\\\\^\",\"name\":\"keyword.operator.comparison.smalltalk\"},{\"match\":\"([*+\\\\-/\\\\\\\\])\",\"name\":\"keyword.operator.arithmetic.smalltalk\"},{\"match\":\"(?<=[ \\\\t])!+|\\\\bnot\\\\b|&|\\\\band\\\\b|\\\\||\\\\bor\\\\b\",\"name\":\"keyword.operator.logical.smalltalk\"},{\"match\":\"(?<!\\\\.)\\\\b(ensure|resume|retry|signal)\\\\b(?![?!])\",\"name\":\"keyword.control.smalltalk\"},{\"match\":\"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:\",\"name\":\"keyword.control.conditionals.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"entity.other.inherited-class.smalltalk\"},\"3\":{\"name\":\"keyword.control.smalltalk\"},\"4\":{\"name\":\"entity.name.type.class.smalltalk\"}},\"match\":\"(\\\\w+)(\\\\s+(subclass:))\\\\s*(\\\\w*)\",\"name\":\"meta.class.smalltalk\"},{\"begin\":\"\\\"\",\"beginCaptures\":[{\"name\":\"punctuation.definition.comment.begin.smalltalk\"}],\"end\":\"\\\"\",\"endCaptures\":[{\"name\":\"punctuation.definition.comment.end.smalltalk\"}],\"name\":\"comment.block.smalltalk\"},{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.boolean.smalltalk\"},{\"match\":\"\\\\b(nil)\\\\b\",\"name\":\"constant.language.nil.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.smalltalk\"}},\"match\":\"(?>[a-zA-Z_]\\\\w*[?!]?)(:)(?!:)\",\"name\":\"constant.other.messages.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.smalltalk\"}},\"match\":\"(#)[a-zA-Z_][a-zA-Z0-9_:]*\",\"name\":\"constant.other.symbol.smalltalk\"},{\"begin\":\"#\\\\[\",\"beginCaptures\":[{\"name\":\"punctuation.definition.constant.begin.smalltalk\"}],\"end\":\"]\",\"endCaptures\":[{\"name\":\"punctuation.definition.constant.end.smalltalk\"}],\"name\":\"meta.array.byte.smalltalk\",\"patterns\":[{\"match\":\"[0-9]+(r[a-zA-Z0-9]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"},{\"match\":\"[^\\\\s\\\\]]+\",\"name\":\"invalid.illegal.character-not-allowed-here.smalltalk\"}]},{\"begin\":\"#\\\\(\",\"beginCaptures\":[{\"name\":\"punctuation.definition.constant.begin.smalltalk\"}],\"end\":\"\\\\)\",\"endCaptures\":[{\"name\":\"punctuation.definition.constant.end.smalltalk\"}],\"name\":\"constant.other.array.smalltalk\"},{\"begin\":\"'\",\"beginCaptures\":[{\"name\":\"punctuation.definition.string.begin.smalltalk\"}],\"end\":\"'\",\"endCaptures\":[{\"name\":\"punctuation.definition.string.end.smalltalk\"}],\"name\":\"string.quoted.single.smalltalk\"},{\"match\":\"\\\\b[A-Z]\\\\w*\\\\b\",\"name\":\"variable.other.constant.smalltalk\"}],\"repository\":{\"numeric\":{\"patterns\":[{\"match\":\"(?<!\\\\w)[0-9]+\\\\.[0-9]+s[0-9]*\",\"name\":\"constant.numeric.float.scaled.smalltalk\"},{\"match\":\"(?<!\\\\w)[0-9]+\\\\.[0-9]+([edq]-?[0-9]+)?\",\"name\":\"constant.numeric.float.smalltalk\"},{\"match\":\"(?<!\\\\w)-?[0-9]+r[a-zA-Z0-9]+\",\"name\":\"constant.numeric.integer.radix.smalltalk\"},{\"match\":\"(?<!\\\\w)-?[0-9]+([edq]-?[0-9]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"}]}},\"scopeName\":\"source.smalltalk\"}"))
1
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Smalltalk\",\"fileTypes\":[\"st\"],\"foldingStartMarker\":\"\\\\[\",\"foldingStopMarker\":\"^(?:\\\\s*|\\\\s)]\",\"name\":\"smalltalk\",\"patterns\":[{\"match\":\"\\\\^\",\"name\":\"keyword.control.flow.return.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.method.begin.smalltalk\"},\"2\":{\"name\":\"entity.name.type.class.smalltalk\"},\"3\":{\"name\":\"keyword.declaration.method.smalltalk\"},\"4\":{\"name\":\"string.quoted.single.protocol.smalltalk\"},\"5\":{\"name\":\"string.quoted.single.protocol.smalltalk\"},\"6\":{\"name\":\"keyword.declaration.method.stamp.smalltalk\"},\"7\":{\"name\":\"string.quoted.single.stamp.smalltalk\"},\"8\":{\"name\":\"string.quoted.single.stamp.smalltalk\"},\"9\":{\"name\":\"punctuation.definition.method.end.smalltalk\"}},\"match\":\"^(!)\\\\s*([A-Z_a-z][0-9A-Z_a-z]*)\\\\s+(methodsFor:)\\\\s*('([^']*)')(?:\\\\s+(stamp:)\\\\s*('([^']*)'))?\\\\s*(!?)$\",\"name\":\"meta.method.definition.header.smalltalk\"},{\"match\":\"^! !$\",\"name\":\"punctuation.definition.method.end.smalltalk\"},{\"match\":\"\\\\$.\",\"name\":\"constant.character.smalltalk\"},{\"match\":\"\\\\b(class)\\\\b\",\"name\":\"storage.type.$1.smalltalk\"},{\"match\":\"\\\\b(extend|super|self)\\\\b\",\"name\":\"storage.modifier.$1.smalltalk\"},{\"match\":\"\\\\b(yourself|new|Smalltalk)\\\\b\",\"name\":\"keyword.control.$1.smalltalk\"},{\"match\":\"/^:\\\\w*\\\\s*\\\\|/\",\"name\":\"constant.other.block.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.variable.begin.smalltalk\"},\"2\":{\"patterns\":[{\"match\":\"\\\\b[A-Z_a-z][0-9A-Z_a-z]*\\\\b\",\"name\":\"variable.other.local.smalltalk\"}]},\"3\":{\"name\":\"punctuation.definition.variable.end.smalltalk\"}},\"match\":\"(\\\\|)(\\\\s*[A-Z_a-z][0-9A-Z_a-z]*(?:\\\\s+[A-Z_a-z][0-9A-Z_a-z]*)*\\\\s*)(\\\\|)\"},{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.begin.smalltalk\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.block.end.smalltalk\"}},\"name\":\"meta.block.smalltalk\",\"patterns\":[{\"captures\":{\"1\":{\"patterns\":[{\"match\":\":[A-Z_a-z][0-9A-Z_a-z]*\",\"name\":\"variable.parameter.block.smalltalk\"}]},\"2\":{\"name\":\"punctuation.separator.arguments.block.smalltalk\"}},\"match\":\"((?:\\\\s*:[A-Z_a-z][0-9A-Z_a-z]*)+)\\\\s*(\\\\|)\",\"name\":\"meta.block.arguments.smalltalk\"},{\"include\":\"$self\"}]},{\"include\":\"#numeric\"},{\"match\":\";\",\"name\":\"punctuation.separator.cascade.smalltalk\"},{\"match\":\"\\\\.\",\"name\":\"punctuation.terminator.statement.smalltalk\"},{\"match\":\":=\",\"name\":\"keyword.operator.assignment.smalltalk\"},{\"match\":\"<(?![<=])|>(?![<=>])|<=|>=|==??|~=|~~|>>\",\"name\":\"keyword.operator.comparison.smalltalk\"},{\"match\":\"([-*+/\\\\\\\\])\",\"name\":\"keyword.operator.arithmetic.smalltalk\"},{\"match\":\"(?<=[\\\\t ])!+|\\\\bnot\\\\b|&|\\\\band\\\\b|\\\\||\\\\bor\\\\b\",\"name\":\"keyword.operator.logical.smalltalk\"},{\"match\":\"->|[,@]\",\"name\":\"keyword.operator.misc.smalltalk\"},{\"match\":\"(?<!\\\\.)\\\\b(ensure|resume|retry|signal)\\\\b(?![!?])\",\"name\":\"keyword.control.smalltalk\"},{\"match\":\"\\\\b((?:ifCurtailed|ifTrue|ifFalse|whileFalse|whileTrue):)\\\\b\",\"name\":\"keyword.control.conditionals.smalltalk\"},{\"match\":\"\\\\b(to:do:|do:|timesRepeat:|even|collect:|select:|reject:)\\\\b\",\"name\":\"keyword.control.loop.smalltalk\"},{\"match\":\"\\\\b(initialize|show:|cr|printString|space|new:|at:|at:put:|size|value:??|nextPut:)\\\\b\",\"name\":\"support.function.smalltalk\"},{\"begin\":\"^\\\\s*([A-Z_a-z][0-9A-Z_a-z]*)\\\\s+(subclass:)\\\\s*('#?([A-Z_a-z][0-9A-Z_a-z]*)')\",\"beginCaptures\":{\"1\":{\"name\":\"entity.other.inherited-class.smalltalk\"},\"2\":{\"name\":\"keyword.declaration.class.smalltalk\"},\"3\":{\"name\":\"entity.name.type.class.smalltalk\"},\"4\":{\"name\":\"entity.name.type.class.smalltalk\"}},\"end\":\"(?=^\\\\s*!)\",\"name\":\"meta.class.definition.smalltalk\",\"patterns\":[{\"match\":\"\\\\b(instanceVariableNames:|classVariableNames:|poolDictionaries:|category:)\\\\b\",\"name\":\"keyword.declaration.class.variables.smalltalk\"},{\"include\":\"#string_single_quoted\"},{\"include\":\"#comment_block\"}]},{\"begin\":\"\\\"\",\"beginCaptures\":[{\"name\":\"punctuation.definition.comment.begin.smalltalk\"}],\"end\":\"\\\"\",\"endCaptures\":[{\"name\":\"punctuation.definition.comment.end.smalltalk\"}],\"name\":\"comment.block.smalltalk\"},{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.boolean.smalltalk\"},{\"match\":\"\\\\b(nil)\\\\b\",\"name\":\"constant.language.nil.smalltalk\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.smalltalk\"}},\"match\":\"(#)[A-Z_a-z][0-:A-Z_a-z]*\",\"name\":\"constant.other.symbol.smalltalk\"},{\"begin\":\"#\\\\[\",\"beginCaptures\":[{\"name\":\"punctuation.definition.constant.begin.smalltalk\"}],\"end\":\"]\",\"endCaptures\":[{\"name\":\"punctuation.definition.constant.end.smalltalk\"}],\"name\":\"meta.array.byte.smalltalk\",\"patterns\":[{\"match\":\"[0-9]+(r[0-9A-Za-z]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"},{\"match\":\"[^]\\\\s]+\",\"name\":\"invalid.illegal.character-not-allowed-here.smalltalk\"}]},{\"begin\":\"#\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.constant.array.begin.smalltalk\"}},\"end\":\"\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.constant.array.end.smalltalk\"}},\"name\":\"constant.other.array.literal.smalltalk\",\"patterns\":[{\"include\":\"#numeric\"},{\"include\":\"#string_single_quoted\"},{\"include\":\"#symbol\"},{\"include\":\"#comment_block\"},{\"include\":\"$self\"}]},{\"begin\":\"'\",\"beginCaptures\":[{\"name\":\"punctuation.definition.string.begin.smalltalk\"}],\"end\":\"'\",\"endCaptures\":[{\"name\":\"punctuation.definition.string.end.smalltalk\"}],\"name\":\"string.quoted.single.smalltalk\"},{\"match\":\"\\\\b[A-Z]\\\\w*\\\\b\",\"name\":\"entity.name.type.class.smalltalk\"}],\"repository\":{\"comment_block\":{\"begin\":\"\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.smalltalk\"}},\"end\":\"\\\"\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.smalltalk\"}},\"name\":\"comment.block.smalltalk\"},\"numeric\":{\"patterns\":[{\"match\":\"(?<!\\\\w)[0-9]+\\\\.[0-9]+s[0-9]*\",\"name\":\"constant.numeric.float.scaled.smalltalk\"},{\"match\":\"(?<!\\\\w)[0-9]+\\\\.[0-9]+([deq]-?[0-9]+)?\",\"name\":\"constant.numeric.float.smalltalk\"},{\"match\":\"(?<!\\\\w)-?[0-9]+r[0-9A-Za-z]+\",\"name\":\"constant.numeric.integer.radix.smalltalk\"},{\"match\":\"(?<!\\\\w)-?[0-9]+([deq]-?[0-9]+)?\",\"name\":\"constant.numeric.integer.smalltalk\"}]},\"string_single_quoted\":{\"begin\":\"'\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.smalltalk\"}},\"end\":\"'\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.smalltalk\"}},\"name\":\"string.quoted.single.smalltalk\"},\"symbol\":{\"captures\":{\"1\":{\"name\":\"punctuation.definition.constant.symbol.smalltalk\"}},\"match\":\"(#)[A-Z_a-z][0-:A-Z_a-z]*\",\"name\":\"constant.other.symbol.smalltalk\"}},\"scopeName\":\"source.smalltalk\"}"))
2
2
 
3
3
  export default [
4
4
  lang
package/dist/solidity.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const lang = Object.freeze(JSON.parse("{\"displayName\":\"Solidity\",\"fileTypes\":[\"sol\"],\"name\":\"solidity\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#comment\"},{\"include\":\"#operator\"},{\"include\":\"#global\"},{\"include\":\"#control\"},{\"include\":\"#constant\"},{\"include\":\"#primitive\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#declaration\"},{\"include\":\"#function-call\"},{\"include\":\"#assembly\"},{\"include\":\"#punctuation\"}],\"repository\":{\"assembly\":{\"patterns\":[{\"match\":\"\\\\b(assembly)\\\\b\",\"name\":\"keyword.control.assembly\"},{\"match\":\"\\\\b(let)\\\\b\",\"name\":\"storage.type.assembly\"}]},\"comment\":{\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#comment-block\"}]},\"comment-block\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-line\":{\"begin\":\"(?<!tp:)//\",\"end\":\"$\",\"name\":\"comment.line\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-todo\":{\"match\":\"(?i)\\\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\\\w+-disable|\\\\w+-suppress)\\\\b(?-i)\",\"name\":\"keyword.comment.todo\"},\"constant\":{\"patterns\":[{\"include\":\"#constant-boolean\"},{\"include\":\"#constant-time\"},{\"include\":\"#constant-currency\"}]},\"constant-boolean\":{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.boolean\"},\"constant-currency\":{\"match\":\"\\\\b(ether|wei|gwei|finney|szabo)\\\\b\",\"name\":\"constant.language.currency\"},\"constant-time\":{\"match\":\"\\\\b(seconds|minutes|hours|days|weeks|years)\\\\b\",\"name\":\"constant.language.time\"},\"control\":{\"patterns\":[{\"include\":\"#control-flow\"},{\"include\":\"#control-using\"},{\"include\":\"#control-import\"},{\"include\":\"#control-pragma\"},{\"include\":\"#control-underscore\"},{\"include\":\"#control-unchecked\"},{\"include\":\"#control-other\"}]},\"control-flow\":{\"patterns\":[{\"match\":\"\\\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\\\b\",\"name\":\"keyword.control.flow\"},{\"begin\":\"\\\\b(returns)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.return\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]}]},\"control-import\":{\"patterns\":[{\"begin\":\"\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import\"}},\"end\":\"(?=;)\",\"patterns\":[{\"begin\":\"((?=\\\\{))\",\"end\":\"((?=}))\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.interface\"}]},{\"match\":\"\\\\b(from)\\\\b\",\"name\":\"keyword.control.import.from\"},{\"include\":\"#string\"},{\"include\":\"#punctuation\"}]},{\"match\":\"\\\\b(import)\\\\b\",\"name\":\"keyword.control.import\"}]},\"control-other\":{\"match\":\"\\\\b(new|delete|emit)\\\\b\",\"name\":\"keyword.control\"},\"control-pragma\":{\"captures\":{\"1\":{\"name\":\"keyword.control.pragma\"},\"2\":{\"name\":\"entity.name.tag.pragma\"},\"3\":{\"name\":\"constant.other.pragma\"}},\"match\":\"\\\\b(pragma)(?:\\\\s+([A-Za-z_]\\\\w+)\\\\s+(\\\\S+))?\\\\b\"},\"control-unchecked\":{\"match\":\"\\\\b(unchecked)\\\\b\",\"name\":\"keyword.control.unchecked\"},\"control-underscore\":{\"match\":\"\\\\b(_)\\\\b\",\"name\":\"constant.other.underscore\"},\"control-using\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.using\"},\"2\":{\"name\":\"entity.name.type.library\"},\"3\":{\"name\":\"keyword.control.for\"},\"4\":{\"name\":\"entity.name.type\"}},\"match\":\"\\\\b(using)\\\\b\\\\s+\\\\b([A-Za-z\\\\d_]+)\\\\b\\\\s+\\\\b(for)\\\\b\\\\s+\\\\b([A-Za-z\\\\d_]+)\"},{\"match\":\"\\\\b(using)\\\\b\",\"name\":\"keyword.control.using\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#declaration-contract\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#declaration-interface\"},{\"include\":\"#declaration-library\"},{\"include\":\"#declaration-function\"},{\"include\":\"#declaration-modifier\"},{\"include\":\"#declaration-constructor\"},{\"include\":\"#declaration-event\"},{\"include\":\"#declaration-storage\"},{\"include\":\"#declaration-error\"}]},\"declaration-constructor\":{\"patterns\":[{\"begin\":\"\\\\b(constructor)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"begin\":\"\\\\G\\\\s*(?=\\\\()\",\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]},{\"begin\":\"(?<=\\\\))\",\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#type-modifier-access\"},{\"include\":\"#function-call\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"match\":\"\\\\b(constructor)\\\\b\"}]},\"declaration-contract\":{\"patterns\":[{\"begin\":\"\\\\b(contract)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.contract.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"}},\"match\":\"\\\\b(contract)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"}]},\"declaration-enum\":{\"patterns\":[{\"begin\":\"\\\\b(enum)\\\\s+(\\\\w+)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum\"},\"2\":{\"name\":\"entity.name.type.enum\"}},\"end\":\"(?=})\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"variable.other.enummember\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.enum\"},\"3\":{\"name\":\"entity.name.type.enum\"}},\"match\":\"\\\\b(enum)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"}]},\"declaration-error\":{\"captures\":{\"1\":{\"name\":\"storage.type.error\"},\"3\":{\"name\":\"entity.name.type.error\"}},\"match\":\"\\\\b(error)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"},\"declaration-event\":{\"patterns\":[{\"begin\":\"\\\\b(event)\\\\b(?:\\\\s+(\\\\w+)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event\"},\"2\":{\"name\":\"entity.name.type.event\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.indexed\"},\"2\":{\"name\":\"variable.parameter.event\"}},\"match\":\"\\\\b(?:(indexed)\\\\s)?(\\\\w+)(?:,\\\\s*|)\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.event\"},\"3\":{\"name\":\"entity.name.type.event\"}},\"match\":\"\\\\b(event)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"}]},\"declaration-function\":{\"patterns\":[{\"begin\":\"\\\\b(function)\\\\s+(\\\\w+)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"end\":\"(?=[{;])\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#global\"},{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#control-flow\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\b(function)\\\\s+([A-Za-z_]\\\\w*)\\\\b\"}]},\"declaration-function-parameters\":{\"begin\":\"\\\\G\\\\s*(?=\\\\()\",\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"}},\"match\":\"\\\\b([A-Z]\\\\w*)\\\\b\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},\"declaration-interface\":{\"patterns\":[{\"begin\":\"\\\\b(interface)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.interface.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"}},\"match\":\"\\\\b(interface)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"}]},\"declaration-library\":{\"captures\":{\"1\":{\"name\":\"storage.type.library\"},\"3\":{\"name\":\"entity.name.type.library\"}},\"match\":\"\\\\b(library)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"},\"declaration-modifier\":{\"patterns\":[{\"begin\":\"\\\\b(modifier)\\\\b\\\\s*(\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.modifier\"},\"2\":{\"name\":\"entity.name.function.modifier\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"begin\":\"(?<=\\\\))\",\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#control-flow\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier\"},\"3\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\b(modifier)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"}]},\"declaration-storage\":{\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#declaration-struct\"},{\"include\":\"#declaration-enum\"},{\"include\":\"#declaration-storage-field\"}]},\"declaration-storage-field\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#control\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-transient\"},{\"include\":\"#type-modifier-extend-scope\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-constant\"},{\"include\":\"#primitive\"},{\"include\":\"#constant\"},{\"include\":\"#operator\"},{\"include\":\"#punctuation\"}]},\"declaration-storage-mapping\":{\"patterns\":[{\"begin\":\"\\\\b(mapping)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.mapping\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#type-primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#operator\"}]},{\"match\":\"\\\\b(mapping)\\\\b\",\"name\":\"storage.type.mapping\"}]},\"declaration-struct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"},\"3\":{\"name\":\"entity.name.type.struct\"}},\"match\":\"\\\\b(struct)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"},{\"begin\":\"\\\\b(struct)\\\\b\\\\s*(\\\\w+)?\\\\b\\\\s*(?=\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.struct\"},\"2\":{\"name\":\"entity.name.type.struct\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]}]},\"declaration-userType\":{\"captures\":{\"1\":{\"name\":\"storage.type.userType\"},\"2\":{\"name\":\"entity.name.type.userType\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"match\":\"\\\\b(type)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\"},\"function-call\":{\"captures\":{\"1\":{\"name\":\"entity.name.function\"},\"2\":{\"name\":\"punctuation.parameters.begin\"}},\"match\":\"\\\\b([A-Za-z_]\\\\w*)\\\\s*(\\\\()\"},\"global\":{\"patterns\":[{\"include\":\"#global-variables\"},{\"include\":\"#global-functions\"}]},\"global-functions\":{\"patterns\":[{\"match\":\"\\\\b(require|assert|revert)\\\\b\",\"name\":\"keyword.control.exceptions\"},{\"match\":\"\\\\b(s(?:elfdestruct|uicide))\\\\b\",\"name\":\"keyword.control.contract\"},{\"match\":\"\\\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\\\b\",\"name\":\"support.function.math\"},{\"match\":\"\\\\b(unicode)\\\\b\",\"name\":\"support.function.string\"},{\"match\":\"\\\\b(blockhash|gasleft)\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\b(type)\\\\b\",\"name\":\"variable.language.type\"}]},\"global-variables\":{\"patterns\":[{\"match\":\"\\\\b(this)\\\\b\",\"name\":\"variable.language.this\"},{\"match\":\"\\\\b(super)\\\\b\",\"name\":\"variable.language.super\"},{\"match\":\"\\\\b(abi)\\\\b\",\"name\":\"variable.language.builtin.abi\"},{\"match\":\"\\\\b(msg\\\\.sender|msg|block|tx|now)\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\b(tx\\\\.origin|tx\\\\.gasprice|msg\\\\.data|msg\\\\.sig|msg\\\\.value)\\\\b\",\"name\":\"variable.language.transaction\"}]},\"modifier-call\":{\"patterns\":[{\"include\":\"#function-call\"},{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.function.modifier\"}]},\"natspec\":{\"patterns\":[{\"begin\":\"/\\\\*\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]},{\"begin\":\"///\",\"end\":\"$\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]}]},\"natspec-tag-author\":{\"match\":\"(@author)\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-custom\":{\"match\":\"(@custom:\\\\w*)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-dev\":{\"match\":\"(@dev)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-inheritdoc\":{\"match\":\"(@inheritdoc)\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-notice\":{\"match\":\"(@notice)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-param\":{\"captures\":{\"1\":{\"name\":\"storage.type.param.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@param)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"},\"natspec-tag-return\":{\"captures\":{\"1\":{\"name\":\"storage.type.return.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@return)(\\\\s+([A-Za-z_]\\\\w*))?\\\\b\"},\"natspec-tag-title\":{\"match\":\"(@title)\\\\b\",\"name\":\"storage.type.title.natspec\"},\"natspec-tags\":{\"patterns\":[{\"include\":\"#comment-todo\"},{\"include\":\"#natspec-tag-title\"},{\"include\":\"#natspec-tag-author\"},{\"include\":\"#natspec-tag-notice\"},{\"include\":\"#natspec-tag-dev\"},{\"include\":\"#natspec-tag-param\"},{\"include\":\"#natspec-tag-return\"},{\"include\":\"#natspec-tag-custom\"},{\"include\":\"#natspec-tag-inheritdoc\"}]},\"number\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"}]},\"number-decimal\":{\"match\":\"\\\\b([0-9_]+(\\\\.[0-9_]+)?)\\\\b\",\"name\":\"constant.numeric.decimal\"},\"number-hex\":{\"match\":\"\\\\b(0[xX]\\\\h+)\\\\b\",\"name\":\"constant.numeric.hexadecimal\"},\"number-scientific\":{\"match\":\"\\\\b(?:0\\\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\\\.\\\\d{1,2})?)(?:e[+-]?[0-9_]+)?\",\"name\":\"constant.numeric.scientific\"},\"operator\":{\"patterns\":[{\"include\":\"#operator-logic\"},{\"include\":\"#operator-mapping\"},{\"include\":\"#operator-arithmetic\"},{\"include\":\"#operator-binary\"},{\"include\":\"#operator-assignment\"}]},\"operator-arithmetic\":{\"match\":\"([+\\\\-/*])\",\"name\":\"keyword.operator.arithmetic\"},\"operator-assignment\":{\"match\":\"(:?=)\",\"name\":\"keyword.operator.assignment\"},\"operator-binary\":{\"match\":\"([\\\\^\\\\&|]|<<|>>)\",\"name\":\"keyword.operator.binary\"},\"operator-logic\":{\"match\":\"(==|!=|<(?!<)|<=|>(?!>)|>=|&&|\\\\|\\\\||:(?!=)|[?!])\",\"name\":\"keyword.operator.logic\"},\"operator-mapping\":{\"match\":\"(=>)\",\"name\":\"keyword.operator.mapping\"},\"primitive\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"},{\"include\":\"#string\"}]},\"punctuation\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.terminator.statement\"},{\"match\":\"\\\\.\",\"name\":\"punctuation.accessor\"},{\"match\":\",\",\"name\":\"punctuation.separator\"},{\"match\":\"\\\\{\",\"name\":\"punctuation.brace.curly.begin\"},{\"match\":\"}\",\"name\":\"punctuation.brace.curly.end\"},{\"match\":\"\\\\[\",\"name\":\"punctuation.brace.square.begin\"},{\"match\":\"]\",\"name\":\"punctuation.brace.square.end\"},{\"match\":\"\\\\(\",\"name\":\"punctuation.parameters.begin\"},{\"match\":\"\\\\)\",\"name\":\"punctuation.parameters.end\"}]},\"string\":{\"patterns\":[{\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\",\"name\":\"string.quoted.double\"},{\"match\":\"'(?:\\\\\\\\'|[^'])*'\",\"name\":\"string.quoted.single\"}]},\"type-modifier-access\":{\"match\":\"\\\\b(internal|external|private|public)\\\\b\",\"name\":\"storage.type.modifier.access\"},\"type-modifier-constant\":{\"match\":\"\\\\b(constant)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-extended-scope\":{\"match\":\"\\\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\\\b\",\"name\":\"storage.type.modifier.extendedscope\"},\"type-modifier-immutable\":{\"match\":\"\\\\b(immutable)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-payable\":{\"match\":\"\\\\b(nonpayable|payable)\\\\b\",\"name\":\"storage.type.modifier.payable\"},\"type-modifier-transient\":{\"match\":\"\\\\b(transient)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-primitive\":{\"patterns\":[{\"begin\":\"\\\\b(address|string\\\\d*|bytes\\\\d*|int\\\\d*|uint\\\\d*|bool|hash\\\\d*)\\\\b\\\\[](\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.primitive\"}},\"end\":\"(\\\\))\",\"patterns\":[{\"include\":\"#primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#global\"},{\"include\":\"#variable\"}]},{\"match\":\"\\\\b(address|string\\\\d*|bytes\\\\d*|int\\\\d*|uint\\\\d*|bool|hash\\\\d*)\\\\b\",\"name\":\"support.type.primitive\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.function\"}},\"match\":\"\\\\b(_\\\\w+)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"support.variable.property\"}},\"match\":\"\\\\.(\\\\w+)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.other\"}},\"match\":\"\\\\b(\\\\w+)\\\\b\"}]}},\"scopeName\":\"source.solidity\"}"))
1
+ const lang = Object.freeze(JSON.parse("{\"displayName\":\"Solidity\",\"fileTypes\":[\"sol\"],\"name\":\"solidity\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#comment\"},{\"include\":\"#operator\"},{\"include\":\"#global\"},{\"include\":\"#control\"},{\"include\":\"#constant\"},{\"include\":\"#primitive\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#declaration\"},{\"include\":\"#function-call\"},{\"include\":\"#assembly\"},{\"include\":\"#punctuation\"}],\"repository\":{\"assembly\":{\"patterns\":[{\"match\":\"\\\\b(assembly)\\\\b\",\"name\":\"keyword.control.assembly\"},{\"match\":\"\\\\b(let)\\\\b\",\"name\":\"storage.type.assembly\"}]},\"comment\":{\"patterns\":[{\"include\":\"#comment-line\"},{\"include\":\"#comment-block\"}]},\"comment-block\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-line\":{\"begin\":\"(?<!tp:)//\",\"end\":\"$\",\"name\":\"comment.line\",\"patterns\":[{\"include\":\"#comment-todo\"}]},\"comment-todo\":{\"match\":\"(?i)\\\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\\\w+-disable|\\\\w+-suppress)\\\\b(?-i)\",\"name\":\"keyword.comment.todo\"},\"constant\":{\"patterns\":[{\"include\":\"#constant-boolean\"},{\"include\":\"#constant-time\"},{\"include\":\"#constant-currency\"}]},\"constant-boolean\":{\"match\":\"\\\\b(true|false)\\\\b\",\"name\":\"constant.language.boolean\"},\"constant-currency\":{\"match\":\"\\\\b(ether|wei|gwei|finney|szabo)\\\\b\",\"name\":\"constant.language.currency\"},\"constant-time\":{\"match\":\"\\\\b((?:second|minute|hour|day|week|year)s)\\\\b\",\"name\":\"constant.language.time\"},\"control\":{\"patterns\":[{\"include\":\"#control-flow\"},{\"include\":\"#control-using\"},{\"include\":\"#control-import\"},{\"include\":\"#control-pragma\"},{\"include\":\"#control-underscore\"},{\"include\":\"#control-unchecked\"},{\"include\":\"#control-other\"}]},\"control-flow\":{\"patterns\":[{\"match\":\"\\\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\\\b\",\"name\":\"keyword.control.flow\"},{\"begin\":\"\\\\b(returns)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.flow.return\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]}]},\"control-import\":{\"patterns\":[{\"begin\":\"\\\\b(import)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.import\"}},\"end\":\"(?=;)\",\"patterns\":[{\"begin\":\"((?=\\\\{))\",\"end\":\"((?=}))\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.interface\"}]},{\"match\":\"\\\\b(from)\\\\b\",\"name\":\"keyword.control.import.from\"},{\"include\":\"#string\"},{\"include\":\"#punctuation\"}]},{\"match\":\"\\\\b(import)\\\\b\",\"name\":\"keyword.control.import\"}]},\"control-other\":{\"match\":\"\\\\b(new|delete|emit)\\\\b\",\"name\":\"keyword.control\"},\"control-pragma\":{\"captures\":{\"1\":{\"name\":\"keyword.control.pragma\"},\"2\":{\"name\":\"entity.name.tag.pragma\"},\"3\":{\"name\":\"constant.other.pragma\"}},\"match\":\"\\\\b(pragma)(?:\\\\s+([A-Z_a-z]\\\\w+)\\\\s+(\\\\S+))?\\\\b\"},\"control-unchecked\":{\"match\":\"\\\\b(unchecked)\\\\b\",\"name\":\"keyword.control.unchecked\"},\"control-underscore\":{\"match\":\"\\\\b(_)\\\\b\",\"name\":\"constant.other.underscore\"},\"control-using\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.using\"},\"2\":{\"name\":\"entity.name.type.library\"},\"3\":{\"name\":\"keyword.control.for\"},\"4\":{\"name\":\"entity.name.type\"}},\"match\":\"\\\\b(using)\\\\b\\\\s+\\\\b([A-Z_a-z\\\\d]+)\\\\b\\\\s+\\\\b(for)\\\\b\\\\s+\\\\b([A-Z_a-z\\\\d]+)\"},{\"match\":\"\\\\b(using)\\\\b\",\"name\":\"keyword.control.using\"}]},\"declaration\":{\"patterns\":[{\"include\":\"#declaration-contract\"},{\"include\":\"#declaration-userType\"},{\"include\":\"#declaration-interface\"},{\"include\":\"#declaration-library\"},{\"include\":\"#declaration-function\"},{\"include\":\"#declaration-modifier\"},{\"include\":\"#declaration-constructor\"},{\"include\":\"#declaration-event\"},{\"include\":\"#declaration-storage\"},{\"include\":\"#declaration-error\"}]},\"declaration-constructor\":{\"patterns\":[{\"begin\":\"\\\\b(constructor)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"begin\":\"\\\\G\\\\s*(?=\\\\()\",\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"}]},{\"begin\":\"(?<=\\\\))\",\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#type-modifier-access\"},{\"include\":\"#function-call\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.constructor\"}},\"match\":\"\\\\b(constructor)\\\\b\"}]},\"declaration-contract\":{\"patterns\":[{\"begin\":\"\\\\b(contract)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.contract.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.contract\"},\"2\":{\"name\":\"entity.name.type.contract\"}},\"match\":\"\\\\b(contract)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"}]},\"declaration-enum\":{\"patterns\":[{\"begin\":\"\\\\b(enum)\\\\s+(\\\\w+)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.enum\"},\"2\":{\"name\":\"entity.name.type.enum\"}},\"end\":\"(?=})\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"variable.other.enummember\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.enum\"},\"3\":{\"name\":\"entity.name.type.enum\"}},\"match\":\"\\\\b(enum)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"}]},\"declaration-error\":{\"captures\":{\"1\":{\"name\":\"storage.type.error\"},\"3\":{\"name\":\"entity.name.type.error\"}},\"match\":\"\\\\b(error)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"},\"declaration-event\":{\"patterns\":[{\"begin\":\"\\\\b(event)\\\\b(?:\\\\s+(\\\\w+)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event\"},\"2\":{\"name\":\"entity.name.type.event\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier.indexed\"},\"2\":{\"name\":\"variable.parameter.event\"}},\"match\":\"\\\\b(?:(indexed)\\\\s)?(\\\\w+)(?:,\\\\s*|)\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.event\"},\"3\":{\"name\":\"entity.name.type.event\"}},\"match\":\"\\\\b(event)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"}]},\"declaration-function\":{\"patterns\":[{\"begin\":\"\\\\b(function)\\\\s+(\\\\w+)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"end\":\"(?=[;{])\",\"patterns\":[{\"include\":\"#natspec\"},{\"include\":\"#global\"},{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#control-flow\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#punctuation\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.function\"},\"2\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\b(function)\\\\s+([A-Z_a-z]\\\\w*)\\\\b\"}]},\"declaration-function-parameters\":{\"begin\":\"\\\\G\\\\s*(?=\\\\()\",\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-extended-scope\"},{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"}},\"match\":\"\\\\b([A-Z]\\\\w*)\\\\b\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]},\"declaration-interface\":{\"patterns\":[{\"begin\":\"\\\\b(interface)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\\\\s+\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.type.interface.extend\"}]},{\"captures\":{\"1\":{\"name\":\"storage.type.interface\"},\"2\":{\"name\":\"entity.name.type.interface\"}},\"match\":\"\\\\b(interface)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"}]},\"declaration-library\":{\"captures\":{\"1\":{\"name\":\"storage.type.library\"},\"3\":{\"name\":\"entity.name.type.library\"}},\"match\":\"\\\\b(library)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"},\"declaration-modifier\":{\"patterns\":[{\"begin\":\"\\\\b(modifier)\\\\b\\\\s*(\\\\w+)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.function.modifier\"},\"2\":{\"name\":\"entity.name.function.modifier\"}},\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"begin\":\"(?<=\\\\))\",\"end\":\"(?=\\\\{)\",\"patterns\":[{\"include\":\"#declaration-function-parameters\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-extended-scope\"},{\"include\":\"#function-call\"},{\"include\":\"#modifier-call\"},{\"include\":\"#control-flow\"}]}]},{\"captures\":{\"1\":{\"name\":\"storage.type.modifier\"},\"3\":{\"name\":\"entity.name.function\"}},\"match\":\"\\\\b(modifier)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"}]},\"declaration-storage\":{\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#declaration-struct\"},{\"include\":\"#declaration-enum\"},{\"include\":\"#declaration-storage-field\"}]},\"declaration-storage-field\":{\"patterns\":[{\"include\":\"#comment\"},{\"include\":\"#control\"},{\"include\":\"#type-primitive\"},{\"include\":\"#type-modifier-access\"},{\"include\":\"#type-modifier-immutable\"},{\"include\":\"#type-modifier-transient\"},{\"include\":\"#type-modifier-extend-scope\"},{\"include\":\"#type-modifier-payable\"},{\"include\":\"#type-modifier-constant\"},{\"include\":\"#primitive\"},{\"include\":\"#constant\"},{\"include\":\"#operator\"},{\"include\":\"#punctuation\"}]},\"declaration-storage-mapping\":{\"patterns\":[{\"begin\":\"\\\\b(mapping)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.mapping\"}},\"end\":\"(?=\\\\))\",\"patterns\":[{\"include\":\"#declaration-storage-mapping\"},{\"include\":\"#type-primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#operator\"}]},{\"match\":\"\\\\b(mapping)\\\\b\",\"name\":\"storage.type.mapping\"}]},\"declaration-struct\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"storage.type.struct\"},\"3\":{\"name\":\"entity.name.type.struct\"}},\"match\":\"\\\\b(struct)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"},{\"begin\":\"\\\\b(struct)\\\\b\\\\s*(\\\\w+)?\\\\b\\\\s*(?=\\\\{)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.struct\"},\"2\":{\"name\":\"entity.name.type.struct\"}},\"end\":\"(?=})\",\"patterns\":[{\"include\":\"#type-primitive\"},{\"include\":\"#variable\"},{\"include\":\"#punctuation\"},{\"include\":\"#comment\"}]}]},\"declaration-userType\":{\"captures\":{\"1\":{\"name\":\"storage.type.userType\"},\"2\":{\"name\":\"entity.name.type.userType\"},\"3\":{\"name\":\"storage.modifier.is\"}},\"match\":\"\\\\b(type)\\\\b\\\\s+(\\\\w+)\\\\b\\\\s+\\\\b(is)\\\\b\"},\"function-call\":{\"captures\":{\"1\":{\"name\":\"entity.name.function\"},\"2\":{\"name\":\"punctuation.parameters.begin\"}},\"match\":\"\\\\b([A-Z_a-z]\\\\w*)\\\\s*(\\\\()\"},\"global\":{\"patterns\":[{\"include\":\"#global-variables\"},{\"include\":\"#global-functions\"}]},\"global-functions\":{\"patterns\":[{\"match\":\"\\\\b(require|assert|revert)\\\\b\",\"name\":\"keyword.control.exceptions\"},{\"match\":\"\\\\b(s(?:elfdestruct|uicide))\\\\b\",\"name\":\"keyword.control.contract\"},{\"match\":\"\\\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\\\b\",\"name\":\"support.function.math\"},{\"match\":\"\\\\b(unicode)\\\\b\",\"name\":\"support.function.string\"},{\"match\":\"\\\\b(blockhash|gasleft)\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\b(type)\\\\b\",\"name\":\"variable.language.type\"}]},\"global-variables\":{\"patterns\":[{\"match\":\"\\\\b(this)\\\\b\",\"name\":\"variable.language.this\"},{\"match\":\"\\\\b(super)\\\\b\",\"name\":\"variable.language.super\"},{\"match\":\"\\\\b(abi)\\\\b\",\"name\":\"variable.language.builtin.abi\"},{\"match\":\"\\\\b(msg\\\\.sender|msg|block|tx|now)\\\\b\",\"name\":\"variable.language.transaction\"},{\"match\":\"\\\\b(tx\\\\.origin|tx\\\\.gasprice|msg\\\\.data|msg\\\\.sig|msg\\\\.value)\\\\b\",\"name\":\"variable.language.transaction\"}]},\"modifier-call\":{\"patterns\":[{\"include\":\"#function-call\"},{\"match\":\"\\\\b(\\\\w+)\\\\b\",\"name\":\"entity.name.function.modifier\"}]},\"natspec\":{\"patterns\":[{\"begin\":\"/\\\\*\\\\*\",\"end\":\"\\\\*/\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]},{\"begin\":\"///\",\"end\":\"$\",\"name\":\"comment.block.documentation\",\"patterns\":[{\"include\":\"#natspec-tags\"}]}]},\"natspec-tag-author\":{\"match\":\"(@author)\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-custom\":{\"match\":\"(@custom:\\\\w*)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-dev\":{\"match\":\"(@dev)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-inheritdoc\":{\"match\":\"(@inheritdoc)\\\\b\",\"name\":\"storage.type.author.natspec\"},\"natspec-tag-notice\":{\"match\":\"(@notice)\\\\b\",\"name\":\"storage.type.dev.natspec\"},\"natspec-tag-param\":{\"captures\":{\"1\":{\"name\":\"storage.type.param.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@param)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"},\"natspec-tag-return\":{\"captures\":{\"1\":{\"name\":\"storage.type.return.natspec\"},\"3\":{\"name\":\"variable.other.natspec\"}},\"match\":\"(@return)(\\\\s+([A-Z_a-z]\\\\w*))?\\\\b\"},\"natspec-tag-title\":{\"match\":\"(@title)\\\\b\",\"name\":\"storage.type.title.natspec\"},\"natspec-tags\":{\"patterns\":[{\"include\":\"#comment-todo\"},{\"include\":\"#natspec-tag-title\"},{\"include\":\"#natspec-tag-author\"},{\"include\":\"#natspec-tag-notice\"},{\"include\":\"#natspec-tag-dev\"},{\"include\":\"#natspec-tag-param\"},{\"include\":\"#natspec-tag-return\"},{\"include\":\"#natspec-tag-custom\"},{\"include\":\"#natspec-tag-inheritdoc\"}]},\"number\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"}]},\"number-decimal\":{\"match\":\"\\\\b([0-9_]+(\\\\.[0-9_]+)?)\\\\b\",\"name\":\"constant.numeric.decimal\"},\"number-hex\":{\"match\":\"\\\\b(0[Xx]\\\\h+)\\\\b\",\"name\":\"constant.numeric.hexadecimal\"},\"number-scientific\":{\"match\":\"\\\\b(?:0\\\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\\\.\\\\d{1,2})?)(?:e[-+]?[0-9_]+)?\",\"name\":\"constant.numeric.scientific\"},\"operator\":{\"patterns\":[{\"include\":\"#operator-logic\"},{\"include\":\"#operator-mapping\"},{\"include\":\"#operator-arithmetic\"},{\"include\":\"#operator-binary\"},{\"include\":\"#operator-assignment\"}]},\"operator-arithmetic\":{\"match\":\"([-*+/])\",\"name\":\"keyword.operator.arithmetic\"},\"operator-assignment\":{\"match\":\"(:?=)\",\"name\":\"keyword.operator.assignment\"},\"operator-binary\":{\"match\":\"([\\\\&^|]|<<|>>)\",\"name\":\"keyword.operator.binary\"},\"operator-logic\":{\"match\":\"(==|!=|<(?!<)|<=|>(?!>)|>=|&&|\\\\|\\\\||:(?!=)|[!?])\",\"name\":\"keyword.operator.logic\"},\"operator-mapping\":{\"match\":\"(=>)\",\"name\":\"keyword.operator.mapping\"},\"primitive\":{\"patterns\":[{\"include\":\"#number-decimal\"},{\"include\":\"#number-hex\"},{\"include\":\"#number-scientific\"},{\"include\":\"#string\"}]},\"punctuation\":{\"patterns\":[{\"match\":\";\",\"name\":\"punctuation.terminator.statement\"},{\"match\":\"\\\\.\",\"name\":\"punctuation.accessor\"},{\"match\":\",\",\"name\":\"punctuation.separator\"},{\"match\":\"\\\\{\",\"name\":\"punctuation.brace.curly.begin\"},{\"match\":\"}\",\"name\":\"punctuation.brace.curly.end\"},{\"match\":\"\\\\[\",\"name\":\"punctuation.brace.square.begin\"},{\"match\":\"]\",\"name\":\"punctuation.brace.square.end\"},{\"match\":\"\\\\(\",\"name\":\"punctuation.parameters.begin\"},{\"match\":\"\\\\)\",\"name\":\"punctuation.parameters.end\"}]},\"string\":{\"patterns\":[{\"match\":\"\\\"(?:\\\\\\\\\\\"|[^\\\"])*\\\"\",\"name\":\"string.quoted.double\"},{\"match\":\"'(?:\\\\\\\\'|[^'])*'\",\"name\":\"string.quoted.single\"}]},\"type-modifier-access\":{\"match\":\"\\\\b(internal|external|private|public)\\\\b\",\"name\":\"storage.type.modifier.access\"},\"type-modifier-constant\":{\"match\":\"\\\\b(constant)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-extended-scope\":{\"match\":\"\\\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\\\b\",\"name\":\"storage.type.modifier.extendedscope\"},\"type-modifier-immutable\":{\"match\":\"\\\\b(immutable)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-modifier-payable\":{\"match\":\"\\\\b((?:non|)payable)\\\\b\",\"name\":\"storage.type.modifier.payable\"},\"type-modifier-transient\":{\"match\":\"\\\\b(transient)\\\\b\",\"name\":\"storage.type.modifier.readonly\"},\"type-primitive\":{\"patterns\":[{\"begin\":\"\\\\b(address|string\\\\d*|bytes\\\\d*|int\\\\d*|uint\\\\d*|bool|hash\\\\d*)\\\\b\\\\[](\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"support.type.primitive\"}},\"end\":\"(\\\\))\",\"patterns\":[{\"include\":\"#primitive\"},{\"include\":\"#punctuation\"},{\"include\":\"#global\"},{\"include\":\"#variable\"}]},{\"match\":\"\\\\b(address|string\\\\d*|bytes\\\\d*|int\\\\d*|uint\\\\d*|bool|hash\\\\d*)\\\\b\",\"name\":\"support.type.primitive\"}]},\"variable\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"variable.parameter.function\"}},\"match\":\"\\\\b(_\\\\w+)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"support.variable.property\"}},\"match\":\"\\\\.(\\\\w+)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.other\"}},\"match\":\"\\\\b(\\\\w+)\\\\b\"}]}},\"scopeName\":\"source.solidity\"}"))
2
2
 
3
3
  export default [
4
4
  lang