github-linguist 7.19.0 → 7.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/ext/linguist/lex.linguist_yy.c +584 -498
  3. data/ext/linguist/lex.linguist_yy.h +2 -3
  4. data/ext/linguist/tokenizer.l +52 -15
  5. data/grammars/liquid.injection.json +1 -1
  6. data/grammars/markdown.cadence.codeblock.json +1 -0
  7. data/grammars/markdown.prisma.codeblock.json +1 -0
  8. data/grammars/source.abap.json +1 -1
  9. data/grammars/source.abl.json +1 -1
  10. data/grammars/source.acucobol.json +1 -1
  11. data/grammars/source.alloy.json +1 -1
  12. data/grammars/source.astro.json +1 -0
  13. data/grammars/source.ats.json +1 -1
  14. data/grammars/source.ballerina.json +1 -1
  15. data/grammars/source.berry.bytecode.json +1 -0
  16. data/grammars/source.berry.json +1 -0
  17. data/grammars/source.bms.json +1 -0
  18. data/grammars/source.bmsmap.json +1 -0
  19. data/grammars/source.brs.json +1 -0
  20. data/grammars/source.cadence.json +1 -0
  21. data/grammars/source.cairo.json +1 -0
  22. data/grammars/source.cds.json +1 -0
  23. data/grammars/source.cl.json +1 -1
  24. data/grammars/source.clarion.json +1 -1
  25. data/grammars/source.cobol.json +1 -1
  26. data/grammars/source.cobol_acu_listfile.json +1 -0
  27. data/grammars/source.cobol_mf_listfile.json +1 -0
  28. data/grammars/source.cobol_mfprep.json +1 -0
  29. data/grammars/source.cobol_pcob_listfile.json +1 -0
  30. data/grammars/source.cobolit.json +1 -0
  31. data/grammars/source.cobsql_dir.json +1 -0
  32. data/grammars/source.css.json +1 -1
  33. data/grammars/source.csswg.json +1 -0
  34. data/grammars/source.curlrc.json +1 -1
  35. data/grammars/source.curry.json +1 -1
  36. data/grammars/source.dart.json +1 -1
  37. data/grammars/source.denizenscript.json +1 -1
  38. data/grammars/source.dir.json +1 -0
  39. data/grammars/source.ditroff.json +1 -1
  40. data/grammars/source.fsharp.json +1 -1
  41. data/grammars/source.gcode.json +1 -1
  42. data/grammars/source.gdresource.json +1 -0
  43. data/grammars/source.gdscript.json +1 -1
  44. data/grammars/source.gdshader.json +1 -0
  45. data/grammars/source.genero-forms.json +1 -0
  46. data/grammars/source.genero.json +1 -0
  47. data/grammars/source.git-revlist.json +1 -0
  48. data/grammars/source.hack.json +1 -1
  49. data/grammars/source.hlasm.json +1 -0
  50. data/grammars/source.hx.json +1 -1
  51. data/grammars/source.icurry.json +1 -1
  52. data/grammars/source.jcl.json +1 -1
  53. data/grammars/source.jsligo.json +1 -0
  54. data/grammars/source.json.json +1 -1
  55. data/grammars/source.julia.json +1 -1
  56. data/grammars/source.kotlin.json +1 -1
  57. data/grammars/source.ligo.json +1 -0
  58. data/grammars/source.livescript.json +1 -1
  59. data/grammars/source.mc.json +1 -0
  60. data/grammars/source.mfu.json +1 -0
  61. data/grammars/source.mfupp_dir.json +1 -0
  62. data/grammars/source.miniyaml.json +1 -1
  63. data/grammars/source.mligo.json +1 -0
  64. data/grammars/source.mlir.json +1 -1
  65. data/grammars/source.mo.json +1 -1
  66. data/grammars/source.move.json +1 -0
  67. data/grammars/source.nix.json +1 -1
  68. data/grammars/source.pli.json +1 -0
  69. data/grammars/source.pony.json +1 -1
  70. data/grammars/source.portugol.json +1 -0
  71. data/grammars/source.q.json +1 -1
  72. data/grammars/source.rascal.json +1 -1
  73. data/grammars/source.rego.json +1 -1
  74. data/grammars/source.religo.json +1 -0
  75. data/grammars/source.renpy.json +1 -1
  76. data/grammars/source.rescript.json +1 -1
  77. data/grammars/source.rpgle.json +1 -1
  78. data/grammars/source.rsc.json +1 -0
  79. data/grammars/source.scala.json +1 -1
  80. data/grammars/source.shell.json +1 -1
  81. data/grammars/source.solidity.json +1 -1
  82. data/grammars/source.sqf.json +1 -1
  83. data/grammars/source.stan.json +1 -1
  84. data/grammars/source.star.json +1 -0
  85. data/grammars/source.stl.json +1 -0
  86. data/grammars/source.svelte.json +1 -1
  87. data/grammars/source.swift.json +1 -1
  88. data/grammars/source.talon.json +1 -0
  89. data/grammars/source.ts.json +1 -1
  90. data/grammars/source.tsx.json +1 -1
  91. data/grammars/source.utreport.json +1 -0
  92. data/grammars/source.v.json +1 -1
  93. data/grammars/source.velocity.html.json +1 -0
  94. data/grammars/source.velocity.json +1 -0
  95. data/grammars/source.vyper.json +1 -1
  96. data/grammars/source.whiley.json +1 -0
  97. data/grammars/source.win32-messages.json +1 -0
  98. data/grammars/source.wren.json +1 -0
  99. data/grammars/source.wsd.json +1 -1
  100. data/grammars/source.yara.json +1 -1
  101. data/grammars/source.yul.json +1 -0
  102. data/grammars/text.hash-commented.json +1 -0
  103. data/grammars/text.html.liquid.json +1 -1
  104. data/grammars/text.html.markdown.astro.json +1 -1
  105. data/grammars/text.html.statamic.json +1 -0
  106. data/grammars/text.savane.json +1 -0
  107. data/grammars/text.srt.json +1 -1
  108. data/grammars/text.vtt.json +1 -0
  109. data/grammars/version +1 -1
  110. data/lib/linguist/VERSION +1 -1
  111. data/lib/linguist/blob_helper.rb +2 -2
  112. data/lib/linguist/generic.yml +2 -0
  113. data/lib/linguist/heuristics.yml +34 -1
  114. data/lib/linguist/language.rb +2 -2
  115. data/lib/linguist/languages.json +1 -1
  116. data/lib/linguist/languages.yml +327 -6
  117. data/lib/linguist/samples.json +1 -1
  118. data/lib/linguist/vendor.yml +4 -1
  119. metadata +60 -16
  120. data/grammars/source.brightauthorproject.json +0 -1
  121. data/grammars/source.brightscript.json +0 -1
  122. data/grammars/source.opencobol.json +0 -1
  123. data/grammars/source.vtt.json +0 -1
  124. data/grammars/text.html.astro.json +0 -1
  125. data/lib/linguist/linguist.so +0 -0
