github-linguist 9.3.0 → 9.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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/dart.inline.edgeql.json +1 -0
  3. data/grammars/go.inline.edgeql.json +1 -0
  4. data/grammars/inline.surrealql-js-literal.json +1 -0
  5. data/grammars/js.inline.edgeql.json +1 -0
  6. data/grammars/markdown.move.codeblock.json +1 -1
  7. data/grammars/markdown.surrealql.codeblock.json +1 -0
  8. data/grammars/markdown.vue.codeblock.json +1 -1
  9. data/grammars/markdown.wesl.codeblock.json +1 -0
  10. data/grammars/markdown.wgsl.codeblock.json +1 -0
  11. data/grammars/mdx.vue.codeblock.json +1 -1
  12. data/grammars/res.inline.edgeql.json +1 -0
  13. data/grammars/source.abl.json +1 -1
  14. data/grammars/source.agda.json +1 -1
  15. data/grammars/source.al.json +1 -1
  16. data/grammars/source.algol60.json +1 -0
  17. data/grammars/source.apex.json +1 -1
  18. data/grammars/source.b.json +1 -0
  19. data/grammars/source.bicep.json +1 -1
  20. data/grammars/source.brs.json +1 -1
  21. data/grammars/source.bru.json +1 -1
  22. data/grammars/source.c++.json +1 -1
  23. data/grammars/source.c.json +1 -1
  24. data/grammars/source.c3.json +1 -1
  25. data/grammars/source.cadence.json +1 -1
  26. data/grammars/source.cj.json +1 -0
  27. data/grammars/source.clar.json +1 -1
  28. data/grammars/source.clean.json +1 -1
  29. data/grammars/source.comment-string.wesl.json +1 -0
  30. data/grammars/source.comment-string.wgsl.json +1 -0
  31. data/grammars/source.cql.json +1 -0
  32. data/grammars/source.cs.json +1 -1
  33. data/grammars/source.csv.json +1 -0
  34. data/grammars/source.data-weave.json +1 -1
  35. data/grammars/source.dsv.json +1 -0
  36. data/grammars/source.erlang.json +1 -1
  37. data/grammars/source.fsharp.json +1 -1
  38. data/grammars/source.gfm.blade.json +1 -1
  39. data/grammars/source.go-template.json +1 -0
  40. data/grammars/source.go.injection.double.go-template.json +1 -0
  41. data/grammars/source.go.injection.raw.go-template.json +1 -0
  42. data/grammars/source.hack.json +1 -1
  43. data/grammars/source.hurl.json +1 -0
  44. data/grammars/source.isabelle.theory.json +1 -1
  45. data/grammars/source.jac.json +1 -0
  46. data/grammars/source.jai.json +1 -1
  47. data/grammars/source.just.json +1 -1
  48. data/grammars/source.kcl.json +1 -0
  49. data/grammars/source.langium.json +1 -0
  50. data/grammars/source.lean.markdown.json +1 -1
  51. data/grammars/source.lean4.json +1 -1
  52. data/grammars/source.lean4.markdown.json +1 -1
  53. data/grammars/source.lp.json +1 -0
  54. data/grammars/source.lua.json +1 -1
  55. data/grammars/source.luau.json +1 -1
  56. data/grammars/source.m2.json +1 -1
  57. data/grammars/source.mask.json +1 -1
  58. data/grammars/source.mdx.json +1 -1
  59. data/grammars/source.mermaid.zenuml.json +1 -1
  60. data/grammars/source.mo.json +1 -1
  61. data/grammars/source.mojo.json +1 -1
  62. data/grammars/source.moonbit.json +1 -1
  63. data/grammars/source.move.json +1 -1
  64. data/grammars/source.ned.json +1 -1
  65. data/grammars/source.nr.json +1 -1
  66. data/grammars/source.nushell.json +1 -1
  67. data/grammars/source.proto.json +1 -1
  68. data/grammars/source.pyjade.json +1 -1
  69. data/grammars/source.quakec.json +1 -1
  70. data/grammars/source.rascal.json +1 -1
  71. data/grammars/source.rascript.json +1 -0
  72. data/grammars/source.rego.json +1 -1
  73. data/grammars/source.roc.json +1 -1
  74. data/grammars/source.rpgle.json +1 -1
  75. data/grammars/source.shell.json +1 -1
  76. data/grammars/source.singularity.json +1 -1
  77. data/grammars/source.soql.json +1 -1
  78. data/grammars/source.sqf.json +1 -1
  79. data/grammars/source.surrealql.json +1 -0
  80. data/grammars/source.teal.json +1 -0
  81. data/grammars/source.tmdl.json +1 -0
  82. data/grammars/source.tsp.json +1 -1
  83. data/grammars/source.tsv.json +1 -0
  84. data/grammars/source.vb6.json +1 -0
  85. data/grammars/source.vba.json +1 -1
  86. data/grammars/source.vento.json +1 -1
  87. data/grammars/source.vscode.c3.json +1 -0
  88. data/grammars/source.wdl.json +1 -1
  89. data/grammars/source.wgsl.json +1 -1
  90. data/grammars/source.wwb.json +1 -1
  91. data/grammars/text.git-commit.json +1 -0
  92. data/grammars/text.haml.json +1 -1
  93. data/grammars/text.html.markdown.d2.json +1 -1
  94. data/grammars/text.html.vue.json +1 -0
  95. data/grammars/text.injection.go-template.json +1 -0
  96. data/grammars/text.k.json +1 -0
  97. data/grammars/text.markdown.go-template.codeblock.json +1 -0
  98. data/grammars/text.marko.json +1 -1
  99. data/grammars/text.md.json +1 -1
  100. data/grammars/text.slim.json +1 -1
  101. data/grammars/text.source.mps.json +1 -0
  102. data/grammars/text.valve-cfg.json +1 -1
  103. data/grammars/v.mod.json +1 -0
  104. data/grammars/version +1 -1
  105. data/grammars/vue.directives.json +1 -1
  106. data/grammars/vue.interpolations.json +1 -1
  107. data/grammars/vue.sfc.script.leading-operator-fix.json +1 -0
  108. data/lib/linguist/VERSION +1 -1
  109. data/lib/linguist/generated.rb +24 -0
  110. data/lib/linguist/generic.yml +1 -0
  111. data/lib/linguist/heuristics.yml +62 -6
  112. data/lib/linguist/languages.json +1 -1
  113. data/lib/linguist/languages.yml +222 -26
  114. data/lib/linguist/samples.json +1 -1
  115. metadata +40 -3
  116. data/grammars/inline.edgeql.json +0 -1
  117. data/grammars/source.vue.json +0 -1
