{ "scopeName": "source.perl6fe", "name": "Perl 6 FE", "fileTypes": [ "p6", "pl6", "pm6", "t", "t6", "pod6", "nqp" ], "firstLineMatch": "(?x) ^ \\s* (?: use \\s v6 | =begin \\s pod | =comment | \\#!(?: perl6|/.*perl6 (?! \\S)) | my\\s*class )", "patterns": [ { "begin": "^\\s*(=)(finish)", "beginCaptures": { "1": { "name": "storage.modifier.block.finish.perl6fe" }, "2": { "name": "keyword.operator.block.finish.perl6fe" } }, "contentName": "comment.block.finish.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] }, { "include": "#comment-block-delimited" }, { "begin": "^\\s*(=)(?:(para)|(for)\\s+(\\w+))", "beginCaptures": { "1": { "name": "storage.modifier.block.paragraph.perl6fe" }, "2": { "name": "keyword.operator.block.paragraph.perl6fe" }, "3": { "name": "entity.other.attribute-name.paragraph.perl6fe" } }, "end": "(?=^\\s*$|^\\s*=\\w+.*$)", "contentName": "comment.block.paragraph.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] }, { "include": "#comment-block-abbreviated" }, { "match": "^\\s*(#)([\\|\\=])(.*)\\n", "captures": { "1": { "name": "comment.punctuation.pound.perl6fe" }, "2": { "name": "meta.declarator.perl6fe" }, "3": { "name": "comment.inline.declarator.perl6fe" } }, "name": "meta.documentation.block.declarator.perl6fe" }, { "begin": "\\s*#`\\(\\(\\(", "end": "\\)\\)\\)", "name": "comment.multiline.hash-tick.triple_paren.perl6fe", "patterns": [ { "begin": "\\(\\(\\(", "end": "\\)\\)\\)", "name": "comment.internal.triple_paren.perl6fe" } ] }, { "begin": "\\s*#`\\[\\[\\[", "end": "\\]\\]\\]", "name": "comment.multiline.hash-tick.triple_bracket.perl6fe", "patterns": [ { "begin": "\\[\\[\\[", "end": "\\]\\]\\]", "name": "comment.internal.triple_bracket.perl6fe" } ] }, { "begin": "\\s*#`\\{\\{\\{", "end": "\\}\\}\\}", "name": "comment.multiline.hash-tick.triple_brace.perl6fe", "patterns": [ { "begin": "\\{\\{\\{", "end": "\\}\\}\\}", "name": "comment.internal.triple_brace.perl6fe" } ] }, { "begin": "\\s*#`<<<", "end": ">>>", "name": "comment.multiline.hash-tick.triple_angle.perl6fe", "patterns": [ { "begin": "<<<", "end": ">>>", "name": "comment.internal.triple_angle.perl6fe" } ] }, { "begin": "\\s*#`<<", "end": ">>", "name": "comment.multiline.hash-tick.double_angle.perl6fe", "patterns": [ { "begin": "<<", "end": ">>", "name": "comment.internal.double_angle.perl6fe" } ] }, { "begin": "\\s*#`\\(\\(", "end": "\\)\\)", "name": "comment.multiline.hash-tick.double_paren.perl6fe", "patterns": [ { "begin": "\\(\\(", "end": "\\)\\)", "name": "comment.internal.double_paren.perl6fe" } ] }, { "begin": "\\s*#`\\[\\[", "end": "\\]\\]", "name": "comment.multiline.hash-tick.double_bracket.perl6fe", "patterns": [ { "begin": "\\[\\[", "end": "\\]\\]", "name": "comment.internal.double_bracket.perl6fe" } ] }, { "begin": "\\s*#`{{", "end": "}}", "name": "comment.multiline.hash-tick.double_brace.perl6fe", "patterns": [ { "begin": "{{", "end": "}}", "name": "comment.internal.double_brace.perl6fe" } ] }, { "begin": "\\s*#`{", "end": "}", "name": "comment.multiline.hash-tick.brace.perl6fe", "patterns": [ { "begin": "{", "end": "}", "name": "comment.internal.brace.perl6fe" } ] }, { "begin": "\\s*#`<", "end": ">", "name": "comment.multiline.hash-tick.angle.perl6fe", "patterns": [ { "begin": "<", "end": ">", "name": "comment.internal.angle.perl6fe" } ] }, { "begin": "\\s*#`\\(", "end": "\\)", "name": "comment.multiline.hash-tick.paren.perl6fe", "patterns": [ { "begin": "\\(", "end": "\\)", "name": "comment.internal.paren.perl6fe" } ] }, { "begin": "\\s*#`\\[", "end": "\\]", "name": "comment.multiline.hash-tick.bracket.perl6fe", "patterns": [ { "begin": "\\[", "end": "\\]", "name": "comment.internal.bracket.perl6fe" } ] }, { "begin": "\\s*#`“", "end": "”", "name": "comment.multiline.hash-tick.left_double_right_double.perl6fe", "patterns": [ { "begin": "“", "end": "”", "name": "comment.internal.left_double_right_double.perl6fe" } ] }, { "begin": "\\s*#`„", "end": "”|“", "name": "comment.multiline.hash-tick.left_double-low-q_right_double.perl6fe", "patterns": [ { "begin": "„", "end": "”|“", "name": "comment.internal.left_double-low-q_right_double.perl6fe" } ] }, { "begin": "\\s*#`‘", "end": "’", "name": "comment.multiline.hash-tick.left_single_right_single.perl6fe", "patterns": [ { "begin": "‘", "end": "’", "name": "comment.internal.left_single_right_single.perl6fe" } ] }, { "begin": "\\s*#`‚", "end": "‘", "name": "comment.multiline.hash-tick.low-q_left_single.perl6fe", "patterns": [ { "begin": "‚", "end": "‘", "name": "comment.internal.low-q_left_single.perl6fe" } ] }, { "begin": "\\s*#`「", "end": "」", "name": "comment.multiline.hash-tick.fw_cornerbracket.perl6fe", "patterns": [ { "begin": "「", "end": "」", "name": "comment.internal.fw_cornerbracket.perl6fe" } ] }, { "begin": "\\s*#`「", "end": "」", "name": "comment.multiline.hash-tick.hw_cornerbracket.perl6fe", "patterns": [ { "begin": "「", "end": "」", "name": "comment.internal.hw_cornerbracket.perl6fe" } ] }, { "begin": "\\s*#`«", "end": "»", "name": "comment.multiline.hash-tick.chevron.perl6fe", "patterns": [ { "begin": "«", "end": "»", "name": "comment.internal.chevron.perl6fe" } ] }, { "begin": "\\s*#`⟅", "end": "⟆", "name": "comment.multiline.hash-tick.s-shaped-bag-delimiter.perl6fe", "patterns": [ { "begin": "⟅", "end": "⟆", "name": "comment.internal.s-shaped-bag-delimiter.perl6fe" } ] }, { "begin": "“", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "”", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.left_double_right_double.perl6fe", "patterns": [ { "match": "\\\\[“”abtnfre\\\\\\{\\}]", "name": "constant.character.escape.perl6fe" }, { "include": "#interpolation" }, { "include": "source.quoting.perl6fe#q_left_double_right_double_string_content" } ] }, { "begin": "„", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "”|“", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.left_double-low-q_right_double.perl6fe", "patterns": [ { "match": "\\\\[„”|“abtnfre\\\\\\{\\}]", "name": "constant.character.escape.perl6fe" }, { "include": "#interpolation" }, { "include": "source.quoting.perl6fe#q_left_double-low-q_right_double_string_content" } ] }, { "begin": "(?<=\\W|^)‘", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "’", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.single.left_single_right_single.perl6fe", "patterns": [ { "match": "\\\\[‘’\\\\]", "name": "constant.character.escape.perl6fe" }, { "include": "source.quoting.perl6fe#q_left_single_right_single_string_content" } ] }, { "begin": "(?<=\\W|^)‚", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "‘", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.single.low-q_left_single.perl6fe", "patterns": [ { "match": "\\\\[‚‘\\\\]", "name": "constant.character.escape.perl6fe" }, { "include": "source.quoting.perl6fe#q_low-q_left_single_string_content" } ] }, { "begin": "(?<=\\W|^)'", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.single.single.perl6fe", "patterns": [ { "match": "\\\\['\\\\]", "name": "constant.character.escape.perl6fe" }, { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.double.perl6fe", "patterns": [ { "match": "\\\\[\"abtnfre\\\\\\{\\}]", "name": "constant.character.escape.perl6fe" }, { "include": "#interpolation" }, { "include": "source.quoting.perl6fe#q_double_string_content" } ] }, { "begin": "”", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.perl6fe" } }, "end": "”", "endCaptures": { "0": { "name": "punctuation.definition.string.end.perl6fe" } }, "name": "string.quoted.right_double_right_double.perl6fe", "patterns": [ { "match": "\\\\[”abtnfre\\\\\\{\\}]", "name": "constant.character.escape.perl6fe" }, { "include": "#interpolation" }, { "include": "source.quoting.perl6fe#q_right_double_right_double_string_content" } ] }, { "begin": "(^[ \\t]+)?(?=#)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.perl6fe" } }, "end": "(?!\\G)", "patterns": [ { "begin": "#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.perl6fe" } }, "end": "\\n", "name": "comment.line.number-sign.perl6fe" } ] }, { "match": "(?x) \\x{2208}|\\(elem\\)|\\x{2209}|\\!\\(elem\\)| \\x{220B}|\\(cont\\)|\\x{220C}|\\!\\(cont\\)| \\x{2286}|\\(<=\\) |\\x{2288}|\\!\\(<=\\) | \\x{2282}|\\(<\\) |\\x{2284}|\\!\\(<\\) | \\x{2287}|\\(>=\\) |\\x{2289}|\\!\\(>=\\) | \\x{2283}|\\(>\\) |\\x{2285}|\\!\\(>\\) | \\x{227C}|\\(<\\+\\)|\\x{227D}|\\(>\\+\\) | \\x{222A}|\\(\\|\\) |\\x{2229}|\\(&\\) | \\x{2216}|\\(\\-\\) |\\x{2296}|\\(\\^\\) | \\x{228D}|\\(\\.\\) |\\x{228E}|\\(\\+\\)", "name": "keyword.operator.setbagmix.perl6fe" }, { "captures": { "1": { "name": "storage.type.class.perl6fe" }, "3": { "name": "entity.name.type.class.perl6fe" } }, "match": "(?x) ( class|enum|grammar|knowhow|module| package|role|slang|subset|monitor|actor ) (\\s+) ( ( (?:::|')? (?: ([a-zA-Z_À-ÿ\\$]) ([a-zA-Z0-9_À-ÿ\\$]|[\\-'][a-zA-Z0-9_À-ÿ\\$])* ) )+ )", "name": "meta.class.perl6fe" }, { "include": "#p5_regex" }, { "match": "(?x)\n(?<=\n ^\n | ^\\s\n | [\\s\\(] [^\\p{Nd}\\p{L}]\n | ~~\\s|~~\\s\\s|match\\(\n)\n([/]) # Solidus\n(.*?) # Regex contents\n(?: (?|~~) \\s*\n(?:\n (m|rx|s)?\n (\n (?:\n (? ) \\s*\n(?:\n (m|rx|s)\n (\n (?:\n (?\\-\\}\\{])", "beginCaptures": { "1": { "name": "string.regexp.construct.perl6fe" }, "2": { "name": "entity.name.section.adverb.regexp.perl6fe" }, "3": { "name": "punctuation.definition.regexp.perl6fe" } }, "end": "(?x) (?: (?|\\S)", "beginCaptures": { "1": { "name": "storage.type.declare.regexp.named.perl6fe" } }, "end": "(? ) (?=[\\s\\{])", "contentName": "string.array.words.perl6fe" }, { "begin": "«", "end": "(?x) \\\\\\\\|(? )", "endCaptures": { "1": { "name": "span.keyword.operator.array.words.perl6fe" } }, "contentName": "string.array.words.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_bracket_string_content" } ] }, { "match": "(?x) (?: [+:\\-.*/] | \\|\\| )? (?=~] )", "name": "storage.modifier.assignment.perl6fe" }, { "begin": "(?x) (? ) (?= [^<]* (?: [^<] ) > )", "beginCaptures": { "1": { "name": "span.keyword.operator.array.words.perl6fe" } }, "end": "(?x) \\\\\\\\|(? )", "endCaptures": { "1": { "name": "span.keyword.operator.array.words.perl6fe" } }, "contentName": "string.array.words.perl6fe" }, { "match": "\\b(for|loop|repeat|while|until|gather|given)(?!\\-)\\b", "name": "keyword.control.repeat.perl6fe" }, { "match": "(?x)\n\\b (?)", "name": "storage.modifier.type.constraints.perl6fe" }, { "match": "(?x)\\b(?)", "name": "keyword.control.control-handlers.perl6fe" }, { "match": "(?x)\\b(?)", "name": "entity.name.type.trait.perl6fe" }, { "match": "\\b(NaN|Inf)(?!\\-)\\b", "name": "constant.numeric.perl6fe" }, { "match": "\\b(True|False)\\b", "name": "constant.language.boolean.perl6fe" }, { "match": "(?x)\\b(?)", "name": "constant.language.pragma.perl6fe" }, { "match": "(?x)(?)", "captures": { "1": { "name": "support.type.perl6fe" }, "2": { "name": "support.class.type.adverb.perl6fe" } } }, { "match": "(?x) ( \\[ / \\] )", "name": "keyword.operator.reduction.perl6fe" }, { "match": "(?<=\\w)(\\:)([DU_])\\b", "name": "meta.adverb.definedness.perl6fe", "captures": { "1": { "name": "keyword.operator.adverb.perl6fe" }, "2": { "name": "keyword.other.special-method.definedness.perl6fe" } } }, { "match": "(?x)\\b( div|mod|gcd|lcm|x|xx|temp|let|but|cmp|leg| eq|ne|gt|ge|lt|le|before|after|eqv|min|max|ff|fff|not|so|Z| and|andthen|or|orelse )\\b(?!\\-)| \\b(X)(?!:)\\b", "name": "keyword.operator.word.perl6fe" }, { "match": "(=~=|≅)", "captures": { "1": { "name": "keyword.operator.approx-equal.perl6fe" } }, "name": "meta.operator.non.ligature.perl6fe" }, { "match": "(?x) <== | ==> | <=> | => | --> | -> | \\+\\| | \\+\\+ | -- | \\*\\* | \\?\\?\\? | \\?\\? | \\!\\!\\! | \\!\\! | && | \\+\\^ | \\?\\^ | %% | \\+& | \\+< | \\+> | \\+\\^ | \\.\\.(?!\\.) | \\.\\.\\^ | \\^\\.\\. | \\^\\.\\.\\^ | \\?\\| | !=(?!\\=) | !==(?!\\=) | <=(?!>) | >= | === | == | =:= | ~~ | \\x{2245} | \\|\\| | \\^\\^ | \\/\\/ | := | ::= | \\.\\.\\.", "name": "keyword.operator.multi-symbol.perl6fe" }, { "include": "#special_variables" }, { "match": "(?x)(?<=\\[) \\s* (\\*) \\s* ([\\-\\*%\\^\\+\\/]|div|mod|gcd|lcm) \\s* (\\d+) \\s* (?=\\])", "name": "meta.subscript.whatever.perl6fe", "captures": { "1": { "name": "constant.language.whatever.perl6fe" }, "2": { "name": "keyword.operator.minus.back-from.perl6fe" }, "3": { "name": "constant.numeric.back-from.perl6fe" } } }, { "match": "\\*\\s*(?=\\])", "name": "constant.language.whatever.hack.perl6fe" }, { "match": "(?x)\\b(?)", "captures": { "1": { "name": "keyword.operator.colon.perl6fe" } }, "name": "support.function.perl6fe" }, { "match": "(?x)\\b(?)", "captures": { "1": { "name": "keyword.operator.colon.perl6fe" } }, "name": "support.function.perl6fe" }, { "match": "(?x)\\b(?)", "name": "support.function.perl6fe" }, { "include": "#numbers" }, { "match": "(?x) (?<\\*\\!\\?~\\/\\|]| (?)", "name": "string.pair.key.perl6fe" }, { "match": "(?x) \\b (?", "endCaptures": { "0": { "name": "punctuation.definition.radix.perl6fe" } }, "contentName": "constant.numeric.perl6fe" }, { "begin": "\\{", "beginCaptures": { "0": { "name": "punctuation.definition.block.perl6fe" } }, "end": "\\}", "endCaptures": { "0": { "name": "punctuation.definition.block.perl6fe" } }, "name": "meta.block.perl6fe", "patterns": [ { "include": "$self" } ] } ], "repository": { "numbers": { "patterns": [ { "match": "(?x)\n(?<= ^ | [=,;^\\s{\\[(/] | \\.\\. )\n[-−+]?\n0[bodx]\\w+", "name": "constant.numeric.radix.perl6fe" }, { "match": "(?x)\n (?<= ^ | [×÷*=,:;^\\s{\\[(/] | \\.\\. | … )\n (?: \\^? [+\\-−] )?\n(?:\n (?: \\d+ (?: [\\_\\d]+ \\d )? )\n (?: \\. \\d+ (?: [\\_\\d]+ \\d )? )?\n)\n(?: e (?:-|−)? \\d+ (?: [\\_\\d]+ \\d )? )?", "name": "constant.numeric.perl6fe" }, { "match": "(?x)\n (?<= ^ | [×÷*=,:;^\\s{\\[(/] | \\.\\. )\n (?: [+-−] )?\n(?:\n (?: \\. \\d+ (?: [\\_\\d]+ \\d )? )\n)\n(?: e (?:-|−)? \\d+ (?: [\\_\\d]+ \\d )? )?", "name": "constant.numeric.perl6fe" } ] }, "comment-block-delimited": { "patterns": [ { "begin": "^\\s*(=)(begin)\\s+(\\w+)", "end": "^\\s*(=)(end)\\s+(\\w+)", "captures": { "1": { "name": "storage.modifier.block.delimited.perl6fe" }, "2": { "name": "keyword.operator.block.delimited.perl6fe" }, "3": { "name": "entity.other.attribute-name.block.delimited.perl6fe" } }, "contentName": "comment.block.delimited.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] } ] }, "comment-block-abbreviated": { "patterns": [ { "begin": "^\\s*(=)(head\\w*)\\s+(.+?)\\s*$", "end": "(?=^\\s*$|^\\s*=\\w+.*$)", "captures": { "1": { "name": "storage.modifier.block.abbreviated.perl6fe" }, "2": { "name": "entity.other.attribute-name.block.abbreviated.perl6fe" }, "3": { "name": "entity.name.section.abbreviated.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] } }, "contentName": "entity.name.section.head.abbreviated.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] }, { "begin": "^\\s*(=)(\\w+)\\s+(.+?)\\s*$", "end": "(?=^\\s*$|^\\s*=\\w+.*$)", "captures": { "1": { "name": "storage.modifier.block.abbreviated.perl6fe" }, "2": { "name": "entity.other.attribute-name.block.abbreviated.perl6fe" }, "3": { "name": "entity.name.section.abbreviated.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] } }, "contentName": "comment.block.abbreviated.perl6fe", "patterns": [ { "include": "#comment-block-syntax" } ] } ] }, "shellquotes": { "patterns": [ { "begin": "([qQ]x)\\s*({{)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "}}", "endCaptures": { "0": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "name": "meta.shell.quote.single.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "([qQ]x)\\s*({)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "name": "meta.shell.quote.single.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "([qQ]x)\\s*(\\[\\[)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "\\]\\]", "endCaptures": { "0": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "name": "meta.shell.quote.single.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "([Qq]x)\\s*(\\[)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "\\]", "endCaptures": { "0": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "name": "meta.shell.quote.single.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "([Qq]x)\\s*(\\|)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "\\|", "endCaptures": { "0": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "name": "meta.shell.quote.single.perl6fe", "patterns": [ { "include": "source.quoting.perl6fe#q_single_string_content" } ] }, { "begin": "([Qq]x)\\s*(\\/)", "beginCaptures": { "1": { "name": "string.quoted.q.shell.operator.perl6fe" }, "2": { "name": "punctuation.section.embedded.shell.begin.perl6fe" } }, "end": "(?>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.underline.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_triple_angle_string_content" } ] }, { "begin": "(?x) (I) (<<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.italic.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_triple_angle_string_content" } ] }, { "begin": "(?x) (B) (<<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.bold.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_triple_angle_string_content" } ] }, { "begin": "(?x) ([A-Z]) (<<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.raw.code.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_triple_angle_string_content" } ] }, { "begin": "(?x) (U) (<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.underline.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_double_angle_string_content" } ] }, { "begin": "(?x) (I) (<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.italic.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_double_angle_string_content" } ] }, { "begin": "(?x) (B) (<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.bold.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_double_angle_string_content" } ] }, { "begin": "(?x) ([A-Z]) (<<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.raw.code.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_double_angle_string_content" } ] }, { "begin": "(?x) (U) (<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.underline.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_angle_string_content" } ] }, { "begin": "(?x) (I) (<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.italic.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_angle_string_content" } ] }, { "begin": "(?x) (B) (<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.bold.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_angle_string_content" } ] }, { "begin": "(?x) ([A-Z]) (<)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (>)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.raw.code.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_angle_string_content" } ] }, { "begin": "(?x) (U) («)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (»)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.underline.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_chevron_string_content" } ] }, { "begin": "(?x) (I) («)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (»)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.italic.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_chevron_string_content" } ] }, { "begin": "(?x) (B) («)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (»)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.bold.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_chevron_string_content" } ] }, { "begin": "(?x) ([A-Z]) («)", "beginCaptures": { "1": { "name": "support.function.pod.code.perl6fe" }, "2": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "end": "(?x) (»)", "endCaptures": { "1": { "name": "punctuation.section.embedded.pod.code.perl6fe" } }, "contentName": "markup.raw.code.perl6fe", "name": "meta.pod.c.perl6fe", "patterns": [ { "include": "#comment-block-syntax" }, { "include": "source.quoting.perl6fe#q_chevron_string_content" } ] } ] }, "p5_regex": { "patterns": [ { "begin": "(?x)(?|'\\w*')", "name": "constant.character.escape.perl" }, { "match": "\\\\N\\{[^\\}]*\\}", "name": "constant.character.escape.perl" }, { "match": "\\\\o\\{\\d*\\}", "name": "constant.character.escape.perl" }, { "match": "\\\\(?:p|P)(?:\\{\\w*\\}|P)", "name": "constant.character.escape.perl" }, { "match": "\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?", "name": "constant.character.escape.perl" }, { "match": "\\\\.", "name": "constant.character.escape.perl" } ] }, "special_variables": { "patterns": [ { "match": "(?x) [\\$\\@](?=[\\s,;\\{\\[\\(])| (?<=[\\(\\,])\\s*%(?![\\w\\*\\!\\?\\.\\^:=~])| \\$_| \\$\\/| \\$\\!(?!\\w)| \\$\\d(?!\\w)", "name": "keyword.other.special-method.perl6fe" } ] }, "regexp-variables": { "patterns": [ { "begin": "\\$(?=\\<)", "beginCaptures": { "0": { "name": "variable.other.identifier.sigil.regexp.perl6" } }, "end": "(?![\\w\\<\\>])", "name": "meta.match.variable.perl6fe", "patterns": [ { "match": "(\\<)([\\w\\-]+)(\\>)", "captures": { "1": { "name": "support.class.match.name.delimiter.regexp.perl6fe" }, "2": { "name": "variable.other.identifier.regexp.perl6" }, "3": { "name": "support.class.match.name.delimiter.regexp.perl6fe" } } } ] } ] }, "variables": { "patterns": [ { "include": "#regexp-variables" }, { "match": "(?x)\n(\\$|@|%|&)\n(\\.|\\*|:|!|\\^|~|=|\\?)?\n(\n (?:[\\p{Alpha}_]) # Must start with Alpha or underscore\n (?:\n [\\p{Digit}\\p{Alpha}_] # have alphanum/underscore or a ' or -\n | # followed by an alphanum or underscore\n [\\-'] [\\p{Digit}\\p{Alpha}_]\n )*\n)", "captures": { "1": { "name": "variable.other.identifier.sigil.perl6fe" }, "2": { "name": "support.class.twigil.perl6fe" }, "3": { "name": "variable.other.identifier.perl6fe" } }, "name": "meta.variable.container.perl6fe" } ] }, "hex_escapes": { "patterns": [ { "match": "(?x) (\\\\x) ( \\[ ) ( [\\dA-Fa-f]+ ) ( \\] )", "captures": { "1": { "name": "keyword.punctuation.hex.perl6fe" }, "2": { "name": "keyword.operator.bracket.open.perl6fe" }, "3": { "name": "routine.name.hex.perl6fe" }, "4": { "name": "keyword.operator.bracket.close.perl6fe" } }, "name": "punctuation.hex.perl6fe" } ] }, "interpolation": { "patterns": [ { "match": "(?x)\n(?", "endCaptures": { "0": { "name": "keyword.operator.chevron.close.perl6fe" } } }, { "begin": "\\[", "beginCaptures": { "0": { "name": "keyword.operator.bracket.open.perl6fe" } }, "end": "\\]", "endCaptures": { "0": { "name": "keyword.operator.bracket.close.perl6fe" } }, "patterns": [ { "include": "$self" } ] } ] }, "6": { "name": "keyword.operator.dot.perl6fe" }, "7": { "name": "support.function.perl6fe" }, "8": { "begin": "(", "beginCaptures": { "0": "keyword.operator.paren.open.perl6fe" }, "end": ")", "endCaptures": { "0": { "name": "keyword.operator.paren.close.perl6fe" } }, "patterns": [ { "include": "$self" } ] } }, "name": "variable.other.identifier.interpolated.perl6fe" }, { "include": "#hex_escapes" }, { "include": "#regexp-variables" }, { "begin": "(?x) (?