Files
Basalt2/node_modules/shiki/dist/languages/scala.tmLanguage-78b9a846.mjs
Robert Jelic 5c15cf28fa Test
2025-02-10 07:12:35 +01:00

4 lines
26 KiB
JavaScript

var scala_tmLanguage = {fileTypes:["scala"],firstLineMatch:"^#!/.*\\b\\w*scala\\b",foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~S",repository:{"empty-parentheses":{match:"(\\(\\))",captures:{"1":{name:"meta.bracket.scala"}},name:"meta.parentheses.scala"},imports:{end:"(?<=[\\n;])",begin:"\\b(import)\\s+",beginCaptures:{"1":{name:"keyword.other.import.scala"}},patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"},{end:"}",begin:"{",beginCaptures:{"0":{name:"meta.bracket.scala"}},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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\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"}}},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\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"}}}],endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.import.selector.scala"}],name:"meta.import.scala"},exports:{end:"(?<=[\\n;])",begin:"\\b(export)\\s+",beginCaptures:{"1":{name:"keyword.other.export.scala"}},patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.export.scala"},{match:"\\.",name:"punctuation.definition.export"},{end:"}",begin:"{",beginCaptures:{"0":{name:"meta.bracket.scala"}},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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*",captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.renamed-from.scala"},"3":{name:"entity.name.export.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.export.renamed-to.scala"},"6":{name:"entity.name.export.renamed-to.scala"}}},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))",captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.scala"},"3":{name:"entity.name.export.scala"}}}],endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.export.selector.scala"}],name:"meta.export.scala"},constants:{patterns:[{match:"\\b(false|null|true)\\b",name:"constant.language.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:"constant.numeric.scala"},{match:"\\b(this|super)\\b",name:"variable.language.scala"}]},"script-header":{match:"^#!(.*)$",captures:{"1":{name:"string.unquoted.shebang.scala"}},name:"comment.block.shebang.scala"},code:{patterns:[{include:"#using-directive"},{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:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{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"}]},strings:{patterns:[{end:"\"\"\"(?!\")",begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},patterns:[{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"}],endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala"},{begin:"\\b(raw)(\"\"\")",end:"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.triple.interpolated.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")",end:"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{include:"#string-interpolation"},{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"},{match:".",name:"string.quoted.triple.interpolated.scala"}],endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}}},{end:"\"",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"}],endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala"},{begin:"\\b(raw)(\")",end:"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.double.interpolated.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\")",end:"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"},{match:".",name:"string.quoted.double.interpolated.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:"(?<=\\()\\s*(using)\\s",captures:{"1":{name:"keyword.declaration.scala"}}}]},"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",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.scala"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.scala"}},patterns:[{include:"#code"}],contentName:"meta.embedded.line.scala"}]},"xml-entity":{match:"(&)([: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"}},name:"constant.character.entity.xml"},"xml-singlequotedString":{end:"'",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},patterns:[{include:"#xml-entity"}],endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml"},"meta-colons":{patterns:[{match:"(?<!:):(?!:)",name:"meta.colon.scala"}],comment:"For themes: Matching type colons"},keywords:{patterns:[{match:"\\b(return|throw)\\b",name:"keyword.control.flow.jump.scala"},{match:"\\b(classOf|isInstanceOf|asInstanceOf)\\b",name:"support.function.type-of.scala"},{match:"\\b(else|if|then|do|while|for|yield|match|case)\\b",name:"keyword.control.flow.scala"},{match:"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.flow.end.scala"},{match:"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.stable.end.scala"},{match:"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.volatile.end.scala"},{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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:"\\b(catch|finally|try)\\b",name:"keyword.control.exception.scala"},{match:"^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.exception.end.scala"},{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"entity.name.declaration"}}},{match:"(==?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.scala"},{match:"(\\-|\\+|\\*|/(?![/*])|%|~)",name:"keyword.operator.arithmetic.scala"},{match:"(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])",name:"keyword.operator.logical.scala"},{match:"(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+",name:"keyword.operator.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])",captures:{"1":{name:"keyword.type.scala"}}},inline:{patterns:[{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)",name:"storage.modifier.other"},{match:"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)",name:"keyword.control.flow.scala"}]},"scala-quoted-or-symbol":{patterns:[{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')",captures:{"1":{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},"2":{name:"constant.other.symbol.scala"}}},{match:"'(?=\\s*\\{(?!'))",name:"keyword.control.flow.staging.scala"},{match:"'(?=\\s*\\[(?!'))",name:"keyword.control.flow.staging.scala"},{match:"\\$(?=\\s*\\{)",name:"keyword.control.flow.staging.scala"}]},"xml-doublequotedString":{end:"\"",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},patterns:[{include:"#xml-entity"}],endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml"},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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}}},{match:"(?<!\\.)\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()",captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"keyword.declaration.volatile.scala"}}},{match:"\\b(val)\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?",captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"variable.stable.declaration.scala"}}},{match:"\\b(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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?",captures:{"1":{name:"keyword.declaration.volatile.scala"},"2":{name:"variable.volatile.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.other.scoping.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}}},{end:"(?<=[\\n;])",begin:"\\b(package)\\s+",beginCaptures:{"1":{name:"keyword.other.import.scala"}},patterns:[{include:"#comments"},{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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.package.scala"},{match:"\\.",name:"punctuation.definition.package"}],name:"meta.package.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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.given.declaration"}}}]},"char-literal":{end:"'|$",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.character.begin.scala"}},patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-character-escape.scala"},{match:"[^']{2,}",name:"invalid.illegal.character-literal-too-long"},{match:"(?<!')[^']",name:"invalid.illegal.character-literal-too-long"}],endCaptures:{"0":{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala"},initialization:{match:"\\b(new)\\b",captures:{"1":{name:"keyword.declaration.scala"}}},"curly-braces":{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.block.begin.scala"}},endCaptures:{"0":{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},"meta-brackets":{patterns:[{match:"\\{",comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",name:"punctuation.section.block.begin.scala"},{match:"\\}",comment:"The punctuation.section.*.end is needed for return snippet in source bundle",name:"punctuation.section.block.end.scala"},{match:"{|}|\\(|\\)|\\[|\\]",name:"meta.bracket.scala"}],comment:"For themes: Brackets look nice when colored."},qualifiedClassName:{match:"(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)",captures:{"1":{name:"entity.name.class"}}},backQuotedVariable:{match:"`[^`]+`"},"storage-modifiers":{patterns:[{match:"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b",name:"storage.modifier.access"},{match:"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b",name:"storage.modifier.other"},{match:"(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)",name:"storage.modifier.other"}]},"meta-bounds":{match:"<%|=:=|<:<|<%<|>:|<:",comment:"For themes: Matching view bounds",name:"meta.bounds.scala"},"using-directive":{end:"\\n",begin:"^\\s*(//>)\\s*(using)[^\\S\\n]+(?:(\\S+))?",beginCaptures:{"1":{name:"punctuation.definition.comment.scala"},"2":{name:"keyword.other.import.scala"},"3":{patterns:[{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"}]}},patterns:[{include:"#constants"},{include:"#strings"},{match:"[^\\s,]+",name:"string.quoted.double.scala"}],name:"comment.line.shebang.scala"},comments:{patterns:[{include:"#block-comments"},{end:"(?!\\G)",begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scala"}},patterns:[{end:"\\n",begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.line.double-slash.scala"}]}]},"block-comments":{patterns:[{match:"/\\*\\*/",captures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.empty.scala"},{end:"\\*/",begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{"1":{name:"punctuation.definition.comment.scala"}},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"}}},{match:"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b",name:"keyword.other.documentation.scaladoc.scala"},{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"}],endCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala"},{end:"\\*/",begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.scala"}},patterns:[{include:"#block-comments"}],name:"comment.block.scala"}]},"xml-embedded-content":{patterns:[{end:"}",begin:"{",patterns:[{include:"#code"}],captures:{"0":{name:"meta.bracket.scala"}},name:"meta.source.embedded.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"}]},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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class"}}}]},extension:{patterns:[{match:"^\\s*(extension)\\s+(?=[\\[\\(])",captures:{"1":{name:"keyword.declaration.scala"}}}]},"parameter-list":{patterns:[{match:"(?<=[^\\._$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]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+",captures:{"1":{name:"variable.parameter.scala"},"2":{name:"meta.colon.scala"}}}]},"xml-literal":{patterns:[{end:"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)",begin:"(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)",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"}},patterns:[{include:"#xml-embedded-content"}],comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",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.no-content.xml"},{end:"(/?>)",begin:"(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)",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"}},name:"meta.tag.xml"},{include:"#xml-entity"}]}},uuid:"158C0929-299A-40C8-8D89-316BE0C446E8",patterns:[{include:"#code"}],name:"scala",scopeName:"source.scala"};
export { scala_tmLanguage as default };