@@ -1 +1 @@
1
- {"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#operator"},{"include":"#term"}],"repository":{"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains))\\s+"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"operator":{"patterns":[{"name":"keyword.operator.comparison.rego","match":"\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026|:\\="}]},"string":{"patterns":[{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t\t\t\t\t\\\\ # a literal backslash\n\t\t\t\t\t(?: # ...followed by...\n\t\t\t\t\t\t[\"\\\\/bfnrt] # one of these characters\n\t\t\t\t\t\t| # ...or...\n\t\t\t\t\t\tu # a u\n\t\t\t\t\t\t[0-9a-fA-F]{4} # and four hex digits\n\t\t\t\t\t)\n\t\t\t\t\t)"},{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},{"name":"string.other.raw.rego","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}}]},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}
1
+ {"name":"Rego","scopeName":"source.rego","patterns":[{"include":"#comment"},{"include":"#keyword"},{"include":"#comparison-operators"},{"include":"#assignment-operators"},{"include":"#term"}],"repository":{"assignment-operators":{"name":"keyword.operator.assignment.rego","match":":\\=|\\="},"call":{"name":"meta.function-call.rego","match":"([a-zA-Z_][a-zA-Z0-9_]*)\\(","captures":{"1":{"name":"support.function.any-method.rego"}}},"comment":{"name":"comment.line.number-sign.rego","match":"(#).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.rego"}}},"comparison-operators":{"name":"keyword.operator.comparison.rego","match":"\\=\\=|\\!\\=|\u003e|\u003c|\u003c\\=|\u003e\\=|\\+|-|\\*|%|/|\\||\u0026"},"constant":{"name":"constant.language.rego","match":"\\b(?:true|false|null)\\b"},"interpolated-string-double":{"name":"string.template.rego","begin":"(\\$)(\")","end":"\"","patterns":[{"include":"#interpolation-expression"},{"include":"#string-escape"},{"include":"#interpolation-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolated-string-raw":{"name":"string.template.rego","begin":"(\\$)(`)","end":"`","patterns":[{"include":"#interpolation-expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.rego"},"2":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},"interpolation-escape":{"name":"constant.character.escape.rego","match":"\\\\[{}]"},"interpolation-expression":{"name":"meta.embedded.expression.rego","begin":"(?\u003c!\\\\)\\{","end":"\\}","patterns":[{"include":"#interpolation-expression-contents"}],"beginCaptures":{"0":{"name":"punctuation.section.embedded.rego"}},"endCaptures":{"0":{"name":"punctuation.section.embedded.rego"}}},"interpolation-expression-contents":{"patterns":[{"include":"#comment"},{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#variable"},{"include":"#comparison-operators"}]},"keyword":{"name":"keyword.other.rego","match":"(^|\\s+)(?:(default|not|package|import|as|with|else|some|in|every|if|contains))\\s+"},"number":{"name":"constant.numeric.rego","match":"(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )"},"string":{"patterns":[{"include":"#interpolated-string-double"},{"include":"#interpolated-string-raw"},{"name":"string.quoted.double.rego","begin":"\"","end":"\"","patterns":[{"include":"#string-escape"},{"include":"#string-escape-invalid"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}},{"name":"string.other.raw.rego","begin":"`","end":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.rego"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.rego"}}}]},"string-escape":{"name":"constant.character.escape.rego","match":"(?x: # turn on extended mode\n\t\t\t\\\\ # a literal backslash\n\t\t\t(?: # ...followed by...\n\t\t\t\t[\"\\\\/bfnrt] # one of these characters\n\t\t\t\t| # ...or...\n\t\t\t\tu # a u\n\t\t\t\t[0-9a-fA-F]{4} # and four hex digits\n\t\t\t)\n\t\t\t)"},"string-escape-invalid":{"name":"invalid.illegal.unrecognized-string-escape.rego","match":"\\\\."},"term":{"patterns":[{"include":"#constant"},{"include":"#string"},{"include":"#number"},{"include":"#call"},{"include":"#variable"}]},"variable":{"name":"meta.identifier.rego","match":"\\b[[:alpha:]_][[:alnum:]_]*\\b"}}}
@@ -1 +1 @@
1
- {"name":"Roc","scopeName":"source.roc","patterns":[{"name":"keyword.unused.roc","match":"(\\b_[a-zA-Z0-9_]*\\b)"},{"name":"keyword.control.roc","match":"\\b(dbg|if|then|else|when|is|app|module|package|import|as|exposing|expect)\\s+"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#punctuation"},{"include":"#module-member-access"},{"include":"#language-components"},{"include":"#infix_op"},{"include":"#type-signature"}],"repository":{"arrow":{"name":"punctuation.separator.arrow.roc","match":"-\u003e"},"brackets":{"name":"punctuation.bracket.roc","match":"(\\}|\\{)"},"comma":{"name":"punctuation.separator.comma.roc","match":"(,)"},"comments":{"patterns":[{"name":"comment.line.number-sign.roc","begin":"#","end":"$","captures":{"1":{"name":"punctuation.definition.comment.roc"}}},{"name":"comment.block.documentation.roc","begin":"##","end":"$","captures":{"1":{"name":"punctuation.definition.comment.roc"}}}]},"constructor":{"name":"entity.name.type.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},"infix_op":{"name":"keyword.operator.roc","match":"(\u003c/\u003e|\u003c\\?\u003e|\u003c\\||\u003c=|\\|\\||\u0026\u0026|\u003e=|\\|\u003e|\\|=|\\|\\.|\\+\\+|::|/=|==|//|\u003e\u003e|\u003c\u003c|\u003c|\u003e|\\^|\\+|-|/|\\*)"},"language-components":{"patterns":[{"include":"#constructor"},{"include":"#unit"},{"include":"#top-level-value"},{"include":"#record-accessor"}]},"module-member-access":{"name":"meta.module.access.roc","begin":"([A-Z][a-zA-Z0-9_]*)(\\.)","end":"\\s","patterns":[{"include":"#module-member-access"},{"include":"#constructor"},{"name":"support.function.roc","match":"\\b[a-z][a-zA-Z0-9_']*\\b"}],"beginCaptures":{"1":{"name":"support.class.roc"},"2":{"name":"keyword.other.period.roc"}}},"numbers":{"patterns":[{"include":"#numbers_float"},{"include":"#numbers_int"}]},"numbers_float":{"name":"constant.numeric.float.roc","match":"\\b([0-9][0-9_]*\\.[0-9_]+(e-?[0-9_]+)?|[0-9][0-9_]*e-?[0-9][0-9_]*)\\b"},"numbers_int":{"name":"constant.numeric.roc","match":"\\b([0-9][0-9_]*)\\b"},"parens":{"name":"punctuation.parens.roc","match":"(\\(|\\))"},"period":{"name":"keyword.other.period.roc","match":"[.]"},"punctuation":{"patterns":[{"include":"#brackets"},{"include":"#sq_brackets"},{"include":"#parens"},{"include":"#comma"},{"include":"#arrow"}]},"record-accessor":{"name":"meta.record.accessor","match":"(\\.)([a-z][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.other.period.roc"},"2":{"name":"entity.name.function.record-field.roc"}}},"sq_brackets":{"name":"punctuation.bracket.roc","match":"(\\]|\\[)"},"strings":{"patterns":[{"name":"string.quoted.double.roc","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal","begin":"\\\\u\\(","end":"\\)","patterns":[{"name":"constant.numeric.roc","match":"[0-9a-fA-F]+"}],"beginCaptures":{"0":{"name":"constant.character.escape.roc"}},"endCaptures":{"0":{"name":"constant.character.escape.roc"}}},{"name":"constant.character.escape.roc","match":"\\\\[nrt\\\\\\\"\\\\]"},{"name":"source.roc","begin":"\\$\\(","end":"\\)","patterns":[{"name":"keyword.control.roc","match":"\\b(dbg|expect|if|then|else|when|is|as)\\s+"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#punctuation"},{"include":"#module-member-access"},{"include":"#language-components"},{"include":"#infix_op"},{"include":"#type-signature"}],"beginCaptures":{"0":{"name":"constant.character.escape.roc"}},"endCaptures":{"0":{"name":"constant.character.escape.roc"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.roc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.roc"}}},{"name":"string.quoted.single.roc","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.roc","match":"\\\\[nrt\\\\'\\\\]"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.roc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.roc"}}}]},"top-level-value":{"name":"entity.name.function.top_level.roc","match":"^[a-z][a-zA-Z0-9_']*\\b"},"type-record":{"name":"meta.function.type-record.roc","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.spaces.roc","match":"\\s+"},{"name":"keyword.operator.arrow.roc","match":"-\u003e"},{"name":"meta.record.field.roc","match":"([a-z][a-zA-Z0-9_]*)\\s+(\\:)","captures":{"1":{"name":"entity.name.record.field.roc"},"2":{"name":"keyword.other.roc"}}},{"name":"punctuation.separator.comma.roc","match":"\\,"},{"name":"variable.type.roc","match":"\\b[a-z][a-zA-Z0-9_]*\\b"},{"name":"storage.type.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},{"include":"#comments"},{"include":"#type-record"}],"beginCaptures":{"1":{"name":"punctuation.section.braces.begin"}},"endCaptures":{"1":{"name":"punctuation.section.braces.end"}}},"type-signature":{"name":"meta.function.type-declaration.roc","begin":"^([a-z_][a-zA-Z0-9_']*)\\s+(\\:)","end":"((^(?=[a-z]))|^$)","patterns":[{"name":"punctuation.spaces.roc","match":"\\s+"},{"include":"#module-member-access"},{"name":"variable.type.roc","match":"\\b[a-z][a-zA-Z0-9_]*\\b"},{"name":"storage.type.class.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},{"include":"#arrow"},{"include":"#unit"},{"include":"#comma"},{"include":"#parens"},{"include":"#comments"},{"include":"#type-record"}],"beginCaptures":{"1":{"name":"entity.name.function.roc"},"2":{"name":"keyword.other.colon.roc"}}},"unit":{"name":"constant.unit.roc","match":"\\(\\)"}}}
1
+ {"name":"Roc","scopeName":"source.roc","patterns":[{"name":"keyword.unused.roc","match":"(\\b_[a-zA-Z0-9_]*\\b)"},{"name":"keyword.control.roc","match":"\\b(dbg|if|then|else|when|is|app|module|package|import|as|exposing|expect)\\s+"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#punctuation"},{"include":"#module-member-access"},{"include":"#language-components"},{"include":"#infix_op"},{"include":"#type-signature"}],"repository":{"arrow":{"name":"punctuation.separator.arrow.roc","match":"-\u003e"},"brackets":{"name":"punctuation.bracket.roc","match":"(\\}|\\{)"},"comma":{"name":"punctuation.separator.comma.roc","match":"(,)"},"comments":{"patterns":[{"name":"comment.line.number-sign.roc","begin":"#","end":"$","captures":{"1":{"name":"punctuation.definition.comment.roc"}}},{"name":"comment.block.documentation.roc","begin":"##","end":"$","captures":{"1":{"name":"punctuation.definition.comment.roc"}}}]},"constructor":{"name":"entity.name.type.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},"infix_op":{"name":"keyword.operator.roc","match":"(\u003c/\u003e|\u003c\\?\u003e|\u003c\\||\u003c=|\\|\\||\u0026\u0026|\u003e=|\\|\u003e|\\|=|\\|\\.|\\+\\+|::|/=|==|//|\u003e\u003e|\u003c\u003c|\u003c|\u003e|\\^|\\+|-|/|\\*|\\?\\?)"},"language-components":{"patterns":[{"include":"#constructor"},{"include":"#unit"},{"include":"#top-level-value"},{"include":"#record-accessor"}]},"module-member-access":{"name":"meta.module.access.roc","begin":"([A-Z][a-zA-Z0-9_]*)(\\.)","end":"\\s","patterns":[{"include":"#module-member-access"},{"include":"#constructor"},{"name":"support.function.roc","match":"\\b[a-z][a-zA-Z0-9_']*\\b"}],"beginCaptures":{"1":{"name":"support.class.roc"},"2":{"name":"keyword.other.period.roc"}}},"numbers":{"patterns":[{"include":"#numbers_float"},{"include":"#numbers_int"}]},"numbers_float":{"name":"constant.numeric.float.roc","match":"\\b([0-9][0-9_]*\\.[0-9_]+(e-?[0-9_]+)?|[0-9][0-9_]*e-?[0-9][0-9_]*)\\b"},"numbers_int":{"name":"constant.numeric.roc","match":"\\b([0-9][0-9_]*)\\b"},"parens":{"name":"punctuation.parens.roc","match":"(\\(|\\))"},"period":{"name":"keyword.other.period.roc","match":"[.]"},"punctuation":{"patterns":[{"include":"#brackets"},{"include":"#sq_brackets"},{"include":"#parens"},{"include":"#comma"},{"include":"#arrow"}]},"record-accessor":{"name":"meta.record.accessor","match":"(\\.)([a-z][a-zA-Z0-9_]*)","captures":{"1":{"name":"keyword.other.period.roc"},"2":{"name":"entity.name.function.record-field.roc"}}},"sq_brackets":{"name":"punctuation.bracket.roc","match":"(\\]|\\[)"},"strings":{"patterns":[{"name":"string.quoted.double.roc","begin":"\"","end":"\"","patterns":[{"name":"invalid.illegal","begin":"\\\\u\\(","end":"\\)","patterns":[{"name":"constant.numeric.roc","match":"[0-9a-fA-F]+"}],"beginCaptures":{"0":{"name":"constant.character.escape.roc"}},"endCaptures":{"0":{"name":"constant.character.escape.roc"}}},{"name":"constant.character.escape.roc","match":"\\\\[nrt\\\\\\\"\\\\]"},{"name":"source.roc","begin":"\\$\\(","end":"\\)","patterns":[{"name":"keyword.control.roc","match":"\\b(dbg|expect|if|then|else|when|is|as)\\s+"},{"include":"#comments"},{"include":"#strings"},{"include":"#numbers"},{"include":"#punctuation"},{"include":"#module-member-access"},{"include":"#language-components"},{"include":"#infix_op"},{"include":"#type-signature"}],"beginCaptures":{"0":{"name":"constant.character.escape.roc"}},"endCaptures":{"0":{"name":"constant.character.escape.roc"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.roc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.roc"}}},{"name":"string.quoted.single.roc","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.roc","match":"\\\\[nrt\\\\'\\\\]"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.roc"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.roc"}}}]},"top-level-value":{"name":"entity.name.function.top_level.roc","match":"^[a-z][a-zA-Z0-9_']*\\b"},"type-record":{"name":"meta.function.type-record.roc","begin":"(\\{)","end":"(\\})","patterns":[{"name":"punctuation.spaces.roc","match":"\\s+"},{"name":"keyword.operator.arrow.roc","match":"-\u003e"},{"name":"meta.record.field.roc","match":"([a-z][a-zA-Z0-9_]*)\\s+(\\:)","captures":{"1":{"name":"entity.name.record.field.roc"},"2":{"name":"keyword.other.roc"}}},{"name":"punctuation.separator.comma.roc","match":"\\,"},{"name":"variable.type.roc","match":"\\b[a-z][a-zA-Z0-9_]*\\b"},{"name":"storage.type.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},{"include":"#comments"},{"include":"#type-record"}],"beginCaptures":{"1":{"name":"punctuation.section.braces.begin"}},"endCaptures":{"1":{"name":"punctuation.section.braces.end"}}},"type-signature":{"name":"meta.function.type-declaration.roc","begin":"^([a-z_][a-zA-Z0-9_']*)\\s+(\\:)","end":"((^(?=[a-z]))|^$)","patterns":[{"name":"punctuation.spaces.roc","match":"\\s+"},{"include":"#module-member-access"},{"name":"variable.type.roc","match":"\\b[a-z][a-zA-Z0-9_]*\\b"},{"name":"storage.type.class.roc","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"},{"include":"#arrow"},{"include":"#unit"},{"include":"#comma"},{"include":"#parens"},{"include":"#comments"},{"include":"#type-record"}],"beginCaptures":{"1":{"name":"entity.name.function.roc"},"2":{"name":"keyword.other.colon.roc"}}},"unit":{"name":"constant.unit.roc","match":"\\(\\)"}}}
@@ -1 +1 @@
1
- {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\*\\*FREE"},{"include":"#ctarrays"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"include":"#tempfreeformat"},{"include":"#fixedSQL"},{"include":"#freeSQL"},{"include":"#precompiler"},{"include":"#ctarrays"},{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"include":"#fixedformat"},{"include":"#freeformat"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpgle.free","match":"(//).*"}]},"constants":{"patterns":[{"name":"constant.language.rpgle.indicator","match":"(?i)[*]\\b(IN)([0-9]{0,2})\\b"},{"name":"constant.language.rpgle","match":"[*][a-zA-Z][a-zA-Z0-9]*"},{"name":"constant.numeric.rpgle","match":"\\b\\d+\\.?\\d*?\\b"}]},"ctarrays":{"patterns":[{"begin":"(?=^(\\*{2})(?!free))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"string.other.rpgle.ctarray","begin":"^(\\*{2}(\\ |CTDATA))"}]}]},"fixedSQL":{"patterns":[{"begin":"(?i)(?=(^.{5}(C)(\\/EXEC)\\s+(SQL)\\b))","end":"(?i)(?=(^.{5}(C)(\\/END\\-EXEC)\\b))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(C)(\\/EXEC)\\s+(sql)\\b"},{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(C[\\+|\\/])"},{"include":"#sqlcommon"}]},{"name":"keyword.other.rpgle.sql","match":"(?i)(\\/END\\-EXEC)"}]},"fixedcomment":{"patterns":[{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"name":"comment.gutter","match":"^.{5}"},{"name":"comment.block.line.rpgle.fixed","begin":"(?i)(?\u003c=((?\u003c=^.{5}((H|F|D|I|C|O|P))).{74}))","end":"\n"}]},"fixedformat":{"patterns":[{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"},{"name":"rpgle.fixed.h","begin":"(?i)(?\u003c=^.{5}H)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"entity.name.function.rpgle.fixed.h.keywords","match":"\\b(?i)(VALIDATE|USRPRF|TIMFMT|THREAD|TEXT|SRTSEQ|PRFDTA|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECEDIT|DEBUG|DATFMT|DATEDIT|CVTOPT|DCLOPT|CURSYM|COPYRIGHT|CCSIDCVT|CCSID|COPYNEST|BNDDIR|AUT|ALWNULL|ALTSEQ|ALLOC|ACTGRP)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.f","begin":"(?i)(?\u003c=^.{5}F)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.f.type","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{10})))(I|O|U|C)"},{"name":"constant.language.rpgle.fixed.f.designation","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{11})).{3})(P|S|R|T|F)"},{"name":"constant.language.rpgle.fixed.f.eof","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{12})).{2})E"},{"name":"constant.language.rpgle.fixed.f.addition","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{13})).{2})A"},{"name":"constant.language.rpgle.fixed.f.sequence","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{14})).{2})(A|D)"},{"name":"constant.language.rpgle.fixed.f.format","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{15})).{2})(E|F)"},{"name":"constant.language.rpgle.fixed.fi.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F)([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.limitproc","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{5})L"},{"name":"constant.language.rpgle.fixed.fi.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F).{6})([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{11})(A|D|F|G|K|P|T|Z)"},{"name":"constant.language.rpgle.fixed.fi.fileorg","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F.{12})(?i)(I|T)"},{"name":"constant.language.rpgle.fixed.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{13})(PRINTER|DISK|WORKSTN|SPECIAL|SEQ)"},{"name":"entity.name.function.rpgle.fixed.f","match":"\\b(?i)(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.d","begin":"(?i)(?\u003c=^.{5}D)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"string.quoted.single.rpgle.fixed","begin":"'","end":"'","patterns":[{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"}]},{"name":"variable.other.rpgle.fixed.d.extended.name","match":"(?i)(?\u003c=^.{5}D).[a-zA-Z_][a-zA-Z0-9_]{1,71}[.]{3}"},{"name":"constant.language.rpgle.fixed.d.external","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{15}))E"},{"name":"constant.language.rpgle.fixed.d.dstype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{16}))(S|U)"},{"name":"constant.language.rpgle.fixed.d.dectype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{17}))(DS|PI|PR|(S\\s)|(C\\s))"},{"name":"constant.language.rpgle.fixed.d.from","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{21}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.d.to","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{26}))((\\+|\\-|\\s)(([0-9]|\\s){6}))"},{"name":"constant.language.rpgle.fixed.d.datatype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{33}))(A|B|D|F|G|I|N|P|S|T|U|Z|\\*)"},{"name":"constant.language.rpgle.fixed.d.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{34}))([0-9]|\\s){2}"},{"name":"entity.name.function.rpgle.fixed.d.keywords","match":"\\b(?i)(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|RTNPARM|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PERRCD|PACKEVEN|PACKED|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.i","begin":"(?i)(?\u003c=^.{5}I)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.i.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{10}))[A-Za-z0-9]{2}"},{"name":"constant.language.rpgle.fixed.i.number","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{12}))N"},{"name":"constant.language.rpgle.fixed.i.option","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{13}))O"},{"name":"constant.language.rpgle.fixed.i.recordid","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{14}))(([0-9]{2})|((H|L)([1-9]))|(RT)|((U)([1-8]))|(\\*\\*))"},{"name":"constant.language.rpgle.fixed.i.pos1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{16}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{21}))N"},{"name":"constant.language.rpgle.fixed.i.czd1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{22}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{23}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{24}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{29}))N"},{"name":"constant.language.rpgle.fixed.i.czd2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{30}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{31}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{32}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{37}))N"},{"name":"constant.language.rpgle.fixed.i.czd3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{38}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{39}))([A-Z0-9])"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.c","begin":"(?i)(?\u003c=^.{5}C)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.c.ctrl","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{0}))((L[0-9])|LR|SR|AN)"},{"name":"constant.language.rpgle.fixed.c.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{2}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|(U[1-8])|(O[A-G])|OV))"},{"name":"keyword.other.rpgle.fixed.c.extfactor2","begin":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))((\\s{10})|CALLP|WHEN\\s{2}|RETURN|ON-ERROR|IF\\s{2}|FOR|EVALR|EVAL|ELSEIF|DOW\\s{2}|DOU\\s{2})","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)(AND|COMP|CAB|CAS|DOU|DOW|FOR|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"variable.other","match":"((?i)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*)|\\(|\\)|\\%"}]},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)\\b(AND|COMP|CAB|CAS|DOU|DOW|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"keyword.other.rpgle.fixed.c.operation","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDUR|SUB|SQRT|SORTA|SHTDN|SETON|SETOFF|SETLL|SETGT|SELECT|SCAN|ROLBK|RETURN|RESET|REL|REALLOC|READPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|ON\\-EXIT|ON\\-ERROR|OCCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MONITOR|MLLZO|MLHZO|MHLZO|MHHZO|LOOKUP|LEAVESR|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FORCE|FOR|FEOD|EXTRCT|EXSR|EXFMT|EXCEPT|EVAL-CORR|EVALR|EVAL|ENDFOR|ENDSR|ENDIF|ENDDO|ENDCS|ENDWH|ENDSL|END|ELSEIF|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELETE|DEFINE|DEALLOC|DATA-INTO|DATA-GEN|COMP|COMMIT|CLOSE|CLEAR|CHECKR|CHECK|CHAIN|CAT|CAS|CALLP|CALLB|CALL|CAB|BITON|BITOFF|BEGSR|AND|ALLOC|ADDUR|ADD|ACQ)"},{"name":"constant.language.rpgle.fixed.c.len","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{57}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.c.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{62}))([0-9]|\\s){2}"},{"name":"constant.language.rpgle.fixed.c.hi","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{64}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.lo","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{66}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.eq","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{68}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"}]},{"name":"rpgle.fixed.o","begin":"(?i)(?\u003c=^.{5}O)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.o.type","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{10}))(H|D|T|E)"},{"name":"constant.language.rpgle.fixed.o.fetch","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{11}))(F|R)"},{"name":"constant.language.rpgle.fixed.o.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{14}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{17}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{20}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.spacebefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{33}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.spaceafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{36}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipbefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{39}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{42}))([0-9]|\\s){3}"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.p","begin":"(?i)(?\u003c=^.{5}P)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.p.beginend","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{17}))(B|E)"},{"name":"entity.name.function.rpgle.fixed.p.keywords","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{37}))(SERIALIZE|REQPROTO|PGMINFO|EXPORT)"},{"include":"#rpglecommon"}]}]},"freeSQL":{"patterns":[{"begin":"(?i)(?=(^\\s*(EXEC)\\s+(SQL)\\b))","end":"(?=(;))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(EXEC)\\s+(SQL)\\b"},{"include":"#sqlcommon"}]},{"name":"comment.line.rpgle.sql","match":"(?\u003c=(;))\\s*.*"},{"name":"rpgle.free.sql.end","match":";"}]},"freedefkeywords":{"patterns":[{"name":"entity.name.function.rpgle.free.definition.keywords","match":"(?i)\\b(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|SQLTYPE|SAMEPOS|RTNPARM|REQPROTO|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PGMINFO|PERRCD|PACKEVEN|PACKED|OVERLOAD|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NULLIND|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"}]},"freeformat":{"patterns":[{"name":"rpgle.free.control","begin":"(?i)\\b(?=CTL\\-OPT)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.control","match":"(?i)\\b(CTL\\-OPT)\\b"},{"name":"entity.name.function.rpgle.free.control.keywords","match":"(?i)\\b(VALIDATE|USRPRF|TRUNCNBR|TIMFMT|THREAD|TEXT|STGMDL|SRTSEQ|REQPREXP|PRFDTA|PGMINFO|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECPREC|DECEDIT|DEBUG|DATFMT|DATEYY|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|CHARCOUNTTYPES|CHARCOUNT|CCSIDCVT|CCSID|BNDDIR|AUT|ALWNULL|ALTSEQ|ACTGRP|ALLOC)\\b"}]},{"name":"rpgle.free.file","begin":"(?i)\\b(?=DCL\\-F)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.file","match":"(?i)\\b(DCL\\-F)\\b"},{"name":"entity.name.function.rpgle.free.file.keywords","match":"(?i)\\b(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"}]},{"name":"storage.type.rpgle.free.definition.subr","match":"(?i)\\b(BEG|END)SR\\b"},{"name":"rpgle.free.definition.simple","begin":"(?i)(?=(\\b(DCL\\-)(S|C|PARM|SUBF)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM|SUBF)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex-single","begin":"(?i)(?=(\\b(DCL\\-)(PR|DS)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex-single.dcl","match":"(?i)\\b(DCL\\-)(PR|DS)\\b"},{"name":"storage.type.rpgle.free.definition.complex-single.end","match":"(?i)\\b(END\\-)(PR|DS)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)\\b(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN-IN|WHEN-IS|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDUR|SUB|SQRT|SQLSTATE|SQLCODE|SORTA|SND\\-MSG|SHTDN|SETON|SETOFF|SETLL|SETGT|SELECT|SCAN|ROLBK|RETURN|RESET|REL|REALLOC|READPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|ON\\-EXIT|ON\\-EXCP|ON\\-ERROR|OCCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MONITOR|MLLZO|MLHZO|MHLZO|MHHZO|LOOKUP|LEAVESR|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FORCE|FOR\\-EACH|FOR|FEOD|EXTRCT|EXSR|EXFMT|EXCEPT|EVAL-CORR|EVALR|EVAL|ENDSR|ENDMON|ENDFOR|ENDIF|ENDDO|ENDCS|ENDWH|ENDSL|END|ELSEIF|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELETE|DEFINE|DEALLOC|DATA-INTO|DATA-GEN|COMP|COMMIT|CLOSE|CLEAR|CHECKR|CHECK|CHAIN|CAT|CAS|CALLP|CALLB|CALL|CAB|BITON|BITOFF|BEGSR|AND|ALLOC|ADDUR|ADD|ACQ)\\b"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},"freeidentifiers":{"patterns":[{"name":"variable.other.rpgle.free.definition.identifier","begin":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.operator.rpgle","match":"\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)"},{"name":"keyword.other.rpgle","match":":|\\.|\\,|((\\b(?i)(TO|BY|DOWNTO|IN|AND|OR|NOT)\\b))"},{"name":"support.function.rpgle.bif","match":"[%](?i)(YEARS|XML|XLATE|XFOOT|UPPER|UNSH|UNS|UCS2|TRIMR|TRIML|TRIM|TLOOKUPLT|TLOOKUPLE|TLOOKUPGT|TLOOKUPGE|TLOOKUP|TIMESTAMP|TIME|THIS|TARGET|SUBST|SUBDT|SUBARR|STR|STATUS|SQRT|SPLIT|SIZE|SHTDN|SECONDS|SCANRPL|SCANR|SCAN|RIGHT|REPLACE|REM|REALLOC|RANGE|PROC|PASSED|PARSER|PARMNUM|PARMS|PADDR|OPEN|OMITTED|OCCUR|NULLIND|MSG|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOVAL|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|LEFT|KDS|INTH|INT|HOURS|HIVAL|HANDLER|GRAPH|GEN|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CONCATARR|CONCAT|CHECKR|CHECK|CHARCOUNT|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.title"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.title"}}},{"name":"rpgle.free.precompiler.title","begin":"(?i)^\\s*(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.free.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.title"}}},{"name":"rpgle.fixed.precompiler.include","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(INCLUDE|COPY))\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.include"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.include"}}},{"name":"rpgle.free.precompiler.include","begin":"(?i)^\\s*(\\/(INCLUDE|COPY))\\s+(\\S+)(.*)","end":"\n","beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.include"},"3":{"name":"string.other.rpgle.precompiler.include"},"4":{"name":"comment.other.rpgle.precompiler.include"}}},{"name":"rpgle.fixed.precompiler.conditional","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(ELSEIF|IF))\\b(NOT|UNDEFINED|DEFINED)\\b(.*)","end":"(?i)(?=^.{5})(H|F|D|I|C|O|P|\\s)(\\/ENDIF)","patterns":[{"include":"#fixedformat"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"},"3":{"name":"keyword.other.rpgle.fixed.precompiler.defcheck"}},"endCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"}}},{"name":"rpgle.free.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.control.rpgle.precompiler.if","match":"(?i)^[\\s]*\\/(ELSEIF|IF)"},{"name":"keyword.other.rpgle.precompiler.defcheck","match":"(?i)\\s*\\b(NOT|UNDEFINED|DEFINED)\\b"},{"include":"#freedefkeywords"},{"include":"#freeformat"}]},{"name":"rpgle.precompiler.charcount","begin":"(?i)(?=(^[\\s]*\\/CHARCOUNT))","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler.charcount","match":"(?i)^[\\s]*\\/CHARCOUNT"},{"name":"keyword.other.rpgle.precompiler.charcount.mode","match":"(?i)\\s*\\b(NATURAL|STDCHARSIZE)\\b"}]},{"name":"rpgle.fixed.precompiler.misc","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(UNDEFINE|SPACE|FREE|EOF|END-FREE|ELSE|EJECT|DEFINE|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.misc"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.misc"}}},{"name":"rpgle.free.precompiler.misc","begin":"(?i)^[\\s]*(\\/(UNDEFINE|TITLE|SPACE|INCLUDE|FREE|EOF|ENDIF|END-FREE|ELSE|EJECT|DEFINE|COPY|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.misc"}}}]},"rpglecommon":{"patterns":[{"include":"#comments"},{"include":"#freedefkeywords"},{"include":"#constants"},{"include":"#precompiler"},{"include":"#keywords"},{"include":"#strings"}]},"sqlcommon":{"patterns":[{"name":"comment.line.rpgle.rpgle.sql","match":"//.*"},{"name":"constant.language.rpgle.sql.globals","match":"(?i)\\b(CLIENT_HOST|CLIENT_IPADDR|CLIENT_PORT|JOB_NAME|PACKAGE_NAME|PACKAGE_SCHEMA|PACKAGE_VERSION|PROCESS_ID|ROUTINE_SCHEMA|ROUTINE_SPECIFIC_NAME|ROUTINE_TYPE|SERVER_MODE_JOB_NAME|THREAD_ID)\\b"},{"name":"support.function.rpgle.sql","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(?=\\()"},{"name":"constant.language.rpgle.sql.schema","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(\\.|\\/)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"variable.parameter.rpgle.sql","match":"[:][a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ\\.]*"},{"name":"keyword.operator.rpgle.sql.reserved","match":"(?i)\\b(ZONE|YES|YEARS|YEAR|XSROBJECT|XSLTRANSFORM|XMLVALIDATE|XMLTEXT|XMLTABLE|XMLSERIALIZE|XMLROW|XMLPI|XMLPARSE|XMLNAMESPACES|XMLGROUP|XMLFOREST|XMLELEMENT|XMLDOCUMENT|XMLCONCAT|XMLCOMMENT|XMLCAST|XMLATTRIBUTES|XMLAGG|WRKSTNNAME|WRITE|WRAPPER|WRAPPED|WITHOUT|WITHIN|WITH|WHILE|WHERE|WHENEVER|WHEN|WAIT|VOLATILE|VIEW|VERSION|VCAT|VARIANT|VARIABLE|VALUES|VALUE|USING|USERID|USER|USE|USAGE|URI|UPDATING|UPDATE|UNTIL|UNNEST|UNIT|UNIQUE|UNION|UNDO|TYPE|TRUNCATE|TRIM_ARRAY|TRIM|TRIGGER|TRANSFER|TRANSACTION|TO|TIMESTAMP|TIME|THREADSAFE|THEN|TABLESPACES|TABLESPACE|TABLE|SYSTEM_USER|SYNONYM|SUMMARY|SUBSTRING|STOGROUP|STATIC|STATEMENT|STARTING|START|STACKED|SQLID|SQL|SPECIFIC|SOURCE|SOME|SNAN|SKIP|SIMPLE|SIGNAL|SET|SESSION_USER|SESSION|SEQUENCE|SENSITIVE|SELECT|SECURED|SECQTY|SECONDS|SECOND|SEARCH|SCROLL|SCRATCHPAD|SCHEMA|SBCS|SAVEPOINT|RUN|RRN|ROW_NUMBER|ROWS|ROWNUMBER|ROW|ROUTINE|ROLLUP|ROLLBACK|RIGHT|RID|REVOKE|RETURNS|RETURNING|RETURN|RESULT_SET_LOCATOR|RESULT|RESTART|RESIGNAL|RESET|REPEAT|RENAME|RELEASE|REGEXP_LIKE|REFRESH|REFERENCING|REFERENCES|RECOVERY|READS|READ|RCDFMT|RANK|RANGE|QUERY|PROGRAMID|PROGRAM|PROCEDURE|PRIVILEGES|PRIQTY|PRIOR|PRIMARY|PREVVAL|PREPARE|POSITION|PLAN|PIPE|PIECESIZE|PERMISSION|PCTFREE|PATH|PASSWORD|PASSING|PARTITIONS|PARTITIONING|PARTITIONED|PARTITION|PART|PARAMETER|PAGESIZE|PAGE|PADDED|PACKAGE|OVERRIDING|OVERLAY|OVER|OUTER|OUT|ORGANIZE|ORDINALITY|ORDER|OR|OPTION|OPTIMIZE|OPEN|ONLY|ON|OMIT|OLD_TABLE|OLD|OFFSET|OF|OBID|NVARCHAR|NULLS|NULL|NOT|NORMALIZED|NOORDER|NONE|NOMINVALUE|NOMAXVALUE|NODENUMBER|NODENAME|NOCYCLE|NOCACHE|NO|NEXTVAL|NEW_TABLE|NEW|NESTED|NCLOB|NCHAR|NATIONAL|NAN|NAMESPACE|MONTHS|MONTH|MODIFIES|MODE|MIXED|MINVALUE|MINUTES|MINUTE|MINPCTUSED|MICROSECONDS|MICROSECOND|MERGE|MAXVALUE|MATERIALIZED|MATCHED|MASK|MAINTAINED|LOOP|LONG|LOGGED|LOG|LOCKSIZE|LOCK|LOCATOR|LOCATION|LOCALTIMESTAMP|LOCALTIME|LOCALDATE|LOCAL|LISTAGG|LINKTYPE|LIMIT|LIKE|LEVEL2|LEFT|LEAVE|LATERAL|LANGUAGE|LABEL|KEY|KEEP|JSON_VALUE|JSON_TABLE|JSON_QUERY|JSON_OBJECTAGG|JSON_OBJECT|JSON_EXISTS|JSON_ARRAYAGG|JSON_ARRAY|JOIN|JAVA|ITERATE|ISOLATION|IS|INTO|INTERSECT|INTEGRITY|INSERTING|INSERT|INSENSITIVE|INOUT|INNER|INLINE|INHERIT|INFINITY|INF|INDICATOR|INDEXBP|INDEX|INCREMENT|INCLUSIVE|INCLUDING|INCLUDE|IMPLICITLY|IMMEDIATE|IGNORE|IF|IDENTITY|ID|HOURS|HOUR|HOLD|HINT|HAVING|HASHED_VALUE|HASH|HANDLER|GROUP|GRAPHIC|GRANT|GOTO|GO|GLOBAL|GET|GENERATED|GENERAL|GBPCACHE|FUNCTION|FULL|FROM|FREEPAGE|FREE|FORMAT|FOREIGN|FOR|FINAL|FILE|FIELDPROC|FETCH|FENCED|EXTRACT|EXTERNAL|EXTEND|EXIT|EXISTS|EXECUTE|EXCLUSIVE|EXCLUDING|EXCEPTION|EXCEPT|EVERY|ESCAPE|ERROR|ENFORCED|ENDING|END|ENCRYPTION|ENCODING|ENABLE|EMPTY|ELSEIF|ELSE|EACH|DYNAMIC|DROP|DOUBLE|DOCUMENT|DO|DISTINCT|DISCONNECT|DISALLOW|DISABLE|DIAGNOSTICS|DETERMINISTIC|DESCRIPTOR|DESCRIBE|DESC|DENSE_RANK|DENSERANK|DELETING|DELETE|DEFINITION|DEFINE|DEFER|DEFAULTS|DEFAULT|DECLARE|DEALLOCATE|DEACTIVATE|DBPARTITIONNUM|DBPARTITIONNAME|DBINFO|DB2SQL|DB2GENRL|DB2GENERAL|DAYS|DAY|DATE|DATAPARTITIONNUM|DATAPARTITIONNAME|DATABASE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TIMEZONE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_SERVER|CURRENT_SCHEMA|CURRENT_PATH|CURRENT_DATE|CURRENT|CUBE|CROSS|CREATEIN|CREATE|COUNT_BIG|COUNT|COPY|CONTINUE|CONTENT|CONTAINS|CONSTRAINT|CONSTANT|CONNECT_BY_ROOT|CONNECTION|CONNECT|CONDITION|CONCURRENT|CONCAT|COMPRESS|COMPACT|COMMIT|COMMENT|COLUMN|COLLECTION|COLLECT|CLUSTER|CLOSE|CL|CHECK|CHARACTER|CHAR|CCSID|CAST|CASE|CARDINALITY|CALLED|CALL|CACHE|BY|BUFFERPOOL|BIT|BIND|BINARY|BETWEEN|BEGIN|BEFORE|AUTONOMOUS|AUTHORIZATION|ATTRIBUTES|ATOMIC|AT|ASSOCIATE|ASENSITIVE|ASC|AS|ARRAY_AGG|ARRAY|APPLNAME|APPEND|ANY|AND|ALTER|ALLOW|ALLOCATE|ALL|ALIAS|ADD|ACTIVATE|ACTION|ACCTNG|ACCORDING|ABSENT)\\b"},{"include":"source.sql"}]},"strings":{"patterns":[{"name":"string.other.rpgle.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.rpgle","begin":"'","end":"'"}]},"tempfreeformat":{"patterns":[{"begin":"(?i)(?=((\\/FREE\\b)))","end":"(?i)(?=((\\/END-FREE\\b)))","patterns":[{"name":"keyword.control.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.control.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
1
+ {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\*\\*FREE"},{"include":"#ctarrays"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"include":"#tempfreeformat"},{"include":"#fixedSQL"},{"include":"#freeSQL"},{"include":"#precompiler"},{"include":"#ctarrays"},{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"include":"#fixedformat"},{"include":"#freeformat"}],"repository":{"comments":{"patterns":[{"name":"comment.line.rpgle.free","match":"(//).*"}]},"constants":{"patterns":[{"name":"constant.language.rpgle.indicator","match":"(?i)[*]\\b(IN)([0-9]{0,2})\\b"},{"name":"constant.language.rpgle","match":"[*][a-zA-Z][a-zA-Z0-9]*"},{"name":"constant.numeric.rpgle","match":"\\b\\d+\\.?\\d*?\\b"}]},"ctarrays":{"patterns":[{"begin":"(?=^(\\*{2})(?!free))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"string.other.rpgle.ctarray","begin":"^(\\*{2}(\\ |CTDATA))"}]}]},"fixedSQL":{"patterns":[{"begin":"(?i)(?=(^.{5}(C)(\\/EXEC)\\s+(SQL)\\b))","end":"(?i)(?=(^.{5}(C)(\\/END\\-EXEC)\\b))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(C)(\\/EXEC)\\s+(sql)\\b"},{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(C[\\+|\\/])"},{"include":"#sqlcommon"}]},{"name":"keyword.other.rpgle.sql","match":"(?i)(\\/END\\-EXEC)"}]},"fixedcomment":{"patterns":[{"name":"comment.line.rpgle.fixed","begin":"(?i)^.{5}.[*]","end":"\n"},{"name":"comment.gutter","match":"^.{5}"},{"name":"comment.block.line.rpgle.fixed","begin":"(?i)(?\u003c=((?\u003c=^.{5}((H|F|D|I|C|O|P))).{74}))","end":"\n"}]},"fixedformat":{"patterns":[{"include":"#fixedcomment"},{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"},{"name":"rpgle.fixed.h","begin":"(?i)(?\u003c=^.{5}H)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"entity.name.function.rpgle.fixed.h.keywords","match":"\\b(?i)(VALIDATE|USRPRF|TIMFMT|THREAD|TEXT|SRTSEQ|PRFDTA|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECEDIT|DEBUG|DATFMT|DATEDIT|CVTOPT|DCLOPT|CURSYM|COPYRIGHT|CCSIDCVT|CCSID|COPYNEST|BNDDIR|AUT|ALWNULL|ALTSEQ|ALLOC|ACTGRP)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.f","begin":"(?i)(?\u003c=^.{5}F)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.f.type","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{10})))(I|O|U|C)"},{"name":"constant.language.rpgle.fixed.f.designation","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{11})).{3})(P|S|R|T|F)"},{"name":"constant.language.rpgle.fixed.f.eof","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{12})).{2})E"},{"name":"constant.language.rpgle.fixed.f.addition","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{13})).{2})A"},{"name":"constant.language.rpgle.fixed.f.sequence","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{14})).{2})(A|D)"},{"name":"constant.language.rpgle.fixed.f.format","match":"(?i)(?=(?\u003c=((?\u003c=^.{5}F).{15})).{2})(E|F)"},{"name":"constant.language.rpgle.fixed.fi.recordlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F)([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.limitproc","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{5})L"},{"name":"constant.language.rpgle.fixed.fi.keyfieldlen","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F).{6})([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.f.addrtype","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{11})(A|D|F|G|K|P|T|Z)"},{"name":"constant.language.rpgle.fixed.fi.fileorg","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}F.{12})(?i)(I|T)"},{"name":"constant.language.rpgle.fixed.f.device","match":"(?i)(?\u003c=(?\u003c=(?\u003c=^.{5}F).{10}).{5}(F|E).{13})(PRINTER|DISK|WORKSTN|SPECIAL|SEQ)"},{"name":"entity.name.function.rpgle.fixed.f","match":"\\b(?i)(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.d","begin":"(?i)(?\u003c=^.{5}D)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"string.quoted.single.rpgle.fixed","begin":"'","end":"'","patterns":[{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"}]},{"name":"variable.other.rpgle.fixed.d.extended.name","match":"(?i)(?\u003c=^.{5}D).[a-zA-Z_][a-zA-Z0-9_]{1,71}[.]{3}"},{"name":"constant.language.rpgle.fixed.d.external","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{15}))E"},{"name":"constant.language.rpgle.fixed.d.dstype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{16}))(S|U)"},{"name":"constant.language.rpgle.fixed.d.dectype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{17}))(DS|PI|PR|(S\\s)|(C\\s))"},{"name":"constant.language.rpgle.fixed.d.from","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{21}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.d.to","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{26}))((\\+|\\-|\\s)(([0-9]|\\s){6}))"},{"name":"constant.language.rpgle.fixed.d.datatype","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{33}))(A|B|D|F|G|I|N|P|S|T|U|Z|\\*)"},{"name":"constant.language.rpgle.fixed.d.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}D).{34}))([0-9]|\\s){2}"},{"name":"entity.name.function.rpgle.fixed.d.keywords","match":"\\b(?i)(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|RTNPARM|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PERRCD|PACKEVEN|PACKED|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.i","begin":"(?i)(?\u003c=^.{5}I)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.i.seq","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{10}))[A-Za-z0-9]{2}"},{"name":"constant.language.rpgle.fixed.i.number","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{12}))N"},{"name":"constant.language.rpgle.fixed.i.option","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{13}))O"},{"name":"constant.language.rpgle.fixed.i.recordid","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{14}))(([0-9]{2})|((H|L)([1-9]))|(RT)|((U)([1-8]))|(\\*\\*))"},{"name":"constant.language.rpgle.fixed.i.pos1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{16}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{21}))N"},{"name":"constant.language.rpgle.fixed.i.czd1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{22}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char1","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{23}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{24}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{29}))N"},{"name":"constant.language.rpgle.fixed.i.czd2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{30}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char2","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{31}))([A-Z0-9])"},{"name":"constant.language.rpgle.fixed.i.pos3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{32}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.i.not3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{37}))N"},{"name":"constant.language.rpgle.fixed.i.czd3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{38}))(C|Z|D)"},{"name":"constant.language.rpgle.fixed.i.char3","match":"(?i)(?\u003c=((?\u003c=^.{5}I).{39}))([A-Z0-9])"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.c","begin":"(?i)(?\u003c=^.{5}C)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.c.ctrl","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{0}))((L[0-9])|LR|SR|AN)"},{"name":"constant.language.rpgle.fixed.c.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{2}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|(U[1-8])|(O[A-G])|OV))"},{"name":"keyword.other.rpgle.fixed.c.extfactor2","begin":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))((\\s{10})|CALLP|WHEN\\s{2}|RETURN|ON-ERROR|IF\\s{2}|FOR|EVALR|EVAL|ELSEIF|DOW\\s{2}|DOU\\s{2})","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)(AND|COMP|CAB|CAS|DOU|DOW|FOR|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"variable.other","match":"((?i)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*)|\\(|\\)|\\%"}]},{"include":"#rpglecommon"},{"name":"keyword.other.rpgle","match":"((?i)\\b(AND|COMP|CAB|CAS|DOU|DOW|IF|OR|WHEN)(GT|LT|EQ|NE|GE|LE|(\\s{2})))"},{"name":"keyword.other.rpgle.fixed.c.operation","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{19}))(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDUR|SUB|SQRT|SORTA|SND\\-MSG|SHTDN|SETON|SETOFF|SETLL|SETGT|SELECT|SCAN|ROLBK|RETURN|RESET|REL|REALLOC|READPE|READP|READE|READC|READ|POST|PLIST|PARM|OUT|OTHER|OR|OPEN|ON\\-EXIT|ON\\-EXCP|ON\\-ERROR|OCCUR|NEXT|MVR|MULT|MOVEL|MOVEA|MOVE|MONITOR|MLLZO|MLHZO|MHLZO|MHHZO|LOOKUP|LEAVESR|LEAVE|KLIST|KFLD|ITER|IN|IF|GOTO|FORCE|FOR|FEOD|EXTRCT|EXSR|EXFMT|EXCEPT|EVAL-CORR|EVALR|EVAL|ENDSR|ENDSL|ENDMON|ENDIF|ENDFOR|ENDDO|ENDCS|END|ELSEIF|ELSE|DUMP|DSPLY|DOW|DOU|DO|DIV|DELETE|DEFINE|DEALLOC|DATA-INTO|DATA-GEN|COMP|COMMIT|CLOSE|CLEAR|CHECKR|CHECK|CHAIN|CAT|CAS|CALLP|CALLB|CALL|CAB|BITON|BITOFF|BEGSR|AND|ALLOC|ADDUR|ADD|ACQ)"},{"name":"constant.language.rpgle.fixed.c.len","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{57}))([0-9]|\\s){5}"},{"name":"constant.language.rpgle.fixed.c.decpos","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{62}))([0-9]|\\s){2}"},{"name":"constant.language.rpgle.fixed.c.hi","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{64}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.lo","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{66}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"},{"name":"constant.language.rpgle.fixed.c.eq","match":"(?i)(?\u003c=((?\u003c=^.{5}C).{68}))(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|(U[1-8])|(O[A-G])|OV)"}]},{"name":"rpgle.fixed.o","begin":"(?i)(?\u003c=^.{5}O)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.o.type","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{10}))(H|D|T|E)"},{"name":"constant.language.rpgle.fixed.o.fetch","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{11}))(F|R)"},{"name":"constant.language.rpgle.fixed.o.n01","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{14}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n02","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{17}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.n03","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{20}))((N|\\s)(([0-9]{2})|(K[A-N])|(K[P-Y])|((H|L)[1-9])|LR|MR|RT|1P|(U[1-8])|(O[A-G])|OV))"},{"name":"constant.language.rpgle.fixed.o.spacebefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{33}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.spaceafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{36}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipbefore","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{39}))([0-9]|\\s){3}"},{"name":"constant.language.rpgle.fixed.o.skipafter","match":"(?i)(?\u003c=((?\u003c=^.{5}O).{42}))([0-9]|\\s){3}"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.p","begin":"(?i)(?\u003c=^.{5}P)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"constant.language.rpgle.fixed.p.beginend","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{17}))(B|E)"},{"name":"entity.name.function.rpgle.fixed.p.keywords","match":"(?i)(?\u003c=((?\u003c=^.{5}P).{37}))(SERIALIZE|REQPROTO|PGMINFO|EXPORT)"},{"include":"#rpglecommon"}]}]},"freeSQL":{"patterns":[{"begin":"(?i)(?=(^\\s*(EXEC)\\s+(SQL)\\b))","end":"(?=(;))","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(EXEC)\\s+(SQL)\\b"},{"include":"#sqlcommon"}]},{"name":"comment.line.rpgle.sql","match":"(?\u003c=(;))\\s*.*"},{"name":"rpgle.free.sql.end","match":";"}]},"freedefkeywords":{"patterns":[{"name":"entity.name.function.rpgle.free.definition.keywords","match":"(?i)\\b(ZONED|VARYING|VARUCS2|VARGRAPH|VARCHAR|VALUE|UNS|UCS2|TOFILE|TIMFMT|TIMESTAMP|TIME|TEMPLATE|STATIC|SQLTYPE|SAMEPOS|RTNPARM|REQPROTO|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PGMINFO|PERRCD|PACKEVEN|PACKED|OVERLOAD|OVERLAY|OPTIONS|OPDESC|OCCURS|OBJECT|NULLIND|NOOPT|LIKEREC|LIKEFILE|LIKEDS|LIKE|LEN|INZ|IND|INT|IMPORT|GRAPH|FROMFILE|FLOAT|EXTPROC|EXTPGM|EXTNAME|EXTFMT|EXTFLD|EXT|EXPORT|DTAARA|DIM|DESCEND|DATFMT|DATE|CTDATA|CONST|CLASS|CHAR|CCSID|BINDEC|BASED|ASCEND|ALTSEQ|ALT|ALIGN|ALIAS)\\b"}]},"freeformat":{"patterns":[{"name":"rpgle.free.control","begin":"(?i)\\b(?=CTL\\-OPT)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.control","match":"(?i)\\b(CTL\\-OPT)\\b"},{"name":"entity.name.function.rpgle.free.control.keywords","match":"(?i)\\b(VALIDATE|USRPRF|TRUNCNBR|TIMFMT|THREAD|TEXT|STGMDL|SRTSEQ|REQPREXP|PRFDTA|PGMINFO|OPTION|OPTIMIZE|OPENOPT|NOMAIN|MAIN|LANGID|INTPREC|INDENT|GENLVL|FTRANS|FORMSALIGN|FLTDIV|FIXNBR|EXTBININT|EXPROPTS|ENBPFRCOL|DFTNAME|DFTACTGRP|DECPREC|DECEDIT|DEBUG|DATFMT|DATEYY|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|CHARCOUNTTYPES|CHARCOUNT|CCSIDCVT|CCSID|BNDDIR|AUT|ALWNULL|ALTSEQ|ACTGRP|ALLOC)\\b"}]},{"name":"rpgle.free.file","begin":"(?i)\\b(?=DCL\\-F)\\b","end":";","patterns":[{"include":"#rpglecommon"},{"name":"storage.type.rpgle.free.file","match":"(?i)\\b(DCL\\-F)\\b"},{"name":"entity.name.function.rpgle.free.file.keywords","match":"(?i)\\b(WORKSTN|USROPN|USAGE|TIMFMT|TEMPLATE|STATIC|SPECIAL|SLN|SFILE|SEQ|SAVEIND|SAVEDS|RENAME|RECNO|RAFDATA|QUALIFIED|PRTCTL|PRINTER|PREFIX|PLIST|PGMNAME|PASS|OFLIND|MAXDEV|LIKEFILE|KEYLOC|KEYED|INFSR|INFDS|INDDS|INCLUDE|IGNORE|HANDLER|FORMOFL|FORMLEN|EXTMBR|EXTIND|EXTFILE|EXTDESC|DISK|DEVID|DATFMT|DATA|COMMIT|CHARCOUNT|BLOCK|ALIAS)\\b"}]},{"name":"storage.type.rpgle.free.definition.subr","match":"(?i)\\b(BEG|END)SR\\b"},{"name":"rpgle.free.definition.simple","begin":"(?i)(?=(\\b(DCL\\-)(S|C|PARM|SUBF)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM|SUBF)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex-single","begin":"(?i)(?=(\\b(DCL\\-)(PR|DS)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex-single.dcl","match":"(?i)\\b(DCL\\-)(PR|DS)\\b"},{"name":"storage.type.rpgle.free.definition.complex-single.end","match":"(?i)\\b(END\\-)(PR|DS)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|ENUM|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)(?\u003c![A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])(ACQ|ADDUR|ALLOC|AND|BEGSR|CALLP|CHAIN|CLEAR|CLOSE|COMMIT|DATA\\-GEN|DATA\\-INTO|DEALLOC|DELETE|DOU|DOW|DSPLY|DUMP|ELSEIF|ELSE|ENDDO|ENDFOR|ENDIF|ENDMON|ENDSL|ENDSR|EVAL\\-CORR|EVALR|EVAL|EXCEPT|EXFMT|EXSR|FEOD|FOR\\-EACH|FOR|FORCE|IF|IN|ITER|LEAVESR|LEAVE|MONITOR|NEXT|ON\\-ERROR|ON\\-EXCP|ON\\-EXIT|OPEN|OR|OTHER|OUT|POST|READC|READE|READP|READPE|READ|REL|RESET|RETURN|ROLBK|SELECT|SETGT|SETLL|SHTDN|SND\\-MSG|SORTA|TEST|UNLOCK|UPDATE|WHEN\\-IN|WHEN\\-IS|WHEN|WRITE|XML\\-INTO|XML\\-SAX)(?![-A-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ])"},{"include":"#freeidentifiers"},{"include":"#rpglecommon"}]},"freeidentifiers":{"patterns":[{"name":"variable.other.rpgle.free.definition.identifier","begin":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.operator.rpgle","match":"\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)"},{"name":"keyword.other.rpgle","match":":|\\.|\\,|((\\b(?i)(TO|BY|DOWNTO|IN|AND|OR|NOT)\\b))"},{"name":"support.function.rpgle.bif","match":"[%](?i)(YEARS|XML|XLATE|XFOOT|UPPER|UNSH|UNS|UCS2|TRIMR|TRIML|TRIM|TLOOKUPLT|TLOOKUPLE|TLOOKUPGT|TLOOKUPGE|TLOOKUP|TIMESTAMP|TIME|THIS|TARGET|SUBST|SUBDT|SUBARR|STR|STATUS|SQRT|SPLIT|SIZE|SHTDN|SECONDS|SCANRPL|SCANR|SCAN|RIGHT|REPLACE|REM|REALLOC|RANGE|PROC|PASSED|PARSER|PARMNUM|PARMS|PADDR|OPEN|OMITTED|OCCUR|NULLIND|MSG|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOVAL|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|LEFT|KDS|INTH|INT|HOURS|HIVAL|HANDLER|GRAPH|GEN|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CONCATARR|CONCAT|CHECKR|CHECK|CHARCOUNT|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.title"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.title"}}},{"name":"rpgle.free.precompiler.title","begin":"(?i)^\\s*(\\/TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.free.precompiler.title","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.title"}}},{"name":"rpgle.fixed.precompiler.include","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(INCLUDE|COPY))\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.include"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.include"}}},{"name":"rpgle.free.precompiler.include","begin":"(?i)^\\s*(\\/(INCLUDE|COPY))\\s+(\\S+)(.*)","end":"\n","beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.include"},"3":{"name":"string.other.rpgle.precompiler.include"},"4":{"name":"comment.other.rpgle.precompiler.include"}}},{"name":"rpgle.fixed.precompiler.conditional","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(ELSEIF|IF))\\b(NOT|UNDEFINED|DEFINED)\\b(.*)","end":"(?i)(?=^.{5})(H|F|D|I|C|O|P|\\s)(\\/ENDIF)","patterns":[{"include":"#fixedformat"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"},"3":{"name":"keyword.other.rpgle.fixed.precompiler.defcheck"}},"endCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.conditional"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.conditional"}}},{"name":"rpgle.free.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.control.rpgle.precompiler.if","match":"(?i)^[\\s]*\\/(ELSEIF|IF)"},{"name":"keyword.other.rpgle.precompiler.defcheck","match":"(?i)\\s*\\b(NOT|UNDEFINED|DEFINED)\\b"},{"include":"#freeformat"}]},{"name":"rpgle.precompiler.charcount","begin":"(?i)(?=(^[\\s]*\\/CHARCOUNT))","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler.charcount","match":"(?i)^[\\s]*\\/CHARCOUNT"},{"name":"keyword.other.rpgle.precompiler.charcount.mode","match":"(?i)\\s*\\b(NATURAL|STDCHARSIZE)\\b"}]},{"name":"rpgle.fixed.precompiler.misc","begin":"(?i)(?\u003c=^.{5})(H|F|D|I|C|O|P|\\s)(\\/(UNDEFINE|SPACE|FREE|EOF|END-FREE|ELSE|EJECT|DEFINE|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.other.rpgle.fixed.precompiler.misc"},"2":{"name":"keyword.control.rpgle.fixed.precompiler.misc"}}},{"name":"rpgle.free.precompiler.misc","begin":"(?i)^[\\s]*(\\/(UNDEFINE|TITLE|SPACE|INCLUDE|FREE|EOF|ENDIF|END-FREE|ELSE|EJECT|DEFINE|COPY|CHARCOUNT))\\b","end":"\n","patterns":[{"name":"keyword.control.rpgle.precompiler","match":".*"}],"beginCaptures":{"1":{"name":"keyword.control.rpgle.free.precompiler.misc"}}}]},"rpglecommon":{"patterns":[{"include":"#comments"},{"include":"#freedefkeywords"},{"include":"#sqlvariables"},{"include":"#constants"},{"include":"#precompiler"},{"include":"#keywords"},{"include":"#strings"}]},"sqlcommon":{"patterns":[{"name":"comment.line.rpgle.rpgle.sql","match":"//.*"},{"name":"constant.language.rpgle.sql.globals","match":"(?i)\\b(CLIENT_HOST|CLIENT_IPADDR|CLIENT_PORT|JOB_NAME|PACKAGE_NAME|PACKAGE_SCHEMA|PACKAGE_VERSION|PROCESS_ID|ROUTINE_SCHEMA|ROUTINE_SPECIFIC_NAME|ROUTINE_TYPE|SERVER_MODE_JOB_NAME|THREAD_ID)\\b"},{"name":"support.function.rpgle.sql","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(?=\\()"},{"name":"constant.language.rpgle.sql.schema","match":"[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*(\\.|\\/)[a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ]*"},{"name":"variable.parameter.rpgle.sql","match":"[:][a-zA-Z_#@$§ÆØÅÄ֣ѥàÐŞİ][a-zA-Z0-9_#@$§ÆØÅÄ֣ѥàÐŞİ\\.]*"},{"name":"keyword.operator.rpgle.sql.reserved","match":"(?i)\\b(ZONE|YES|YEARS|YEAR|XSROBJECT|XSLTRANSFORM|XMLVALIDATE|XMLTEXT|XMLTABLE|XMLSERIALIZE|XMLROW|XMLPI|XMLPARSE|XMLNAMESPACES|XMLGROUP|XMLFOREST|XMLELEMENT|XMLDOCUMENT|XMLCONCAT|XMLCOMMENT|XMLCAST|XMLATTRIBUTES|XMLAGG|WRKSTNNAME|WRITE|WRAPPER|WRAPPED|WITHOUT|WITHIN|WITH|WHILE|WHERE|WHENEVER|WHEN|WAIT|VOLATILE|VIEW|VERSION|VCAT|VARIANT|VARIABLE|VALUES|VALUE|USING|USERID|USER|USE|USAGE|URI|UPDATING|UPDATE|UNTIL|UNNEST|UNIT|UNIQUE|UNION|UNDO|TYPE|TRUNCATE|TRIM_ARRAY|TRIM|TRIGGER|TRANSFER|TRANSACTION|TO|TIMESTAMP|TIME|THREADSAFE|THEN|TABLESPACES|TABLESPACE|TABLE|SYSTEM_USER|SYNONYM|SUMMARY|SUBSTRING|STOGROUP|STATIC|STATEMENT|STARTING|START|STACKED|SQLID|SQL|SPECIFIC|SOURCE|SOME|SNAN|SKIP|SIMPLE|SIGNAL|SET|SESSION_USER|SESSION|SEQUENCE|SENSITIVE|SELECT|SECURED|SECQTY|SECONDS|SECOND|SEARCH|SCROLL|SCRATCHPAD|SCHEMA|SBCS|SAVEPOINT|RUN|RRN|ROW_NUMBER|ROWS|ROWNUMBER|ROW|ROUTINE|ROLLUP|ROLLBACK|RIGHT|RID|REVOKE|RETURNS|RETURNING|RETURN|RESULT_SET_LOCATOR|RESULT|RESTART|RESIGNAL|RESET|REPEAT|RENAME|RELEASE|REGEXP_LIKE|REFRESH|REFERENCING|REFERENCES|RECOVERY|READS|READ|RCDFMT|RANK|RANGE|QUERY|PROGRAMID|PROGRAM|PROCEDURE|PRIVILEGES|PRIQTY|PRIOR|PRIMARY|PREVVAL|PREPARE|POSITION|PLAN|PIPE|PIECESIZE|PERMISSION|PCTFREE|PATH|PASSWORD|PASSING|PARTITIONS|PARTITIONING|PARTITIONED|PARTITION|PART|PARAMETER|PAGESIZE|PAGE|PADDED|PACKAGE|OVERRIDING|OVERLAY|OVER|OUTER|OUT|ORGANIZE|ORDINALITY|ORDER|OR|OPTION|OPTIMIZE|OPEN|ONLY|ON|OMIT|OLD_TABLE|OLD|OFFSET|OF|OBID|NVARCHAR|NULLS|NULL|NOT|NORMALIZED|NOORDER|NONE|NOMINVALUE|NOMAXVALUE|NODENUMBER|NODENAME|NOCYCLE|NOCACHE|NO|NEXTVAL|NEW_TABLE|NEW|NESTED|NCLOB|NCHAR|NATIONAL|NAN|NAMESPACE|MONTHS|MONTH|MODIFIES|MODE|MIXED|MINVALUE|MINUTES|MINUTE|MINPCTUSED|MICROSECONDS|MICROSECOND|MERGE|MAXVALUE|MATERIALIZED|MATCHED|MASK|MAINTAINED|LOOP|LONG|LOGGED|LOG|LOCKSIZE|LOCK|LOCATOR|LOCATION|LOCALTIMESTAMP|LOCALTIME|LOCALDATE|LOCAL|LISTAGG|LINKTYPE|LIMIT|LIKE|LEVEL2|LEFT|LEAVE|LATERAL|LANGUAGE|LABEL|KEY|KEEP|JSON_VALUE|JSON_TABLE|JSON_QUERY|JSON_OBJECTAGG|JSON_OBJECT|JSON_EXISTS|JSON_ARRAYAGG|JSON_ARRAY|JOIN|JAVA|ITERATE|ISOLATION|IS|INTO|INTERSECT|INTEGRITY|INSERTING|INSERT|INSENSITIVE|INOUT|INNER|INLINE|INHERIT|INFINITY|INF|INDICATOR|INDEXBP|INDEX|INCREMENT|INCLUSIVE|INCLUDING|INCLUDE|IMPLICITLY|IMMEDIATE|IGNORE|IF|IDENTITY|ID|HOURS|HOUR|HOLD|HINT|HAVING|HASHED_VALUE|HASH|HANDLER|GROUP|GRAPHIC|GRANT|GOTO|GO|GLOBAL|GET|GENERATED|GENERAL|GBPCACHE|FUNCTION|FULL|FROM|FREEPAGE|FREE|FORMAT|FOREIGN|FOR|FINAL|FILE|FIELDPROC|FETCH|FENCED|EXTRACT|EXTERNAL|EXTEND|EXIT|EXISTS|EXECUTE|EXCLUSIVE|EXCLUDING|EXCEPTION|EXCEPT|EVERY|ESCAPE|ERROR|ENFORCED|ENDING|END|ENCRYPTION|ENCODING|ENABLE|EMPTY|ELSEIF|ELSE|EACH|DYNAMIC|DROP|DOUBLE|DOCUMENT|DO|DISTINCT|DISCONNECT|DISALLOW|DISABLE|DIAGNOSTICS|DETERMINISTIC|DESCRIPTOR|DESCRIBE|DESC|DENSE_RANK|DENSERANK|DELETING|DELETE|DEFINITION|DEFINE|DEFER|DEFAULTS|DEFAULT|DECLARE|DEALLOCATE|DEACTIVATE|DBPARTITIONNUM|DBPARTITIONNAME|DBINFO|DB2SQL|DB2GENRL|DB2GENERAL|DAYS|DAY|DATE|DATAPARTITIONNUM|DATAPARTITIONNAME|DATABASE|DATA|CYCLE|CURSOR|CURRENT_USER|CURRENT_TIMEZONE|CURRENT_TIMESTAMP|CURRENT_TIME|CURRENT_SERVER|CURRENT_SCHEMA|CURRENT_PATH|CURRENT_DATE|CURRENT|CUBE|CROSS|CREATEIN|CREATE|COUNT_BIG|COUNT|COPY|CONTINUE|CONTENT|CONTAINS|CONSTRAINT|CONSTANT|CONNECT_BY_ROOT|CONNECTION|CONNECT|CONDITION|CONCURRENT|CONCAT|COMPRESS|COMPACT|COMMIT|COMMENT|COLUMN|COLLECTION|COLLECT|CLUSTER|CLOSE|CL|CHECK|CHARACTER|CHAR|CCSID|CAST|CASE|CARDINALITY|CALLED|CALL|CACHE|BY|BUFFERPOOL|BIT|BIND|BINARY|BETWEEN|BEGIN|BEFORE|AUTONOMOUS|AUTHORIZATION|ATTRIBUTES|ATOMIC|AT|ASSOCIATE|ASENSITIVE|ASC|AS|ARRAY_AGG|ARRAY|APPLNAME|APPEND|ANY|AND|ALTER|ALLOW|ALLOCATE|ALL|ALIAS|ADD|ACTIVATE|ACTION|ACCTNG|ACCORDING|ABSENT)\\b"},{"include":"source.sql"}]},"sqlvariables":{"patterns":[{"name":"variable.language.rpgle.sql","match":"(?i)\\b(SQLWRN|SQLWNA|SQLWN9|SQLWN8|SQLWN7|SQLWN6|SQLWN5|SQLWN4|SQLWN3|SQLWN2|SQLWN1|SQLWN0|SQLWARN|SQLSTT|SQLSTATE|SQLCODE|SQLCOD|SQLERRP|SQLERRML|SQLERRMC|SQLERRD|SQLERR|SQLERP|SQLERM|SQLERL|SQLER6|SQLER5|SQLER4|SQLER3|SQLER2|SQLER1)\\b"}]},"strings":{"patterns":[{"name":"string.other.rpgle.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.rpgle","begin":"'","end":"'"}]},"tempfreeformat":{"patterns":[{"begin":"(?i)(?=((\\/FREE\\b)))","end":"(?i)(?=((\\/END-FREE\\b)))","patterns":[{"name":"keyword.control.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.control.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
@@ -1 +1 @@
1
- {"name":"Shell Script","scopeName":"source.shell","patterns":[{"include":"#comment"},{"include":"#pipeline"},{"include":"#list"},{"include":"#compound-command"},{"include":"#loop"},{"include":"#string"},{"include":"#function-definition"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#keyword"},{"include":"#support"}],"repository":{"case-clause":{"patterns":[{"name":"meta.scope.case-clause.shell","begin":"(?=\\S)","end":";;","patterns":[{"name":"meta.scope.case-pattern.shell","begin":"\\(|(?=\\S)","end":"\\)","patterns":[{"name":"punctuation.separator.pipe-sign.shell","match":"\\|"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#pathname"}],"beginCaptures":{"0":{"name":"punctuation.definition.case-pattern.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.case-pattern.shell"}}},{"name":"meta.scope.case-clause-body.shell","begin":"(?\u003c=\\))","end":"(?=;;)","patterns":[{"include":"$self"}]}],"endCaptures":{"0":{"name":"punctuation.terminator.case-clause.shell"}}}]},"comment":{"begin":"(^\\s+)?(?\u003c=^|\\W)(?\u003c!-)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shebang.shell","begin":"#!","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.shebang.shell"}}},{"name":"comment.line.number-sign.shell","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},"compound-command":{"patterns":[{"name":"meta.scope.logical-expression.shell","begin":"\\[{1,2}","end":"\\]{1,2}","patterns":[{"include":"#logical-expression"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}}},{"name":"string.other.math.shell","begin":"\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.scope.subshell.shell","begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.subshell.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.subshell.shell"}}},{"name":"meta.scope.group.shell","begin":"(?\u003c=\\s|^){(?=\\s|$)","end":"(?\u003c=^|;)\\s*(})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.shell"}},"endCaptures":{"1":{"name":"punctuation.definition.group.shell"}}}]},"function-definition":{"patterns":[{"name":"meta.function.shell","begin":"(?\u003c=^|;|\u0026|\\s)(function)\\s+([^\\s\\\\]+)(?:\\s*(\\(\\)))?","end":";|\u0026|$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.function.shell"},"2":{"name":"entity.name.function.shell"},"3":{"name":"punctuation.definition.arguments.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.shell"}}},{"name":"meta.function.shell","begin":"(?\u003c=^|;|\u0026|\\s)([^\\s\\\\=]+)\\s*(\\(\\))","end":";|\u0026|$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"entity.name.function.shell"},"2":{"name":"punctuation.definition.arguments.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.shell"}}}]},"heredoc":{"patterns":[{"name":"string.unquoted.heredoc.no-indent.ruby.shell","contentName":"source.ruby.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(RUBY)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(RUBY)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.ruby.shell","contentName":"source.ruby.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(RUBY)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(RUBY)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.python.shell","contentName":"source.python.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(PYTHON)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(PYTHON)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.python"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.python.shell","contentName":"source.python.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(PYTHON)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(PYTHON)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.python"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.applescript.shell","contentName":"source.applescript.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(APPLESCRIPT)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(APPLESCRIPT)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.applescript"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.applescript.shell","contentName":"source.applescript.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(APPLESCRIPT)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(APPLESCRIPT)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.applescript"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.html.shell","contentName":"text.html.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(HTML)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(HTML)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.html.basic"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.html.shell","contentName":"text.html.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(HTML)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(HTML)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.html.basic"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.markdown.shell","contentName":"text.html.markdown.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(MARKDOWN)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(MARKDOWN)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.markdown.shell","contentName":"text.html.markdown.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(MARKDOWN)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(MARKDOWN)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.gfm"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.textile.shell","contentName":"text.html.textile.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(TEXTILE)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(TEXTILE)(?=\\s|;|\u0026|$)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.textile.shell","contentName":"text.html.textile.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(TEXTILE)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(TEXTILE)(?=\\s|;|\u0026|$)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.shell.shell","contentName":"source.shell.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(SHELL)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(\\3)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.shell"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.shell.shell","contentName":"source.shell.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(SHELL)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(\\3)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.shell"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.shell","begin":"(\u003c\u003c)-\\s*(\"|')\\s*\\\\?([^;\u0026\u003c\\s]+)\\2","end":"^\\t*(\\3)(?=\\s|;|\u0026|$)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.shell","begin":"(\u003c\u003c)\\s*(\"|')\\s*\\\\?([^;\u0026\u003c\\s]+)\\2","end":"^(\\3)(?=\\s|;|\u0026|$)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.expanded.no-indent.shell","begin":"(\u003c\u003c)-\\s*\\\\?([^;\u0026\u003c\\s]+)","end":"^\\t*(\\2)(?=\\s|;|\u0026|$)","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.expanded.shell","begin":"(\u003c\u003c)\\s*\\\\?([^;\u0026\u003c\\s]+)","end":"^(\\2)(?=\\s|;|\u0026|$)","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}}]},"herestring":{"patterns":[{"name":"meta.herestring.shell","contentName":"string.quoted.single.shell","begin":"(\u003c\u003c\u003c)\\s*(('))","end":"(')","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.single.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"string.quoted.single.shell"},"1":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.herestring.shell","contentName":"string.quoted.double.shell","begin":"(\u003c\u003c\u003c)\\s*((\"))","end":"(\")","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.double.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"string.quoted.double.shell"},"1":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.herestring.shell","match":"(\u003c\u003c\u003c)\\s*(([^\\s)\\\\]|\\\\.)+)","captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.unquoted.herestring.shell","patterns":[{"include":"$self"}]}}}]},"interpolation":{"patterns":[{"name":"string.other.math.shell","begin":"\\$\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.backtick.shell","begin":"`","end":"`","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[`\\\\$]"},{"begin":"(?\u003c=\\W)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shell","begin":"#","end":"(?=`)","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.dollar.shell","begin":"\\$\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"keyword":{"patterns":[{"name":"keyword.control.shell","match":"(?\u003c=^|;|\u0026|\\s)(then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)(?=\\s|;|\u0026|$)"},{"name":"storage.modifier.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|\u0026|$)"}]},"list":{"patterns":[{"name":"keyword.operator.list.shell","match":";|\u0026\u0026|\u0026|\\|\\|"}]},"logical-expression":{"patterns":[{"name":"keyword.operator.logical.shell","match":"=[=~]?|!=?|\u003c|\u003e|\u0026\u0026|\\|\\|"},{"name":"keyword.operator.logical.shell","match":"(?\u003c!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])"}]},"loop":{"patterns":[{"name":"meta.scope.for-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(for)\\s+(?=\\({2})","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.for-in-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell","patterns":[{"include":"#string"}]},"3":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.while-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(while|until)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.select-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)(done)(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell"}},"endCaptures":{"1":{"name":"keyword.control.shell"}}},{"name":"meta.scope.case-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)case(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)esac(?=\\s|;|\u0026|$)","patterns":[{"name":"meta.scope.case-body.shell","begin":"(?\u003c=^|;|\u0026|\\s)in(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)(?=esac(\\s|;|\u0026|$))","patterns":[{"include":"#comment"},{"include":"#case-clause"},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.if-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)if(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)fi(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}}]},"math":{"patterns":[{"include":"#variable"},{"name":"keyword.operator.arithmetic.shell","match":"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|\u003c[\u003c=]?|\u003e[\u003e=]?|==|!=|^|\\|{1,2}|\u0026{1,2}|\\?|\\:|,|=|[*/%+\\-\u0026^|]=|\u003c\u003c=|\u003e\u003e="},{"name":"constant.numeric.hex.shell","match":"0[xX][0-9A-Fa-f]+"},{"name":"constant.numeric.octal.shell","match":"0\\d+"},{"name":"constant.numeric.other.shell","match":"\\d{1,2}#[0-9a-zA-Z@_]+"},{"name":"constant.numeric.integer.shell","match":"\\d+"}]},"pathname":{"patterns":[{"name":"keyword.operator.tilde.shell","match":"(?\u003c=\\s|:|=|^)~"},{"name":"keyword.operator.glob.shell","match":"\\*|\\?"},{"name":"meta.structure.extglob.shell","begin":"([?*+@!])(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.extglob.shell"},"2":{"name":"punctuation.definition.extglob.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.extglob.shell"}}}]},"pipeline":{"patterns":[{"name":"keyword.other.shell","match":"(?\u003c=^|;|\u0026|\\s)(time)(?=\\s|;|\u0026|$)"},{"name":"keyword.operator.pipe.shell","match":"[|!]"}]},"redirection":{"patterns":[{"name":"string.interpolated.process-substitution.shell","begin":"[\u003e\u003c]\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"keyword.operator.redirect.shell","match":"(?\u003c![\u003c\u003e])(\u0026\u003e|\\d*\u003e\u0026\\d*|\\d*(\u003e\u003e|\u003e|\u003c)|\\d*\u003c\u0026|\\d*\u003c\u003e)(?![\u003c\u003e])"}]},"string":{"patterns":[{"name":"constant.character.escape.shell","match":"\\\\."},{"name":"string.quoted.single.shell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.double.shell","begin":"\\$?\"","end":"\"","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\"\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.single.dollar.shell","begin":"\\$'","end":"'","patterns":[{"name":"constant.character.escape.ansi-c.shell","match":"\\\\(a|b|e|f|n|r|t|v|\\\\|')"},{"name":"constant.character.escape.octal.shell","match":"\\\\[0-9]{3}"},{"name":"constant.character.escape.hex.shell","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.control-char.shell","match":"\\\\c."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"support":{"patterns":[{"name":"support.function.builtin.shell","match":"(?\u003c=^|;|\u0026|\\s)(?::|\\.)(?=\\s|;|\u0026|$)"},{"name":"support.function.builtin.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)(?=\\s|;|\u0026|$)"}]},"variable":{"patterns":[{"name":"variable.other.normal.shell","match":"(\\$)[a-zA-Z_][a-zA-Z0-9_]*","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.special.shell","match":"(\\$)[-*@#?$!0_]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.positional.shell","match":"(\\$)[1-9]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.bracket.shell","begin":"\\${","end":"}","patterns":[{"name":"keyword.operator.expansion.shell","match":"!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/"},{"match":"(\\[)([^\\]]+)(\\])","captures":{"1":{"name":"punctuation.section.array.shell"},"3":{"name":"punctuation.section.array.shell"}}},{"include":"#variable"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.variable.shell"}}}]}}}
1
+ {"name":"Shell Script","scopeName":"source.shell","patterns":[{"include":"#comment"},{"include":"#pipeline"},{"include":"#list"},{"include":"#compound-command"},{"include":"#loop"},{"include":"#string"},{"include":"#function-definition"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#heredoc"},{"include":"#herestring"},{"include":"#redirection"},{"include":"#pathname"},{"include":"#keyword"},{"include":"#support"}],"repository":{"case-clause":{"patterns":[{"name":"meta.scope.case-clause.shell","begin":"(?=\\S)","end":";;","patterns":[{"name":"meta.scope.case-pattern.shell","begin":"\\(|(?=\\S)","end":"\\)","patterns":[{"name":"punctuation.separator.pipe-sign.shell","match":"\\|"},{"include":"#string"},{"include":"#variable"},{"include":"#interpolation"},{"include":"#pathname"}],"beginCaptures":{"0":{"name":"punctuation.definition.case-pattern.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.case-pattern.shell"}}},{"name":"meta.scope.case-clause-body.shell","begin":"(?\u003c=\\))","end":"(?=;;)","patterns":[{"include":"$self"}]}],"endCaptures":{"0":{"name":"punctuation.terminator.case-clause.shell"}}}]},"comment":{"begin":"(^\\s+)?(?\u003c=^|\\W)(?\u003c!-)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shebang.shell","begin":"#!","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.shebang.shell"}}},{"name":"comment.line.number-sign.shell","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},"compound-command":{"patterns":[{"name":"meta.scope.logical-expression.shell","begin":"\\[{1,2}","end":"\\]{1,2}","patterns":[{"include":"#logical-expression"},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.logical-expression.shell"}}},{"name":"string.other.math.shell","begin":"\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.scope.subshell.shell","begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.subshell.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.subshell.shell"}}},{"name":"meta.scope.group.shell","begin":"(?\u003c=\\s|^){(?=\\s|$)","end":"(?\u003c=^|;)\\s*(})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.shell"}},"endCaptures":{"1":{"name":"punctuation.definition.group.shell"}}}]},"function-definition":{"patterns":[{"name":"meta.function.shell","begin":"(?\u003c=^|;|\u0026|\\s)(function)\\s+([^\\s\\\\]+)(?:\\s*(\\(\\)))?","end":";|\u0026|$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"storage.type.function.shell"},"2":{"name":"entity.name.function.shell"},"3":{"name":"punctuation.definition.arguments.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.shell"}}},{"name":"meta.function.shell","begin":"(?\u003c=^|;|\u0026|\\s)([^\\s\\\\=]+)\\s*(\\(\\))","end":";|\u0026|$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"entity.name.function.shell"},"2":{"name":"punctuation.definition.arguments.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.function.shell"}}}]},"heredoc":{"patterns":[{"name":"string.unquoted.heredoc.no-indent.ruby.shell","contentName":"source.ruby.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(RUBY)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(RUBY)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.ruby.shell","contentName":"source.ruby.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(RUBY)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(RUBY)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.ruby"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.python.shell","contentName":"source.python.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(PYTHON)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(PYTHON)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.python"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.python.shell","contentName":"source.python.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(PYTHON)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(PYTHON)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.python"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.applescript.shell","contentName":"source.applescript.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(APPLESCRIPT)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(APPLESCRIPT)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.applescript"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.applescript.shell","contentName":"source.applescript.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(APPLESCRIPT)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(APPLESCRIPT)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.applescript"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.html.shell","contentName":"text.html.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(HTML)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(HTML)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.html.basic"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.html.shell","contentName":"text.html.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(HTML)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(HTML)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.html.basic"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.markdown.shell","contentName":"text.html.markdown.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(MARKDOWN)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(MARKDOWN)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.md"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.markdown.shell","contentName":"text.html.markdown.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(MARKDOWN)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(MARKDOWN)(?=\\s|;|\u0026|$)","patterns":[{"include":"text.md"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.textile.shell","contentName":"text.html.textile.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(TEXTILE)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(TEXTILE)(?=\\s|;|\u0026|$)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.textile.shell","contentName":"text.html.textile.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(TEXTILE)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(TEXTILE)(?=\\s|;|\u0026|$)","patterns":[{}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.shell.shell","contentName":"source.shell.embedded.shell","begin":"(\u003c\u003c)-\\s*(\"|'|)\\s*(SHELL)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^\\t*(\\3)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.shell"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.shell.shell","contentName":"source.shell.embedded.shell","begin":"(\u003c\u003c)\\s*(\"|'|)\\s*(SHELL)(?=\\s|;|\u0026|\u003c|\"|')\\2","end":"^(\\3)(?=\\s|;|\u0026|$)","patterns":[{"include":"source.shell"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.no-indent.shell","begin":"(\u003c\u003c)-\\s*(\"|')\\s*\\\\?([^;\u0026\u003c\\s]+)\\2","end":"^\\t*(\\3)(?=\\s|;|\u0026|$)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.shell","begin":"(\u003c\u003c)\\s*(\"|')\\s*\\\\?([^;\u0026\u003c\\s]+)\\2","end":"^(\\3)(?=\\s|;|\u0026|$)","beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"3":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.expanded.no-indent.shell","begin":"(\u003c\u003c)-\\s*\\\\?([^;\u0026\u003c\\s]+)","end":"^\\t*(\\2)(?=\\s|;|\u0026|$)","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}},{"name":"string.unquoted.heredoc.expanded.shell","begin":"(\u003c\u003c)\\s*\\\\?([^;\u0026\u003c\\s]+)","end":"^(\\2)(?=\\s|;|\u0026|$)","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"1":{"name":"keyword.operator.heredoc.shell"},"2":{"name":"keyword.control.heredoc-token.shell"}},"endCaptures":{"1":{"name":"keyword.control.heredoc-token.shell"}}}]},"herestring":{"patterns":[{"name":"meta.herestring.shell","contentName":"string.quoted.single.shell","begin":"(\u003c\u003c\u003c)\\s*(('))","end":"(')","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.single.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"string.quoted.single.shell"},"1":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.herestring.shell","contentName":"string.quoted.double.shell","begin":"(\u003c\u003c\u003c)\\s*((\"))","end":"(\")","beginCaptures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.quoted.double.shell"},"3":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"string.quoted.double.shell"},"1":{"name":"punctuation.definition.string.end.shell"}}},{"name":"meta.herestring.shell","match":"(\u003c\u003c\u003c)\\s*(([^\\s)\\\\]|\\\\.)+)","captures":{"1":{"name":"keyword.operator.herestring.shell"},"2":{"name":"string.unquoted.herestring.shell","patterns":[{"include":"$self"}]}}}]},"interpolation":{"patterns":[{"name":"string.other.math.shell","begin":"\\$\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.backtick.shell","begin":"`","end":"`","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[`\\\\$]"},{"begin":"(?\u003c=\\W)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shell","begin":"#","end":"(?=`)","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.dollar.shell","begin":"\\$\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"keyword":{"patterns":[{"name":"keyword.control.shell","match":"(?\u003c=^|;|\u0026|\\s)(then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)(?=\\s|;|\u0026|$)"},{"name":"storage.modifier.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|\u0026|$)"}]},"list":{"patterns":[{"name":"keyword.operator.list.shell","match":";|\u0026\u0026|\u0026|\\|\\|"}]},"logical-expression":{"patterns":[{"name":"keyword.operator.logical.shell","match":"=[=~]?|!=?|\u003c|\u003e|\u0026\u0026|\\|\\|"},{"name":"keyword.operator.logical.shell","match":"(?\u003c!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])"}]},"loop":{"patterns":[{"name":"meta.scope.for-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(for)\\s+(?=\\({2})","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.for-in-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell","patterns":[{"include":"#string"}]},"3":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.while-loop.shell","begin":"(?\u003c=^|;|\u0026|\\s)(while|until)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)done(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.select-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)(done)(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.shell"},"2":{"name":"variable.other.loop.shell"}},"endCaptures":{"1":{"name":"keyword.control.shell"}}},{"name":"meta.scope.case-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)case(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)esac(?=\\s|;|\u0026|$)","patterns":[{"name":"meta.scope.case-body.shell","begin":"(?\u003c=^|;|\u0026|\\s)in(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)(?=esac(\\s|;|\u0026|$))","patterns":[{"include":"#comment"},{"include":"#case-clause"},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}},{"name":"meta.scope.if-block.shell","begin":"(?\u003c=^|;|\u0026|\\s)if(?=\\s|;|\u0026|$)","end":"(?\u003c=^|;|\u0026|\\s)fi(?=\\s|;|\u0026|$)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.shell"}},"endCaptures":{"0":{"name":"keyword.control.shell"}}}]},"math":{"patterns":[{"include":"#variable"},{"name":"keyword.operator.arithmetic.shell","match":"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|\u003c[\u003c=]?|\u003e[\u003e=]?|==|!=|^|\\|{1,2}|\u0026{1,2}|\\?|\\:|,|=|[*/%+\\-\u0026^|]=|\u003c\u003c=|\u003e\u003e="},{"name":"constant.numeric.hex.shell","match":"0[xX][0-9A-Fa-f]+"},{"name":"constant.numeric.octal.shell","match":"0\\d+"},{"name":"constant.numeric.other.shell","match":"\\d{1,2}#[0-9a-zA-Z@_]+"},{"name":"constant.numeric.integer.shell","match":"\\d+"}]},"pathname":{"patterns":[{"name":"keyword.operator.tilde.shell","match":"(?\u003c=\\s|:|=|^)~"},{"name":"keyword.operator.glob.shell","match":"\\*|\\?"},{"name":"meta.structure.extglob.shell","begin":"([?*+@!])(\\()","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.operator.extglob.shell"},"2":{"name":"punctuation.definition.extglob.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.extglob.shell"}}}]},"pipeline":{"patterns":[{"name":"keyword.other.shell","match":"(?\u003c=^|;|\u0026|\\s)(time)(?=\\s|;|\u0026|$)"},{"name":"keyword.operator.pipe.shell","match":"[|!]"}]},"redirection":{"patterns":[{"name":"string.interpolated.process-substitution.shell","begin":"[\u003e\u003c]\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"keyword.operator.redirect.shell","match":"(?\u003c![\u003c\u003e])(\u0026\u003e|\\d*\u003e\u0026\\d*|\\d*(\u003e\u003e|\u003e|\u003c)|\\d*\u003c\u0026|\\d*\u003c\u003e)(?![\u003c\u003e])"}]},"string":{"patterns":[{"name":"constant.character.escape.shell","match":"\\\\."},{"name":"string.quoted.single.shell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.double.shell","begin":"\\$?\"","end":"\"","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\"\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.single.dollar.shell","begin":"\\$'","end":"'","patterns":[{"name":"constant.character.escape.ansi-c.shell","match":"\\\\(a|b|e|f|n|r|t|v|\\\\|')"},{"name":"constant.character.escape.octal.shell","match":"\\\\[0-9]{3}"},{"name":"constant.character.escape.hex.shell","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.control-char.shell","match":"\\\\c."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"support":{"patterns":[{"name":"support.function.builtin.shell","match":"(?\u003c=^|;|\u0026|\\s)(?::|\\.)(?=\\s|;|\u0026|$)"},{"name":"support.function.builtin.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)(?=\\s|;|\u0026|$)"}]},"variable":{"patterns":[{"name":"variable.other.normal.shell","match":"(\\$)[a-zA-Z_][a-zA-Z0-9_]*","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.special.shell","match":"(\\$)[-*@#?$!0_]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.positional.shell","match":"(\\$)[1-9]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.bracket.shell","begin":"\\${","end":"}","patterns":[{"name":"keyword.operator.expansion.shell","match":"!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/"},{"match":"(\\[)([^\\]]+)(\\])","captures":{"1":{"name":"punctuation.section.array.shell"},"3":{"name":"punctuation.section.array.shell"}}},{"include":"#variable"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.variable.shell"}}}]}}}
@@ -1 +1 @@
1
- {"name":"Singularity","scopeName":"source.singularity","patterns":[{"include":"#interpolation"},{"include":"#keyword"},{"include":"#string"},{"include":"#variable"},{"match":"^\\s*\\b(?i:(bootstrap))\\b:.*?(.+?\\b(as)\\b.*)?","captures":{"1":{"name":"keyword.other.special-method.singularity"},"3":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*\\b(?i:(from|registry|namespace))\\b:.*?(.+?\\b(as)\\b.*)?","captures":{"1":{"name":"keyword.other.special-method.singularity"},"3":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*\\b(?i:(stage|osversion|mirrorurl|include))\\b:","captures":{"1":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*(%)\\b(post|setup|environment|help|labels|test|runscript|files|startscript)\\b","captures":{"1":{"name":"keyword.control.singularity"},"2":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*(%)\\b(apprun|applabels|appinstall|appenv|apphelp|appfiles)\\b","captures":{"1":{"name":"keyword.control.singularity"},"2":{"name":"keyword.other.special-method.singularity"}}},{"name":"string.quoted.single.singularity","begin":"'","end":"'","patterns":[{"name":"constant.character.escaped.singularity","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.singularity"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.singularity"}}},{"name":"string.quoted.double.singularity","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escaped.singularity","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.singularity"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.singularity"}}},{"match":"^(\\s*)((#).*$\\n?)","captures":{"1":{"name":"punctuation.whitespace.comment.leading.singularity"},"2":{"name":"comment.line.number-sign.singularity"},"3":{"name":"punctuation.definition.comment.singularity"}}}],"repository":{"interpolation":{"patterns":[{"name":"string.other.math.shell","begin":"\\$\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.backtick.shell","begin":"`","end":"`","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[`\\\\$]"},{"begin":"(?\u003c=\\W)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shell","begin":"#","end":"(?=`)","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.dollar.shell","begin":"\\$\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"keyword":{"patterns":[{"name":"keyword.control.shell","match":"(?\u003c=^|;|\u0026|\\s)(if|then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)(?=\\s|;|\u0026|$)"},{"name":"storage.modifier.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|\u0026|$)"}]},"string":{"patterns":[{"name":"constant.character.escape.shell","match":"\\\\."},{"name":"string.quoted.single.shell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.double.shell","begin":"\\$?\"","end":"\"","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\"\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.single.dollar.shell","begin":"\\$'","end":"'","patterns":[{"name":"constant.character.escape.ansi-c.shell","match":"\\\\(a|b|e|f|n|r|t|v|\\\\|')"},{"name":"constant.character.escape.octal.shell","match":"\\\\[0-9]{3}"},{"name":"constant.character.escape.hex.shell","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.control-char.shell","match":"\\\\c."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"variable":{"patterns":[{"name":"variable.other.normal.shell","match":"(\\$)[a-zA-Z_][a-zA-Z0-9_]*","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.special.shell","match":"(\\$)[-*@#?$!0_]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.positional.shell","match":"(\\$)[1-9]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.bracket.shell","begin":"\\${","end":"}","patterns":[{"name":"keyword.operator.expansion.shell","match":"!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/"},{"match":"(\\[)([^\\]]+)(\\])","captures":{"1":{"name":"punctuation.section.array.shell"},"3":{"name":"punctuation.section.array.shell"}}},{"include":"#variable"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.variable.shell"}}}]}}}
1
+ {"name":"Singularity","scopeName":"source.singularity","patterns":[{"include":"#interpolation"},{"include":"#keyword"},{"include":"#string"},{"include":"#variable"},{"match":"^\\s*\\b(?i:(bootstrap))\\b:.*?(.+?\\b(as)\\b.*)?","captures":{"1":{"name":"keyword.other.special-method.singularity"},"3":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*\\b(?i:(from|registry|namespace))\\b:.*?(.+?\\b(as)\\b.*)?","captures":{"1":{"name":"keyword.other.special-method.singularity"},"3":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*\\b(?i:(stage|osversion|mirrorurl|include))\\b:","captures":{"1":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*(%)\\b(arguments|post|setup|environment|help|labels|test|runscript|files|startscript)\\b","captures":{"1":{"name":"keyword.control.singularity"},"2":{"name":"keyword.other.special-method.singularity"}}},{"match":"^\\s*(%)\\b(apprun|applabels|appinstall|appenv|apphelp|appfiles)\\b","captures":{"1":{"name":"keyword.control.singularity"},"2":{"name":"keyword.other.special-method.singularity"}}},{"name":"string.quoted.single.singularity","begin":"'","end":"'","patterns":[{"name":"constant.character.escaped.singularity","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.singularity"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.singularity"}}},{"name":"string.quoted.double.singularity","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escaped.singularity","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.singularity"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.singularity"}}},{"match":"^(\\s*)((#).*$\\n?)","captures":{"1":{"name":"punctuation.whitespace.comment.leading.singularity"},"2":{"name":"comment.line.number-sign.singularity"},"3":{"name":"punctuation.definition.comment.singularity"}}}],"repository":{"interpolation":{"patterns":[{"name":"string.other.math.shell","begin":"\\$\\({2}","end":"\\){2}","patterns":[{"include":"#math"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.backtick.shell","begin":"`","end":"`","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[`\\\\$]"},{"begin":"(?\u003c=\\W)(?=#)(?!#{)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.shell","begin":"#","end":"(?=`)","beginCaptures":{"0":{"name":"punctuation.definition.comment.shell"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.shell"}}},{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.interpolated.dollar.shell","begin":"\\$\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"keyword":{"patterns":[{"name":"keyword.control.shell","match":"(?\u003c=^|;|\u0026|\\s)(if|then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)(?=\\s|;|\u0026|$)"},{"name":"storage.modifier.shell","match":"(?\u003c=^|;|\u0026|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|\u0026|$)"}]},"string":{"patterns":[{"name":"constant.character.escape.shell","match":"\\\\."},{"name":"string.quoted.single.shell","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.double.shell","begin":"\\$?\"","end":"\"","patterns":[{"name":"constant.character.escape.shell","match":"\\\\[\\$`\"\\\\\\n]"},{"include":"#variable"},{"include":"#interpolation"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}},{"name":"string.quoted.single.dollar.shell","begin":"\\$'","end":"'","patterns":[{"name":"constant.character.escape.ansi-c.shell","match":"\\\\(a|b|e|f|n|r|t|v|\\\\|')"},{"name":"constant.character.escape.octal.shell","match":"\\\\[0-9]{3}"},{"name":"constant.character.escape.hex.shell","match":"\\\\x[0-9a-fA-F]{2}"},{"name":"constant.character.escape.control-char.shell","match":"\\\\c."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.shell"}}}]},"variable":{"patterns":[{"name":"variable.other.normal.shell","match":"(\\$)[a-zA-Z_][a-zA-Z0-9_]*","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.special.shell","match":"(\\$)[-*@#?$!0_]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.positional.shell","match":"(\\$)[1-9]","captures":{"1":{"name":"punctuation.definition.variable.shell"}}},{"name":"variable.other.bracket.shell","begin":"\\${","end":"}","patterns":[{"name":"keyword.operator.expansion.shell","match":"!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/"},{"match":"(\\[)([^\\]]+)(\\])","captures":{"1":{"name":"punctuation.section.array.shell"},"3":{"name":"punctuation.section.array.shell"}}},{"include":"#variable"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.definition.variable.shell"}},"endCaptures":{"0":{"name":"punctuation.definition.variable.shell"}}}]}}}