@@ -1 +1 @@
1
- {"name":"ReScript","scopeName":"source.rescript","patterns":[{"include":"#storage"},{"include":"#constant"},{"include":"#commentLine"},{"include":"#commentBlock"},{"include":"#character"},{"include":"#typeParameter"},{"include":"#string"},{"include":"#attribute"},{"include":"#function"},{"include":"#list"},{"include":"#bracketAccess"},{"include":"#jsx"},{"include":"#operator"},{"include":"#number"},{"include":"#openOrIncludeModule"},{"include":"#moduleDeclaration"},{"include":"#moduleAccess"},{"include":"#constructor"},{"include":"#keyword"},{"include":"#punctuations"}],"repository":{"RE_ATTRIBUTE":{"match":"[A-Za-z_][A-Za-z0-9_\\.]*"},"RE_IDENT":{"match":"[a-z_][0-9a-zA-Z_]*"},"RE_KEYWORDS":{"name":"keyword.control","match":"\\b(and|as|assert|constraint|downto|else|exception|external|false|for|if|in|include|lazy|let|module|mutable|of|open|rec|switch|to|true|try|type|when|while|with)\\b"},"RE_LITERAL":{"name":"constant.language","match":"\\b(true|false)\\b"},"RE_MODULE_IDENT":{"name":"entity.name.namespace","match":"[A-Z_][0-9a-zA-Z_]*"},"attribute":{"patterns":[{"match":"(%%?|@@?)([A-Za-z_][A-Za-z0-9_\\.]*)","captures":{"1":{"name":"storage.modifier punctuation.definition.annotation"},"2":{"patterns":[{"name":"invalid.deprecated","match":"bs\\.send\\.pipe"},{"name":"invalid.illegal","match":"splice"},{"match":"(bs\\.)?([A-Za-z_][A-Za-z0-9_\\.]*)","captures":{"1":{"name":"invalid.deprecated"},"2":{"name":"variable.annotation"}}},{"name":"variable.annotation","match":"[A-Za-z_][A-Za-z0-9_\\.]*"}]}}}]},"bracketAccess":{"patterns":[{"name":"punctuation.section.brackets.begin","match":"\\["},{"name":"punctuation.section.brackets.end","match":"\\]"}]},"character":{"patterns":[{"name":"string.quoted.single","match":"'[\\x00-\\x7F]'"}]},"commentBlock":{"name":"comment.block","begin":"/\\*","end":"\\*/","patterns":[{"include":"#commentBlock"}]},"commentLine":{"name":"comment.line","match":"//.*"},"constant":{"patterns":[{"include":"#RE_LITERAL"}]},"constructor":{"patterns":[{"name":"variable.function variable.other","match":"\\b[A-Z][0-9a-zA-Z_]*\\b"},{"match":"(#)(\\.\\.\\.)?([a-zA-Z][0-9a-zA-Z_]*)\\b","captures":{"1":{"name":"punctuation.definition.keyword"},"2":{"name":"punctuation.definition.keyword"},"3":{"name":"variable.function variable.other"}}},{"match":"(#)","captures":{"1":{"name":"punctuation.definition.keyword"}}}]},"function":{"patterns":[{"name":"storage.type.function keyword.declaration.function","match":"=\u003e"}]},"jsx":{"patterns":[{"match":"\u003c\u003e|\u003c/\u003e|/\u003e"},{"match":"\u003c/([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"entity.name.namespace"}}},{"match":"\u003c/([a-z_][0-9a-zA-Z_]*)"},{"match":"\u003c([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"entity.name.namespace"}}}]},"keyword":{"patterns":[{"include":"#RE_KEYWORDS"}]},"list":{"patterns":[{"match":"\\b(list)(\\{)","captures":{"1":{"name":"keyword"},"2":{"name":"punctuation.section.braces.begin"}}},{"name":"punctuation.section.braces.end","match":"\\}"}]},"moduleAccess":{"patterns":[{"match":"\\b([A-Z_][0-9a-zA-Z_]*)(\\.)","captures":{"1":{"name":"entity.name.namespace"},"2":{"name":"punctuation.accessor"}}}]},"moduleAccessEndsWithModule":{"patterns":[{"name":"entity.name.namespace","match":"[A-Z_][0-9a-zA-Z_]*"},{"match":"(\\.)([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"punctuation.accessor"},"2":{"name":"entity.name.namespace"}}}]},"moduleDeclaration":{"patterns":[{"match":"\\b(module)\\s+(type\\s+)?(of\\s+)?([A-Z_][0-9a-zA-Z_]*)","patterns":[{"match":"\\s*:\\s*([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"entity.name.namespace"}}}],"captures":{"1":{"name":"keyword"},"2":{"name":"keyword"},"3":{"name":"keyword"},"4":{"name":"entity.name.namespace"}}}]},"number":{"patterns":[{"name":"constant.numeric","match":"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]+)?([eE][-+]?[0-9_]+)?)?)\\b"}]},"openOrIncludeModule":{"patterns":[{"match":"\\b(open|include)\\s+([A-Z_][0-9a-zA-Z_]*((\\.)([A-Z_][0-9a-zA-Z_]*))*)","captures":{"1":{"name":"keyword"},"2":{"patterns":[{"include":"#moduleAccessEndsWithModule"}]}}},{"name":"keyword","match":"\\b(open|include)\\s+"}]},"operator":{"patterns":[{"name":"keyword.operator keyword","match":"-\u003e|\\|\\||\u0026\u0026|\\+\\+|\\*\\*|\\+\\.|\\+|-\\.|-|\\*\\.|\\*|/\\.|/|\\.\\.\\.|\\.\\.|===|==|\\^|:=|!|\u003e=(?! *\\?)|\u003c=|="},{"name":"invalid.deprecated","match":"\\|\u003e"}]},"punctuations":{"patterns":[{"name":"punctuation.definition.keyword","match":"~"},{"name":"punctuation.terminator","match":";"},{"name":"punctuation.accessor","match":"\\."},{"name":"punctuation.separator","match":"\\,"},{"name":"punctuation.separator","match":"\\?|:"},{"name":"punctuation.separator","match":"\\|(?!\\|)"},{"name":"punctuation.section.braces.begin","match":"\\{"},{"name":"punctuation.section.braces.end","match":"\\}"},{"name":"punctuation.section.parens.begin","match":"\\("},{"name":"punctuation.section.parens.end","match":"\\)"}]},"storage":{"patterns":[{"name":"storage.type","match":"\\btype\\b"}]},"string":{"patterns":[{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end"}}},{"name":"string.template","begin":"([a-z_][0-9a-zA-Z_]*)?(`)","end":"(?\u003c!\\\\)`","patterns":[{"name":"meta.template.expression","begin":"\\$\\{","end":"\\}","patterns":[{"match":"[a-z_][0-9a-zA-Z_]*"},{"include":"#operator"},{"include":"#punctuations"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.section.interpolation.begin"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end"}}}],"beginCaptures":{"1":{"name":"variables.annotation"},"2":{"name":"punctuation.definition.string.template.begin"}},"endCaptures":{"1":{"name":"punctuation.definition.string.template.end"}}}]},"typeParameter":{"patterns":[{"name":"support.type","match":"'[A-Za-z][A-Za-z0-9_]*"}]}}}
1
+ {"name":"ReScript","scopeName":"source.rescript","patterns":[{"include":"#storage"},{"include":"#constant"},{"include":"#commentLine"},{"include":"#commentBlock"},{"include":"#character"},{"include":"#typeParameter"},{"include":"#string"},{"include":"#attribute"},{"include":"#function"},{"include":"#list"},{"include":"#bracketAccess"},{"include":"#jsx"},{"include":"#operator"},{"include":"#number"},{"include":"#openOrIncludeModule"},{"include":"#moduleDeclaration"},{"include":"#moduleAccess"},{"include":"#constructor"},{"include":"#keyword"},{"include":"#punctuations"},{"include":"#defaultIdIsVariable"}],"repository":{"RE_CONSTANTS_BOOL":{"name":"constant.language.boolean","match":"\\b(false|true)\\b"},"RE_KEYWORD":{"name":"storage.type","match":"\\b(include|let|module|of|open|type)\\b"},"RE_KEYWORD_CONTROL":{"name":"keyword.control","match":"\\b(and|as|assert|await|constraint|downto|else|exception|external|for|if|in|lazy|mutable|rec|switch|to|try|when|while|with)\\b"},"RE_TO_DOWNTO_AS_LABELS":{"patterns":[{"match":"(to|downto)\\s*(=)","captures":{"1":{"name":"variable"},"2":{"name":"keyword.operator keyword"}}},{"match":"(to|downto)\\s*(as)","captures":{"1":{"name":"variable"},"2":{"name":"keyword.control"}}}]},"attribute":{"patterns":[{"match":"(%%?|@@?)([A-Za-z_][A-Za-z0-9_\\.]*)","captures":{"1":{"name":"punctuation.decorator"},"2":{"patterns":[{"name":"invalid.deprecated","match":"bs\\.send\\.pipe"},{"name":"invalid.illegal","match":"splice"},{"match":"(bs\\.)?([A-Za-z_][A-Za-z0-9_\\.]*)","captures":{"1":{"name":"invalid.deprecated"},"2":{"name":"entity.name.function"}}},{"name":"entity.name.function","match":"[A-Za-z_][A-Za-z0-9_\\.]*"}]}}}]},"bracketAccess":{"patterns":[{"name":"punctuation.section.brackets.begin","match":"\\["},{"name":"punctuation.section.brackets.end","match":"\\]"}]},"character":{"patterns":[{"name":"string.quoted.single","match":"'[\\x00-\\x7F]'"}]},"commentBlock":{"name":"comment.block","begin":"/\\*","end":"\\*/","patterns":[{"include":"#commentBlock"}]},"commentLine":{"name":"comment.line","match":"//.*"},"constant":{"patterns":[{"include":"#RE_CONSTANTS_BOOL"}]},"constructor":{"patterns":[{"name":"variable.other.enummember","match":"\\b[A-Z][0-9a-zA-Z_]*\\b"},{"match":"(#)\\s*([a-zA-Z][0-9a-zA-Z_]*)\\b","captures":{"1":{"name":"variable.other.enummember"},"2":{"name":"variable.other.enummember"}}},{"match":"(#)\\s*(\\.\\.\\.)\\b","captures":{"1":{"name":"variable.other.enummember"},"2":{"name":"variable.other.enummember"}}},{"match":"(#)","captures":{"1":{"name":"variable.other.enummember"}}}]},"defaultIdIsVariable":{"patterns":[{"name":"variable","match":"[A-Za-z_][A-Za-z0-9_]*"}]},"function":{"patterns":[{"name":"storage.type.function keyword.declaration.function","match":"=\u003e"}]},"jsx":{"patterns":[{"name":"punctuation.definition.tag","match":"\u003c\u003e|\u003c/\u003e|\u003c/|/\u003e"},{"match":"\u003c/([A-Z_][0-9a-zA-Z_]*)","captures":{"0":{"name":"punctuation.definition.tag"},"1":{"name":"entity.name.class"}}},{"match":"\u003c/([a-z_][0-9a-zA-Z_]*)","captures":{"0":{"name":"punctuation.definition.tag"},"1":{"name":"variable"}}},{"match":"\u003c([A-Z_][0-9a-zA-Z_]*)","captures":{"0":{"name":"punctuation.definition.tag"},"1":{"name":"entity.name.class"}}}]},"keyword":{"patterns":[{"include":"#RE_TO_DOWNTO_AS_LABELS"},{"include":"#RE_KEYWORD_CONTROL"},{"include":"#RE_KEYWORD"}]},"list":{"patterns":[{"match":"\\b(list)(\\{)","captures":{"1":{"name":"keyword"},"2":{"name":"punctuation.section.braces.begin"}}},{"name":"punctuation.section.braces.end","match":"\\}"}]},"moduleAccess":{"patterns":[{"match":"\\b([A-Z_][0-9a-zA-Z_]*)(\\.)","captures":{"1":{"name":"entity.name.class"},"2":{"name":"punctuation.accessor"}}}]},"moduleAccessEndsWithModule":{"patterns":[{"name":"entity.name.class","match":"[A-Z_][0-9a-zA-Z_]*"},{"match":"(\\.)([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"punctuation.accessor"},"2":{"name":"entity.name.class"}}}]},"moduleDeclaration":{"patterns":[{"match":"\\b(module)\\s+(type\\s+)?(of\\s+)?([A-Z_][0-9a-zA-Z_]*)","patterns":[{"match":"\\s*:\\s*([A-Z_][0-9a-zA-Z_]*)","captures":{"1":{"name":"entity.name.class"}}}],"captures":{"1":{"name":"keyword"},"2":{"name":"keyword"},"3":{"name":"keyword"},"4":{"name":"entity.name.class"}}}]},"number":{"patterns":[{"name":"constant.numeric","match":"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]+)?([eE][-+]?[0-9_]+)?)?)\\b"}]},"openOrIncludeModule":{"patterns":[{"match":"\\b(open|include)\\s+([A-Z_][0-9a-zA-Z_]*((\\.)([A-Z_][0-9a-zA-Z_]*))*)","captures":{"1":{"name":"keyword"},"2":{"patterns":[{"include":"#moduleAccessEndsWithModule"}]}}},{"name":"keyword","match":"\\b(open|include)\\s+"}]},"operator":{"patterns":[{"name":"keyword.operator","match":"-\u003e|\\|\\||\u0026\u0026|\\+\\+|\\*\\*|\\+\\.|\\+|-\\.|-|\\*\\.|\\*|/\\.|/|\\.\\.\\.|\\.\\.|===|==|\\^|:=|!|\u003e=(?! *\\?)|\u003c=|="},{"name":"invalid.deprecated","match":"\\|\u003e"}]},"punctuations":{"patterns":[{"name":"punctuation.definition.keyword","match":"~"},{"name":"punctuation.terminator","match":";"},{"name":"punctuation.accessor","match":"\\."},{"name":"punctuation.separator","match":"\\,"},{"name":"punctuation.separator","match":"\\?|:"},{"name":"punctuation.separator","match":"\\|(?!\\|)"},{"name":"punctuation.section.braces.begin","match":"\\{"},{"name":"punctuation.section.braces.end","match":"\\}"},{"name":"punctuation.section.parens.begin","match":"\\("},{"name":"punctuation.section.parens.end","match":"\\)"}]},"string":{"patterns":[{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end"}}},{"name":"string.template","begin":"([a-z_][0-9a-zA-Z_]*)?(`)","end":"(?\u003c!\\\\)`","patterns":[{"name":"meta.template.expression","begin":"\\$\\{","end":"\\}","patterns":[{"match":"[a-z_][0-9a-zA-Z_]*"},{"include":"#operator"},{"include":"#punctuations"},{"include":"#string"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end"}}}],"beginCaptures":{"1":{"name":"variables.annotation"},"2":{"name":"punctuation.definition.string.template.begin"}},"endCaptures":{"1":{"name":"punctuation.definition.string.template.end"}}}]},"typeParameter":{"patterns":[{"name":"support.type","match":"'[A-Za-z][A-Za-z0-9_]*"}]}}}
@@ -1 +1 @@
1
- {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\s*\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\s*\\*\\*FREE"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"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})"}]}]},"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|BLOCK|ALIAS)\\b"},{"include":"#rpglecommon"}]},{"name":"rpgle.fixed.d","begin":"(?i)(?\u003c=^.{5}D)","end":"(?\u003c=\\n)","patterns":[{"include":"#fixedcomment"},{"name":"variable.other.rpgle.fixed.d.extended.name","match":"(?i)(?\u003c=^.{5}D).{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)(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|SUBDIR|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|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)(?=(^.*(EXEC)\\s+(SQL)\\b))","end":"\\;","patterns":[{"name":"keyword.other.rpgle.sql","match":"(?i)(EXEC)\\s+(SQL)\\b"},{"include":"#sqlcommon"}]}]},"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|RTNPARM|REQPROTO|QUALIFIED|PSDS|PROCPTR|PREFIX|POS|POINTER|PGMINFO|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"}]},"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|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|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|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)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)\\b(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDIR|SUB|SQRT|SQLSTATE|SQLCODE|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\\-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|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":"rpgle.free.definition.identifier","begin":"[a-zA-Z_][a-zA-Z0-9_]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.other.rpgle","match":":|\\.|\\,|\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)|((\\b(?i)(TO|BY|DOWNTO|AND|IN|OR|NOT)\\b))"},{"name":"keyword.other.rpgle.bif","match":"[%](?i)(YEARS|XML|XLATE|XFOOT|UPPER|UNSH|UNS|UCS2|TRIMR|TRIML|TRIM|TLOOKUPLT|TLOOKUPLE|TLOOKUPGT|TLOOKUPGE|TLOOKUP|TIMESTAMP|TIME|THIS|SUBST|SUBDT|SUBARR|STR|STATUS|SQRT|SPLIT|SIZE|SHTDN|SECONDS|SCANRPL|SCANR|SCAN|REPLACE|REM|REALLOC|RANGE|PROC|PARSER|PARMNUM|PARMS|PADDR|OPEN|OCCUR|NULLIND|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|KDS|INTH|INT|HOURS|HANDLER|GRAPH|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CHECKR|CHECK|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"keyword.other.rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|\\s)[\\/](TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}]},{"name":"keyword.other.rpgle.fixed.precompiler.include","begin":"(?i)^(\\s)*(C)?(\\s)*[\\/](INCLUDE|COPY)\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}]},{"name":"rpgle.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.other.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":"keyword.other.rpgle.fixed.precompiler.misc","match":"(?i)^[\\s]*[\\/](EJECT|COPY|INCLUDE|ENDIF|ELSE|EOF|UNDEFINE|DEFINE|TITLE|SPACE|FREE|END-FREE)\\b","patterns":[{"name":"keyword.other.rpgle.precompiler","match":".*"}]}]},"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_]*(\\.|/)"},{"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":"'","patterns":[{"name":"keyword.other.rpgle.fixed.specs","match":"(?i)(?\u003c=^.{5})[H|F|D|I|C|O|P]"}]}]},"tempfreeformat":{"patterns":[{"begin":"(?i)(?=((\\/FREE\\b)))","end":"(?i)(?=((\\/END-FREE\\b)))","patterns":[{"name":"keyword.other.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.other.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
1
+ {"name":"RPGLE","scopeName":"source.rpgle","patterns":[{"name":"rpgle.free.allfree","begin":"(?i)(?=(\\s*\\*\\*(FREE)))","end":"(E-\\*-O-\\*-F)","patterns":[{"name":"keyword.other.rpgle.free.precompiler.allfree","match":"(?i)^\\s*\\*\\*FREE"},{"include":"#freeSQL"},{"include":"#rpglecommon"},{"include":"#freeformat"}]},{"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})"}]}]},"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|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).{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|SUBDIR|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|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|DATEDIT|DCLOPT|CVTOPT|CURSYM|COPYRIGHT|COPYNEST|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|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)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.simple","match":"(?i)\\b(DCL\\-)(S|C|PARM)\\b"},{"include":"#freeidentifiers"},{"name":"comment.line.rpgle.free","match":"(//).*"}]},{"name":"rpgle.free.definition.complex","begin":"(?i)(?=(\\b(DCL\\-)(DS|PROC|PR|PI)\\b))","end":"\n","patterns":[{"name":"storage.type.rpgle.free.definition.complex.dcl","match":"(?i)\\b(DCL\\-)(DS|PROC|PR|PI)\\b"},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|PROC|PR|PI)\\b"},{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]},{"name":"storage.type.rpgle.free.definition.complex.end","match":"(?i)\\b(END\\-)(DS|PROC|PR|PI)\\b"},{"name":"keyword.other.rpgle.free","match":"(?i)\\b(Z\\-SUB|Z\\-ADD|XML\\-SAX|XML\\-INTO|XLATE|XFOOT|WRITE|WHEN|UPDATE|UNLOCK|TIME|TESTZ|TESTN|TESTB|TEST|TAG|SUBST|SUBDIR|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|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":"rpgle.free.definition.identifier","begin":"[a-zA-Z_][a-zA-Z0-9_]*","end":"(?=\n)","patterns":[{"include":"#freedefkeywords"},{"include":"#rpglecommon"}]}]},"keywords":{"patterns":[{"name":"keyword.other.rpgle","match":":|\\.|\\,|\\*{1,2}(=)?|=|\u003c\u003e|((\u003c|\u003e|\\+|\\-|\\/)(=)?)|((\\b(?i)(TO|BY|DOWNTO|AND|IN|OR|NOT)\\b))"},{"name":"keyword.other.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|REPLACE|REM|REALLOC|RANGE|PROC|PARSER|PARMNUM|PARMS|PADDR|OPEN|OCCUR|NULLIND|MSG|MSECONDS|MONTHS|MINUTES|MINARR|MIN|MAXARR|MAX|LOWER|LOOKUPLT|LOOKUPLE|LOOKUPGT|LOOKUPGE|LOOKUP|LIST|LEN|KDS|INTH|INT|HOURS|HANDLER|GRAPH|FOUND|FLOAT|FIELDS|ERROR|EQUAL|EOF|ELEM|EDITW|EDITFLT|EDITC|DIV|DIFF|DECPOS|DECH|DEC|DAYS|DATE|DATA|CHECKR|CHECK|CHAR|BITXOR|BITOR|BITNOT|BITAND|ALLOC|ADDR|ABS)"}]},"precompiler":{"patterns":[{"name":"keyword.other.rpgle.fixed.precompiler.title","begin":"(?i)(?\u003c=^.{5})(H|\\s)[\\/](TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.fixed.precompiler.title","match":".*"}]},{"name":"keyword.other.rpgle.fixed.precompiler.title","begin":"(?i)^(\\s)*(C)?(\\s)*[\\/](TITLE)","end":"\n","patterns":[{"name":"comment.line.rpgle.free.precompiler.title","match":".*"}]},{"name":"keyword.other.rpgle.fixed.precompiler.include","begin":"(?i)^(\\s)*(C)?(\\s)*[\\/](INCLUDE|COPY)\\s","end":"\n","patterns":[{"name":"string.other.rpgle.precompiler.include","begin":"\\S","end":"\\s"},{"name":"comment.other.rpgle.precompiler.include","match":".*"}]},{"name":"rpgle.precompiler.conditional","begin":"(?i)(?=(^[\\s]*\\/IF))","end":"(?i)(?=(^[\\s]*\\/ENDIF))","patterns":[{"name":"keyword.other.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":"keyword.other.rpgle.fixed.precompiler.misc","match":"(?i)^[\\s]*[\\/](EJECT|COPY|INCLUDE|ENDIF|ELSE|EOF|UNDEFINE|DEFINE|TITLE|SPACE|FREE|END-FREE)\\b","patterns":[{"name":"keyword.other.rpgle.precompiler","match":".*"}]}]},"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.other.rpgle.precompiler","match":"(?i)^.*(\\/FREE\\b)"},{"include":"#rpglecommon"},{"include":"#freeformat"},{"include":"#freeSQL"}]},{"name":"keyword.other.rpgle.precompiler","match":"^.*(\\/END-FREE\\b)"}]}}}
@@ -0,0 +1 @@
1
+ {"name":"rosScript","scopeName":"source.rsc","patterns":[{"name":"variable.other.rosScript","match":"\\b(ipsec-esp|ipsec-ah|idpr-cmtp|iso-tp4|xns-idp|udp-lite|ip-encap|icmp|igmp|ggp|st|tcp|egp|pup|udp|hmp|rdp|dccp|xtp|ddp|rsvp|gre|rspf|vmtp|ospf|ipip|etherip|encap|pim|vrrp|l2tp|sctp)\\b"},{"name":"keyword.other.rosScript","match":"(dns|https|http|smb)"},{"name":"ipv4.rosScript","match":"qwerty"},{"name":"keyword.other.rosScript","match":"\\b(system|package|update)\\b"},{"name":"support.type.rosScript","match":"(?\u003c=\\=)\\b(\\S)*\\b"},{"name":"variable.other.rosScript","match":"\\b(ftp|h323|irc|pptp|sip|tftp|updplite|api-ssl|api|ssh|telnet|winbox|www-ssl|www|reboot|read|write|test|sniff|sensitive|romon)\\b"},{"name":"keyword.other.rosScript","match":"\\b(up-script|netwatch|watchdog-timer|owner|ntp|on-event|down-script|src-and-dst-addresses|dst-limit|limit|to-ports|silent-boot|routerboard|allow-remote-requests|pptp-server|authentication-types|in-filter|security-profiles|multicast-helper|tx-power|wps-mode|user-manager|access|time-zone-autodetect|time-zone-name)\\b"},{"name":"keyword.other.rosScript","match":"\\b(own-routers|own-users|own-profiles|own-limits|config-payment-gw|always-broadcast|cache-max-ttl|discover-interface-list|in-interface)\\b"},{"name":"support.type.rosScript","match":"(?\u003c=(\\=|\n|\\s|\\,))(input|output|forward|srcnat|dstnat|untracked)"},{"name":"support.type.rosScript","match":"(?\u003c=\\=)(accept|add-dst-to-address-list|add-src-to-address-list|drop|fasttrack-connection|jump|log|passthrough|reject|return|tarpit)"},{"name":"support.type.rosScript","match":"(?\u003c=\\=)(none-dynamic|none-static)"},{"name":"support.type.rosScript","match":"[0-9]{1,3}Mbps|(2|5)ghz"},{"name":"support.type.rosScript","match":"([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})(\\s|-([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))"},{"name":"support.type.rosScript","match":"([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/[0-9]{1,2})(\\s|\\-([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/[0-9]{1,2}))"},{"name":"support.type.rosScript","match":"([0-9A-F]{2}[:-]){5}([0-9A-F]{2})(\\s)"},{"name":"keyword.control.rosScript","match":"\\b(if|else|for|foreach|do|while|on-error)(?=\\s|\\{|\\=|\\[|\\()"},{"name":"keyword.operator.logical","match":"\\b(and|or|not|in|\u0026\u0026|\\!|\\|\\|)\\b"},{"name":"keyword.operator.logical","match":"~|\\||\\^|\u0026|\u003c\u003c|\u003e\u003e"},{"name":"keyword.other.rosScript","match":"\\b(detail|error|file|info|led|nothing|password|time)\\b"},{"match":":(global|local|set)\\s([a-zA-Z0-9-]*)","captures":{"1":{"name":"storage.modifier.rosScript"},"2":{"name":"variable.other.rosScript"}}},{"name":"keyword.control","match":"\\b(from|to|step)\\b"},{"name":"variable.other.rosScript","match":"\\$[a-zA-Z0-9-]*"},{"name":"support.function.builtin.rosScript","match":"\\b(radius|routing|snmp|special-login|store|system|tool|user|certificate|driver|file|interface|ip|ipv6|log|mpls|port|queue)\\b"},{"name":"support.function.builtin.rosScript","match":"\\b(len|setup|typeof|toarray|tobool|toid|toip|toip6|tonum|tostr|totime)\\b"},{"name":"support.function.builtin.rosScript","match":"\\b(accept|add|beep|delay|do|drop|execute|export|find|get|import|log|parse|pick|ping|print|put|quit|redirect|redo|resolve|set|undo)\\b"},{"name":"constant.language.boolean.rosScript","match":"\\b(true|false|yes|no)\\b"},{"name":"string.quoted.single.rosScript","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.rosScript","include":"#string_escaped_char"}]},{"name":"string.quoted.double.rosScript","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.rosScript","include":"#string_escaped_char"}]},{"begin":"(^[ \\t]+)?(?=#)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.rosScript","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.rosScript"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.rosScript"}}},{"name":"keyword.operator.comparison","match":"\u003c\\=|\u003e\\=|\\=\\=|\u003c|\u003e|\\!\\="},{"name":"keyword.operator.arithmetic","match":"\\+|\\-|\\*|\\/"},{"name":"keyword.operator.string","match":"\\.|,"},{"name":"punctuation.section","match":"\\[|\\(|\\)|\\:|\\[|\\]|\\{|\\||\\}|\\]"},{"name":"keyword.operator.assignment","match":"="},{"name":"constant.numeric.integer.decimal.rosScript","match":"\\b([1-9]+[0-9]*|0)"},{"name":"keyword.other.rosScript","include":"#other_keywords"},{"name":"keyword.other.rosScript","match":"country|band|antenna-gain|hw-protection-mode|wireless-protocol|adaptive-noise-immunity|default-name|basic-rates-a/g|basic-rates|basic-rates-b|frequency"},{"name":"variable.parameter","match":"\\b(debug|error|info|warning)\\b"},{"name":"constant.other.rosScript.protocol","match":"\\b(bgp|ip|ipsec|ipv6|ldp|ospf-v3|ppp|rip|snmp)\\b"},{"name":"keyword.other.rosScript","match":"\\b(6to4|bonding|bridge|eoip|eoipv6|ethernet|wireless|gre6|ipipv6|isdn-client|isdn-server|l2tp-client|l2tp-server|lte|mesh|ovpn-client|ovpn-server|ppp-client|pppoe-client|pppoe-server|ppp-server|pptp-client|pptp-server|sstp-client|sstp-server|traffic-eng|vlan|vpls)\\b"},{"name":"constant.other.rosScript.connection-state","match":"\\b(new|related|established|invalid)\\b"}],"repository":{"other_keywords":{"patterns":[{"name":"keyword.other.rosScript","match":"\\b(fast-forward|dns|cache|aaa|accessible-via-web|accounting|account-local-traffic|ac-name|action|active-flow-timeout|active-mode|add-default-route|ageing-time|align|always-from-cache|area|area-id|arp|as|authenticate|authoritative|automatic-supout|auto-negotiation|autonomous|auto-send-supout|backup-allowed|bandwidth-server|baud-rate|bfd|bidirectional-timeout|blank-interval|bootp-support|bootp-lease-time|bridge-mode|broadcast|broadcast-addresses|cable-settings|cache-administrator|cache-entries|cache-hit-dscp|cache-max-ttl|cache-on-disk|cache-size|chain|channel|channel-time|check-interval|cipher|client|client-to-client-reflection|comment|community|config|connection-state|connection|connection-bytes|connection-idle-timeout|connection-state|console|contact|contrast|cpu|customer|data-bits|default|default-ap-tx-limit|default-client-tx-limit|default-forwarding|default-group|default-profile|default-route-distance|dhcp-options|dhcp-client|dhcp-option|dhcp-server|dh-group|dial-on-demand|directory|disabled|disable-running-check|discovery|disk-file-count|disk-file-name|disk-lines-per-file|disk-stop-on-full|display-time|distance|distribute-default|distribute-for-default-route|domain|dpd-interval|dpd-maximum-failures|dynamic-label-range|eap-methods|e-mail|enabled|enc-algorithm|enc-algorithms|encryption-password|encryption-protocol|engine-id|exchange-mode|exclude-groups|file-limit|file-name|filter|filter-port|filter-stream|firewall|firmware|flow-control|forward-delay|frame-size|frames-per-second|from|full-duplex|garbage-timer|gateway|gateway-class|gateway-keepalive|gateway-selection|generate-policy|generic-timeout|gps|graphing|group|group-ciphers|group-key-update|hardware|hash-algorithm|health|hide-ssid|hop-limit|hotspot|hotspot-address|html-directory|http-cookie-lifetime|http-proxy|icmp-timeout|identity|idle-timeout|igmp-proxy|ignore-as-path-len|inactive-flow-timeout|incoming|in-filter|instance|interface|interfaces|interim-update|interval|ipsec-protocols|irq|jump-target|keepalive-timeout|keep-max-sms|kind|l2mtu|latency-distribution-scale|lcd|lease-time|level|lifebytes|lifetime|line-count|list|local-address|local-proxy-arp|location|logging|login|login-by|log-prefix|loop-detect|lsr-id|managed-address-configuration|management-protection|management-protection-key|mangle|manual|manycast|max-cache-size|max-fresh-time|max-message-age|max-mru|max-mtu|max-sessions|max-station-count|memory-limit|memory-lines|memory-scroll|memory-stop-on-full|metric-connected|metric-default|metric-static|min-rx|mirror|mme|mode|mpls|mpls-mtu|mq-pfifo-limit|mrru|mtu|multicast|multi-cpu|multiple-channels|multiplier|my-id-user-fqdn|name|nat|nat-traversal|nd|neighbor|netmask|network|no-ping-delay|note|on-backup|only-headers|only-one|on-master|origination-interval|other-configuration|out-filter|out-interface|page|page-refresh|parent|parent-proxy|parent-proxy-port|parity|passthrough|password|path-vector-limit|peer|permissions|pfifo-limit|pfs-group|policy|pool|port|ports|preemption-mode|preferred-gateway|preferred-lifetime|prefix|priority|profile|propagate-ttl|proposal|proposal-check|proprietary-extensions|protocol|protocol-mode|proxy|query-interval|query-response-interval|queue|quick-leave|ranges|rate-limit|reachable-time|read-access|read-only|receive-all|receive-enabled|receive-errors|remember|remote|remote-address|remote-port|remote-ipv6-prefix-pool|resource|retransmit-interval|route|router-id|routing|routing-table|sa-dst-address|sa-src-address|scope|screen|script|secret|send-initial-contact|set-system-time|settings|sfq-allot|sfq-perturb|shared-users|shares|show-at-login|show-dummy-rule|signup-allowed|sip-direct-media|skin|sms|sniffer|snooper|socks|source|speed|split-user-domain|ssid|ssid-all|state-after-reboot|status-autorefresh|stop-bits|store-every|store-leases-disk|supplicant-identity|system|target|target-scope|term|test-id|threshold|timeout|timeout-timer|to-addresses|tool|topics|tracking|traffic-flow|traffic-generator|transmit-hold-count|transparent-proxy|transport-address|ttl|tunnel|type|unicast-ciphers|upgrade|upnp|users|v3-protocol|valid-lifetime|vcno|version|vrid|watch-address|watchdog|watchdog-timer|web-access|address|address-list|address-pool|addresses|addresses-per-mac|admin-mac|advertise-mac-address|auto-mac|filter-mac|mac-address|filter-mac-address|filter-mac-protocol|mac-addressmac-server|mac-winbox|advertise-dns|dns-interface|dns-name|dns-server|use-peer-dns|allow|allow-disable-external-interface|allowed-number|allow-guests|audio-max|audio-min|audio-monitor|auth|auth-algorithms|auth-method|authentication|authentication-password|authentication-protocol|authentication-types|default-authentication|bsd-syslog|syslog-facility|syslog-severity|scheduler|clock|time-zone|time-zone-name|connection-mark|new-connection-mark|new-packet-mark|new-routing-mark|routing-mark|dst-address|dst-address-list|dst-delta|dst-end|dst-port|dst-start|max-client-connections|max-connections|max-server-connections|serialize-connections|metric-ospf|metric-other-ospf|redistribute-ospf|redistribute-other-ospf|metric-rip|redistribute-rip|ripng|ntp-server|primary-ntp|secondary-ntp|use-peer-ntp|paypal-accept-pending|paypal-allowed|paypal-secure-response|primary-server|secondary-server|ra-delay|ra-interval|ra-lifetime|radius|radius-eap-accounting|radius-mac-accounting|radius-mac-authentication|radius-mac-caching|radius-mac-format|radius-mac-mode|red-avg-packet|red-burst|red-limit|red-max-threshold|red-min-threshold|redistribute-connected|redistribute-static|require-client-certificate|tls-certificate|tls-mode|verify-client-certificate|security|security-profile|security-profiles|server|servers|service|service-name|service-port|smtp-server|wins-server|src-address|src-address-list|src-port|static-algo-0|static-algo-1|static-algo-2|static-algo-3|static-sta-private-algo|static-key-0|static-key-1|static-key-2|static-key-3|static-sta-private-key|static-transmit-key|streaming-enabled|streaming-max-rate|streaming-server|switch-to-spt|switch-to-spt-bytes|switch-to-spt-interval|trap-generators|trap-target|trap-version|update-stats-interval|update-timer|use-compression|use-encryption|use-explicit-null|use-ipv6|use-mpls|use-radius|use-service-tag|use-vj-compression|wmm-support|wpa-pre-shared-key|wpa2-pre-shared-key|write-access|metric-bgp|redistribute-bgp|redistribute-other-bgp|change-tcp-mss|tcp-close-timeout|tcp-close-wait-timeout|tcp-established-timeout|tcp-fin-wait-timeout|tcp-last-ack-timeout|tcp-syn-received-timeout|tcp-syn-sent-timeout|tcp-syncookie|tcp-time-wait-timeout|allocate-udp-ports-from|max-udp-packet-size|udp-stream-timeout|udp-timeout|use-ip-firewall-for-vlan|vlan-id|filter-ip-address|filter-ip-protocol|use-ip-firewall-for-pppoe|use-ip-firewall|wds-cost-range|wds-default-bridge|wds-default-cost|wds-ignore-ssid|wds-mode|job|environment)\\b"}]},"string_escaped_char":{"patterns":[{"name":"constant.character.escape.rosScript","match":"\\\\(\\\\|[nrt$?abfv\"?]|[0-9A-F]{2})"},{"name":"invalid.illegal.unknown-escape.rosScript","match":"\\\\."}]}}}
@@ -1 +1 @@
1
- {"name":"Scala","scopeName":"source.scala","patterns":[{"include":"#code"}],"repository":{"backQuotedVariable":{"match":"`[^`]+`"},"block-comments":{"patterns":[{"name":"comment.block.empty.scala","match":"/\\*\\*/","captures":{"0":{"name":"punctuation.definition.comment.scala"}}},{"name":"comment.block.documentation.scala","begin":"^\\s*(/\\*\\*)(?!/)","end":"\\*/","patterns":[{"match":"(@param)\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.scaladoc.scala"},"2":{"name":"variable.parameter.scala"}}},{"match":"(@(?:tparam|throws))\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.scaladoc.scala"},"2":{"name":"entity.name.class"}}},{"name":"keyword.other.documentation.scaladoc.scala","match":"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b"},{"match":"(\\[\\[)([^\\]]+)(\\]\\])","captures":{"1":{"name":"punctuation.definition.documentation.link.scala"},"2":{"name":"string.other.link.title.markdown"},"3":{"name":"punctuation.definition.documentation.link.scala"}}},{"include":"#block-comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.scala"}}},{"name":"comment.block.scala","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block-comments"}],"captures":{"0":{"name":"punctuation.definition.comment.scala"}}}]},"char-literal":{"name":"string.quoted.other constant.character.literal.scala","begin":"'","end":"'|$","patterns":[{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-character-escape.scala","match":"\\\\."},{"name":"invalid.illegal.character-literal-too-long","match":"[^']{2,}"},{"name":"invalid.illegal.character-literal-too-long","match":"(?\u003c!')[^']"}],"beginCaptures":{"0":{"name":"punctuation.definition.character.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.character.end.scala"}}},"code":{"patterns":[{"include":"#script-header"},{"include":"#storage-modifiers"},{"include":"#declarations"},{"include":"#inheritance"},{"include":"#extension"},{"include":"#imports"},{"include":"#exports"},{"include":"#comments"},{"include":"#strings"},{"include":"#initialization"},{"include":"#xml-literal"},{"include":"#keywords"},{"include":"#using"},{"include":"#constants"},{"include":"#scala-symbol"},{"include":"#singleton-type"},{"include":"#inline"},{"include":"#scala-quoted"},{"include":"#char-literal"},{"include":"#empty-parentheses"},{"include":"#parameter-list"},{"include":"#qualifiedClassName"},{"include":"#backQuotedVariable"},{"include":"#curly-braces"},{"include":"#meta-brackets"},{"include":"#meta-bounds"},{"include":"#meta-colons"}]},"comments":{"patterns":[{"include":"#block-comments"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.scala","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.scala"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.scala"}}}]},"constants":{"patterns":[{"name":"constant.language.scala","match":"\\b(false|null|true)\\b"},{"name":"constant.numeric.scala","match":"\\b(0[xX][0-9a-fA-F_]*)\\b"},{"name":"constant.numeric.scala","match":"\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b"},{"name":"constant.numeric.scala","match":"(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b"},{"name":"variable.language.scala","match":"\\b(this|super)\\b"}]},"curly-braces":{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.scala"}}},"declarations":{"patterns":[{"match":"\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.function.declaration"}}},{"match":"\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.class.declaration"}}},{"match":"\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"keyword.declaration.scala"},"3":{"name":"entity.name.class.declaration"}}},{"match":"(?\u003c!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.type.declaration"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?=\\s*,)","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"},"3":{"name":"variable.other.declaration.scala"}}},{"match":"\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.other.scoping.scala"},"2":{"name":"keyword.declaration.scala"},"3":{"name":"entity.name.class.declaration"}}},{"name":"meta.package.scala","begin":"\\b(package)\\s+","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"entity.name.package.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.package","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.import.scala"}}},{"match":"\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.given.declaration"}}}]},"empty-parentheses":{"name":"meta.parentheses.scala","match":"(\\(\\))","captures":{"1":{"name":"meta.bracket.scala"}}},"exports":{"name":"meta.export.scala","begin":"\\b(export)\\s+(given\\s+)?","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"entity.name.export.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.export","match":"\\."},{"name":"meta.export.selector.scala","begin":"{","end":"}","patterns":[{"match":"(?x)\\s*(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))\\s*(=\u003e)\\s*(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))\\s*","captures":{"1":{"name":"entity.name.export.renamed-from.scala"},"2":{"name":"keyword.other.arrow.scala"},"3":{"name":"entity.name.export.renamed-to.scala"}}},{"name":"entity.name.export.scala","match":"([^\\s.,}]+)"}],"beginCaptures":{"0":{"name":"meta.bracket.scala"}},"endCaptures":{"0":{"name":"meta.bracket.scala"}}}],"beginCaptures":{"1":{"name":"keyword.other.export.scala"},"2":{"name":"keyword.other.export.given.scala"}}},"extension":{"patterns":[{"match":"^\\s*(extension)\\s+(?=[\\[\\(])","captures":{"1":{"name":"keyword.declaration.scala"}}}]},"imports":{"name":"meta.import.scala","begin":"\\b(import)\\s+","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"keyword.other.import.given.scala","match":"\\b(given)\\b"},{"name":"entity.name.class.import.scala","match":"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?"},{"name":"entity.name.import.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.import","match":"\\."},{"name":"meta.import.selector.scala","begin":"{","end":"}","patterns":[{"match":"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=\u003e)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))\\s*","captures":{"1":{"name":"keyword.other.import.given.scala"},"2":{"name":"entity.name.class.import.renamed-from.scala"},"3":{"name":"entity.name.import.renamed-from.scala"},"4":{"name":"keyword.other.arrow.scala"},"5":{"name":"entity.name.class.import.renamed-to.scala"},"6":{"name":"entity.name.import.renamed-to.scala"}}},{"name":"keyword.other.import.given.scala","match":"\\b(given)\\b"},{"match":"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))","captures":{"1":{"name":"keyword.other.import.given.scala"},"2":{"name":"entity.name.class.import.scala"},"3":{"name":"entity.name.import.scala"}}}],"beginCaptures":{"0":{"name":"meta.bracket.scala"}},"endCaptures":{"0":{"name":"meta.bracket.scala"}}}],"beginCaptures":{"1":{"name":"keyword.other.import.scala"}}},"inheritance":{"patterns":[{"match":"\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=\u003e)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.other.inherited-class.scala"}}}]},"initialization":{"match":"\\b(new)\\b","captures":{"1":{"name":"keyword.declaration.scala"}}},"inline":{"patterns":[{"name":"storage.modifier.other","match":"\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)"},{"name":"keyword.control.flow.scala","match":"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)"}]},"keywords":{"patterns":[{"name":"keyword.control.flow.jump.scala","match":"\\b(return|throw)\\b"},{"name":"support.function.type-of.scala","match":"\\b(classOf|isInstanceOf|asInstanceOf)\\b"},{"name":"keyword.control.flow.scala","match":"\\b(else|if|then|do|while|for|yield|match|case)\\b"},{"name":"keyword.control.flow.end.scala","match":"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"name":"keyword.declaration.stable.end.scala","match":"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"name":"keyword.declaration.volatile.end.scala","match":"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"match":"^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)","captures":{"1":{"name":"keyword.declaration.end.scala"},"2":{"name":"keyword.declaration.end.scala"},"3":{"name":"entity.name.type.declaration"}}},{"match":"^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)","captures":{"1":{"name":"keyword.declaration.end.scala"},"2":{"name":"entity.name.declaration"}}},{"name":"keyword.control.exception.scala","match":"\\b(catch|finally|try)\\b"},{"name":"keyword.operator.comparison.scala","match":"(==?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"},{"name":"keyword.operator.arithmetic.scala","match":"(\\-|\\+|\\*|/(?![/*])|%|~)"},{"name":"keyword.operator.logical.scala","match":"(?\u003c![!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]|_)(!|\u0026\u0026|\\|\\|)(?![!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}])"},{"name":"keyword.operator.scala","match":"(\u003c-|←|-\u003e|→|=\u003e|⇒|\\?|\\:+|@|\\|)+"}]},"meta-bounds":{"name":"meta.bounds.scala","match":"\u003c%|=:=|\u003c:\u003c|\u003c%\u003c|\u003e:|\u003c:"},"meta-brackets":{"patterns":[{"name":"punctuation.section.block.begin.scala","match":"\\{"},{"name":"punctuation.section.block.end.scala","match":"\\}"},{"name":"meta.bracket.scala","match":"{|}|\\(|\\)|\\[|\\]"}]},"meta-colons":{"patterns":[{"name":"meta.colon.scala","match":"(?\u003c!:):(?!:)"}]},"parameter-list":{"patterns":[{"match":"(?\u003c=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+","captures":{"1":{"name":"variable.parameter.scala"},"2":{"name":"meta.colon.scala"}}}]},"qualifiedClassName":{"match":"(\\b([A-Z][\\w]*)(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)","captures":{"1":{"name":"entity.name.class"}}},"scala-quoted":{"patterns":[{"name":"punctuation.section.block.begin.scala","match":"['$]\\{(?!')"},{"name":"meta.bracket.scala","match":"'\\[(?!')"}]},"scala-symbol":{"name":"constant.other.symbol.scala","match":"(?\u003e'(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))(?!')"},"script-header":{"name":"comment.block.shebang.scala","match":"^#!(.*)$","captures":{"1":{"name":"string.unquoted.shebang.scala"}}},"singleton-type":{"match":"\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])","captures":{"1":{"name":"keyword.type.scala"}}},"storage-modifiers":{"patterns":[{"name":"storage.modifier.access","match":"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b"},{"name":"storage.modifier.other","match":"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b"},{"name":"storage.modifier.other","match":"(?\u003c=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)"}]},"string-interpolation":{"patterns":[{"name":"constant.character.escape.interpolation.scala","match":"\\$\\$"},{"name":"meta.template.expression.scala","match":"(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)","captures":{"1":{"name":"punctuation.definition.template-expression.begin.scala"}}},{"name":"meta.template.expression.scala","contentName":"meta.embedded.line.scala","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.scala"}}}]},"strings":{"patterns":[{"name":"string.quoted.triple.scala","begin":"\"\"\"","end":"\"\"\"(?!\")","patterns":[{"name":"constant.character.escape.scala","match":"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.scala"}}},{"begin":"\\b(raw)(\"\"\")","end":"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"string.quoted.triple.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"begin":"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")","end":"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"include":"#string-interpolation"},{"name":"constant.character.escape.scala","match":"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"},{"name":"string.quoted.triple.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"name":"string.quoted.double.scala","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-string-escape.scala","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.scala"}}},{"begin":"\\b(raw)(\")","end":"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"string.quoted.double.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"begin":"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(\")","end":"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-string-escape.scala","match":"\\\\."},{"name":"string.quoted.double.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}}]},"using":{"patterns":[{"match":"(?\u003c=\\()\\s*(using)\\s","captures":{"1":{"name":"keyword.declaration.scala"}}}]},"xml-doublequotedString":{"name":"string.quoted.double.xml","begin":"\"","end":"\"","patterns":[{"include":"#xml-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}},"xml-embedded-content":{"patterns":[{"name":"meta.source.embedded.scala","begin":"{","end":"}","patterns":[{"include":"#code"}],"captures":{"0":{"name":"meta.bracket.scala"}}},{"match":" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}}},{"include":"#xml-doublequotedString"},{"include":"#xml-singlequotedString"}]},"xml-entity":{"name":"constant.character.entity.xml","match":"(\u0026)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}}},"xml-literal":{"patterns":[{"name":"meta.tag.no-content.xml","begin":"(\u003c)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^\u003e]*)?\u003e\u003c/\\2\u003e)","end":"(\u003e(\u003c))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(\u003e)","patterns":[{"include":"#xml-embedded-content"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"meta.scope.between-tag-pair.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}}},{"name":"meta.tag.xml","begin":"(\u003c/?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^\u003e]*?\u003e)","end":"(/?\u003e)","patterns":[{"include":"#xml-embedded-content"}],"captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}}},{"include":"#xml-entity"}]},"xml-singlequotedString":{"name":"string.quoted.single.xml","begin":"'","end":"'","patterns":[{"include":"#xml-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}}}}
1
+ {"name":"Scala","scopeName":"source.scala","patterns":[{"include":"#code"}],"repository":{"backQuotedVariable":{"match":"`[^`]+`"},"block-comments":{"patterns":[{"name":"comment.block.empty.scala","match":"/\\*\\*/","captures":{"0":{"name":"punctuation.definition.comment.scala"}}},{"name":"comment.block.documentation.scala","begin":"^\\s*(/\\*\\*)(?!/)","end":"\\*/","patterns":[{"match":"(@param)\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.scaladoc.scala"},"2":{"name":"variable.parameter.scala"}}},{"match":"(@(?:tparam|throws))\\s+(\\S+)","captures":{"1":{"name":"keyword.other.documentation.scaladoc.scala"},"2":{"name":"entity.name.class"}}},{"name":"keyword.other.documentation.scaladoc.scala","match":"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b"},{"match":"(\\[\\[)([^\\]]+)(\\]\\])","captures":{"1":{"name":"punctuation.definition.documentation.link.scala"},"2":{"name":"string.other.link.title.markdown"},"3":{"name":"punctuation.definition.documentation.link.scala"}}},{"include":"#block-comments"}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.scala"}}},{"name":"comment.block.scala","begin":"/\\*","end":"\\*/","patterns":[{"include":"#block-comments"}],"captures":{"0":{"name":"punctuation.definition.comment.scala"}}}]},"char-literal":{"name":"string.quoted.other constant.character.literal.scala","begin":"'","end":"'|$","patterns":[{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-character-escape.scala","match":"\\\\."},{"name":"invalid.illegal.character-literal-too-long","match":"[^']{2,}"},{"name":"invalid.illegal.character-literal-too-long","match":"(?\u003c!')[^']"}],"beginCaptures":{"0":{"name":"punctuation.definition.character.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.character.end.scala"}}},"code":{"patterns":[{"include":"#script-header"},{"include":"#storage-modifiers"},{"include":"#declarations"},{"include":"#inheritance"},{"include":"#extension"},{"include":"#imports"},{"include":"#exports"},{"include":"#comments"},{"include":"#strings"},{"include":"#initialization"},{"include":"#xml-literal"},{"include":"#keywords"},{"include":"#using"},{"include":"#constants"},{"include":"#scala-symbol"},{"include":"#singleton-type"},{"include":"#inline"},{"include":"#scala-quoted"},{"include":"#char-literal"},{"include":"#empty-parentheses"},{"include":"#parameter-list"},{"include":"#qualifiedClassName"},{"include":"#backQuotedVariable"},{"include":"#curly-braces"},{"include":"#meta-brackets"},{"include":"#meta-bounds"},{"include":"#meta-colons"}]},"comments":{"patterns":[{"include":"#block-comments"},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.scala","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.scala"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.scala"}}}]},"constants":{"patterns":[{"name":"constant.language.scala","match":"\\b(false|null|true)\\b"},{"name":"constant.numeric.scala","match":"\\b(0[xX][0-9a-fA-F_]*)\\b"},{"name":"constant.numeric.scala","match":"\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b"},{"name":"constant.numeric.scala","match":"(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b"},{"name":"variable.language.scala","match":"\\b(this|super)\\b"}]},"curly-braces":{"begin":"\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.scala"}}},"declarations":{"patterns":[{"match":"\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.function.declaration"}}},{"match":"\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.class.declaration"}}},{"match":"\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"keyword.declaration.scala"},"3":{"name":"entity.name.class.declaration"}}},{"match":"(?\u003c!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.type.declaration"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?=\\s*,)","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"}}},{"match":"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.declaration.stable.scala"},"2":{"name":"keyword.declaration.volatile.scala"},"3":{"name":"variable.other.declaration.scala"}}},{"match":"\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?","captures":{"1":{"name":"keyword.other.scoping.scala"},"2":{"name":"keyword.declaration.scala"},"3":{"name":"entity.name.class.declaration"}}},{"name":"meta.package.scala","begin":"\\b(package)\\s+","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"entity.name.package.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.package","match":"\\."}],"beginCaptures":{"1":{"name":"keyword.other.import.scala"}}},{"match":"\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.name.given.declaration"}}}]},"empty-parentheses":{"name":"meta.parentheses.scala","match":"(\\(\\))","captures":{"1":{"name":"meta.bracket.scala"}}},"exports":{"name":"meta.export.scala","begin":"\\b(export)\\s+(given\\s+)?","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"entity.name.export.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.export","match":"\\."},{"name":"meta.export.selector.scala","begin":"{","end":"}","patterns":[{"match":"(?x)\\s*(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))\\s*(=\u003e)\\s*(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))\\s*","captures":{"1":{"name":"entity.name.export.renamed-from.scala"},"2":{"name":"keyword.other.arrow.scala"},"3":{"name":"entity.name.export.renamed-to.scala"}}},{"name":"entity.name.export.scala","match":"([^\\s.,}]+)"}],"beginCaptures":{"0":{"name":"meta.bracket.scala"}},"endCaptures":{"0":{"name":"meta.bracket.scala"}}}],"beginCaptures":{"1":{"name":"keyword.other.export.scala"},"2":{"name":"keyword.other.export.given.scala"}}},"extension":{"patterns":[{"match":"^\\s*(extension)\\s+(?=[\\[\\(])","captures":{"1":{"name":"keyword.declaration.scala"}}}]},"imports":{"name":"meta.import.scala","begin":"\\b(import)\\s+","end":"(?\u003c=[\\n;])","patterns":[{"include":"#comments"},{"name":"keyword.other.import.given.scala","match":"\\b(given)\\b"},{"name":"entity.name.class.import.scala","match":"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?"},{"name":"entity.name.import.scala","match":"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))"},{"name":"punctuation.definition.import","match":"\\."},{"name":"meta.import.selector.scala","begin":"{","end":"}","patterns":[{"match":"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=\u003e)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))\\s*","captures":{"1":{"name":"keyword.other.import.given.scala"},"2":{"name":"entity.name.class.import.renamed-from.scala"},"3":{"name":"entity.name.import.renamed-from.scala"},"4":{"name":"keyword.other.arrow.scala"},"5":{"name":"entity.name.class.import.renamed-to.scala"},"6":{"name":"entity.name.import.renamed-to.scala"}}},{"name":"keyword.other.import.given.scala","match":"\\b(given)\\b"},{"match":"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)))","captures":{"1":{"name":"keyword.other.import.given.scala"},"2":{"name":"entity.name.class.import.scala"},"3":{"name":"entity.name.import.scala"}}}],"beginCaptures":{"0":{"name":"meta.bracket.scala"}},"endCaptures":{"0":{"name":"meta.bracket.scala"}}}],"beginCaptures":{"1":{"name":"keyword.other.import.scala"}}},"inheritance":{"patterns":[{"match":"\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=\u003e)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?","captures":{"1":{"name":"keyword.declaration.scala"},"2":{"name":"entity.other.inherited-class.scala"}}}]},"initialization":{"match":"\\b(new)\\b","captures":{"1":{"name":"keyword.declaration.scala"}}},"inline":{"patterns":[{"name":"storage.modifier.other","match":"\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)"},{"name":"keyword.control.flow.scala","match":"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)"}]},"keywords":{"patterns":[{"name":"keyword.control.flow.jump.scala","match":"\\b(return|throw)\\b"},{"name":"support.function.type-of.scala","match":"\\b(classOf|isInstanceOf|asInstanceOf)\\b"},{"name":"keyword.control.flow.scala","match":"\\b(else|if|then|do|while|for|yield|match|case)\\b"},{"name":"keyword.control.flow.end.scala","match":"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"name":"keyword.declaration.stable.end.scala","match":"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"name":"keyword.declaration.volatile.end.scala","match":"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"match":"^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)","captures":{"1":{"name":"keyword.declaration.end.scala"},"2":{"name":"keyword.declaration.end.scala"},"3":{"name":"entity.name.type.declaration"}}},{"name":"keyword.control.exception.scala","match":"\\b(catch|finally|try)\\b"},{"name":"keyword.control.exception.end.scala","match":"^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{"match":"^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)","captures":{"1":{"name":"keyword.declaration.end.scala"},"2":{"name":"entity.name.declaration"}}},{"name":"keyword.operator.comparison.scala","match":"(==?|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e)"},{"name":"keyword.operator.arithmetic.scala","match":"(\\-|\\+|\\*|/(?![/*])|%|~)"},{"name":"keyword.operator.logical.scala","match":"(?\u003c![!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]|_)(!|\u0026\u0026|\\|\\|)(?![!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}])"},{"name":"keyword.operator.scala","match":"(\u003c-|←|-\u003e|→|=\u003e|⇒|\\?|\\:+|@|\\|)+"}]},"meta-bounds":{"name":"meta.bounds.scala","match":"\u003c%|=:=|\u003c:\u003c|\u003c%\u003c|\u003e:|\u003c:"},"meta-brackets":{"patterns":[{"name":"punctuation.section.block.begin.scala","match":"\\{"},{"name":"punctuation.section.block.end.scala","match":"\\}"},{"name":"meta.bracket.scala","match":"{|}|\\(|\\)|\\[|\\]"}]},"meta-colons":{"patterns":[{"name":"meta.colon.scala","match":"(?\u003c!:):(?!:)"}]},"parameter-list":{"patterns":[{"match":"(?\u003c=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+","captures":{"1":{"name":"variable.parameter.scala"},"2":{"name":"meta.colon.scala"}}}]},"qualifiedClassName":{"match":"(\\b([A-Z][\\w]*)(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?)","captures":{"1":{"name":"entity.name.class"}}},"scala-quoted":{"patterns":[{"name":"punctuation.section.block.begin.scala","match":"['$]\\{(?!')"},{"name":"meta.bracket.scala","match":"'\\[(?!')"}]},"scala-symbol":{"name":"constant.other.symbol.scala","match":"(?\u003e'(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+))(?!')"},"script-header":{"name":"comment.block.shebang.scala","match":"^#!(.*)$","captures":{"1":{"name":"string.unquoted.shebang.scala"}}},"singleton-type":{"match":"\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])","captures":{"1":{"name":"keyword.type.scala"}}},"storage-modifiers":{"patterns":[{"name":"storage.modifier.access","match":"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b"},{"name":"storage.modifier.other","match":"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b"},{"name":"storage.modifier.other","match":"(?\u003c=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)"}]},"string-interpolation":{"patterns":[{"name":"constant.character.escape.interpolation.scala","match":"\\$\\$"},{"name":"meta.template.expression.scala","match":"(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)","captures":{"1":{"name":"punctuation.definition.template-expression.begin.scala"}}},{"name":"meta.template.expression.scala","contentName":"meta.embedded.line.scala","begin":"\\$\\{","end":"\\}","patterns":[{"include":"#code"}],"beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.scala"}}}]},"strings":{"patterns":[{"name":"string.quoted.triple.scala","begin":"\"\"\"","end":"\"\"\"(?!\")","patterns":[{"name":"constant.character.escape.scala","match":"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.scala"}}},{"begin":"\\b(raw)(\"\"\")","end":"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"string.quoted.triple.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"begin":"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")","end":"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"include":"#string-interpolation"},{"name":"constant.character.escape.scala","match":"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}"},{"name":"string.quoted.triple.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"name":"string.quoted.double.scala","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-string-escape.scala","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.scala"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.scala"}}},{"begin":"\\b(raw)(\")","end":"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"string.quoted.double.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}},{"begin":"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?\u003c=_)[!#%\u0026*+\\-\\/:\u003c\u003e=?@^|~\\p{Sm}\\p{So}]+)?))(\")","end":"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])","patterns":[{"name":"constant.character.escape.scala","match":"\\$[\\$\"]"},{"include":"#string-interpolation"},{"name":"constant.character.escape.scala","match":"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})"},{"name":"invalid.illegal.unrecognized-string-escape.scala","match":"\\\\."},{"name":"string.quoted.double.interpolated.scala","match":"."}],"beginCaptures":{"1":{"name":"keyword.interpolation.scala"},"2":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},"endCaptures":{"1":{"name":"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{"name":"invalid.illegal.unrecognized-string-escape.scala"}}}]},"using":{"patterns":[{"match":"(?\u003c=\\()\\s*(using)\\s","captures":{"1":{"name":"keyword.declaration.scala"}}}]},"xml-doublequotedString":{"name":"string.quoted.double.xml","begin":"\"","end":"\"","patterns":[{"include":"#xml-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}},"xml-embedded-content":{"patterns":[{"name":"meta.source.embedded.scala","begin":"{","end":"}","patterns":[{"include":"#code"}],"captures":{"0":{"name":"meta.bracket.scala"}}},{"match":" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=","captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}}},{"include":"#xml-doublequotedString"},{"include":"#xml-singlequotedString"}]},"xml-entity":{"name":"constant.character.entity.xml","match":"(\u0026)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}}},"xml-literal":{"patterns":[{"name":"meta.tag.no-content.xml","begin":"(\u003c)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^\u003e]*)?\u003e\u003c/\\2\u003e)","end":"(\u003e(\u003c))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(\u003e)","patterns":[{"include":"#xml-embedded-content"}],"beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"}},"endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"meta.scope.between-tag-pair.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"entity.name.tag.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}}},{"name":"meta.tag.xml","begin":"(\u003c/?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^\u003e]*?\u003e)","end":"(/?\u003e)","patterns":[{"include":"#xml-embedded-content"}],"captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}}},{"include":"#xml-entity"}]},"xml-singlequotedString":{"name":"string.quoted.single.xml","begin":"'","end":"'","patterns":[{"include":"#xml-entity"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}}}}
@@ -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"}}}]},"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":"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"}}}]}}}