github-linguist 9.5.0 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/grammars/etc.json +1 -1
- data/grammars/gno.mod.json +1 -0
- data/grammars/markdown.mojo.codeblock.json +1 -0
- data/grammars/markdown.move.codeblock.json +1 -1
- data/grammars/source.4dm.json +1 -1
- data/grammars/source.abl.json +1 -1
- data/grammars/source.aleo.json +1 -0
- data/grammars/source.apex.json +1 -1
- data/grammars/source.astro.json +1 -1
- data/grammars/source.baml.json +1 -0
- data/grammars/source.bb.json +1 -1
- data/grammars/source.bird2.json +1 -0
- data/grammars/source.blueprint.json +1 -0
- data/grammars/source.bnd.json +1 -1
- data/grammars/source.brs.embedded.xml.json +1 -0
- data/grammars/source.bsl.json +1 -1
- data/grammars/source.c++.json +1 -1
- data/grammars/source.c.json +1 -1
- data/grammars/source.c3.json +1 -1
- data/grammars/source.carbon.json +1 -0
- data/grammars/source.cel.json +1 -0
- data/grammars/source.cl.json +1 -1
- data/grammars/source.clar.json +1 -1
- data/grammars/source.cmake.json +1 -1
- data/grammars/source.cmd.json +1 -1
- data/grammars/source.comment-string.wesl.json +1 -1
- data/grammars/source.comment-string.wgsl.json +1 -1
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csswg.json +1 -1
- data/grammars/source.csv.json +1 -1
- data/grammars/source.curlrc.json +1 -1
- data/grammars/source.dart.json +1 -1
- data/grammars/source.daslang.json +1 -1
- data/grammars/source.data-weave.json +1 -1
- data/grammars/source.dds.dspf.json +1 -1
- data/grammars/source.dds.icff.json +1 -1
- data/grammars/source.dds.lf.json +1 -1
- data/grammars/source.dds.pf.json +1 -1
- data/grammars/source.dds.prtf.json +1 -1
- data/grammars/source.deq.json +1 -0
- data/grammars/source.emacs.lisp.json +1 -1
- data/grammars/source.fift.json +1 -0
- data/grammars/source.flix.json +1 -1
- data/grammars/source.fpp.json +1 -0
- data/grammars/source.func.json +1 -0
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.gedcom.json +1 -1
- data/grammars/source.gimprc.json +1 -0
- data/grammars/source.gimpres.json +1 -0
- data/grammars/source.gitconfig.json +1 -1
- data/grammars/source.gno.json +1 -0
- data/grammars/source.graphql.json +1 -1
- data/grammars/source.gtkrc.json +1 -0
- data/grammars/source.hack.json +1 -1
- data/grammars/source.hosts.json +1 -1
- data/grammars/source.hx.json +1 -1
- data/grammars/source.hxml.json +1 -1
- data/grammars/source.il.json +1 -0
- data/grammars/source.interp.json +1 -0
- data/grammars/source.jac.json +1 -1
- data/grammars/source.jactoml.json +1 -0
- data/grammars/source.jai.json +1 -1
- data/grammars/source.jass.json +1 -0
- data/grammars/source.julia.json +1 -1
- data/grammars/source.just.json +1 -1
- data/grammars/source.kcl.json +1 -1
- data/grammars/source.koka.json +1 -1
- data/grammars/source.lean4.markdown.json +1 -1
- data/grammars/source.leo.json +1 -1
- data/grammars/source.lobster.json +1 -0
- data/grammars/source.logos.json +1 -1
- data/grammars/source.luau.json +1 -1
- data/grammars/source.m2.json +1 -1
- data/grammars/source.m3u.json +1 -1
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mdx.astro.json +1 -1
- data/grammars/source.mi.json +1 -1
- data/grammars/source.mo.json +1 -1
- data/grammars/source.mojo.json +1 -1
- data/grammars/source.moonbit.config.json +1 -0
- data/grammars/source.moonbit.json +1 -1
- data/grammars/source.move.json +1 -1
- data/grammars/source.ms.json +1 -0
- data/grammars/source.nim.json +1 -1
- data/grammars/source.openqasm.json +1 -1
- data/grammars/source.opy.json +1 -0
- data/grammars/source.paperspecs.json +1 -0
- data/grammars/source.pic.json +1 -1
- data/grammars/source.pkgconf.json +1 -0
- data/grammars/source.pl.json +1 -0
- data/grammars/source.pnlgrp.json +1 -1
- data/grammars/source.powerquery.json +1 -0
- data/grammars/source.powershell.json +1 -1
- data/grammars/source.prisma.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.quint.json +1 -0
- data/grammars/source.rarlist.json +1 -0
- data/grammars/source.rascript.json +1 -1
- data/grammars/source.record-jar.json +1 -1
- data/grammars/source.redscript.json +1 -0
- data/grammars/source.rego.json +1 -1
- data/grammars/source.rhai.json +1 -0
- data/grammars/source.rpg.json +1 -1
- data/grammars/source.rpgle.json +1 -1
- data/grammars/source.rust.json +1 -1
- data/grammars/source.scala.json +1 -1
- data/grammars/source.slang.json +1 -1
- data/grammars/source.slint.json +1 -1
- data/grammars/source.smithy.json +1 -1
- data/grammars/source.soql.json +1 -1
- data/grammars/source.spicedb-yaml.json +1 -0
- data/grammars/source.spicedb.json +1 -0
- data/grammars/source.stan.json +1 -1
- data/grammars/source.stim.json +1 -0
- data/grammars/source.surrealql.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.tasm.json +1 -0
- data/grammars/source.tlb.json +1 -0
- data/grammars/source.tolk.json +1 -0
- data/grammars/source.ucode-template.json +1 -0
- data/grammars/source.ucode.json +1 -0
- data/grammars/source.uri-list.json +1 -0
- data/grammars/source.v.json +1 -1
- data/grammars/source.vento.json +1 -1
- data/grammars/source.verse.json +1 -0
- data/grammars/source.vespaSchema.json +1 -0
- data/grammars/source.vhs.json +1 -0
- data/grammars/source.wgsl.json +1 -1
- data/grammars/source.yaml.salt.json +1 -1
- data/grammars/spicedb-yaml.injection.json +1 -0
- data/grammars/text.bbcode.json +1 -0
- data/grammars/text.cachedir.json +1 -0
- data/grammars/text.cookie-jar.json +1 -0
- data/grammars/text.html.handlebars.json +1 -1
- data/grammars/text.html.vue.json +1 -1
- data/grammars/text.mac-tts.json +1 -0
- data/grammars/text.recfile.json +1 -0
- data/grammars/text.roff.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/blob_helper.rb +19 -0
- data/lib/linguist/classifier.rb +2 -1
- data/lib/linguist/generated.rb +40 -0
- data/lib/linguist/generic.yml +3 -0
- data/lib/linguist/heuristics.yml +97 -5
- data/lib/linguist/language.rb +13 -9
- data/lib/linguist/languages.yml +368 -37
- data/lib/linguist/languages_data.rb +7663 -0
- data/lib/linguist/lazy_blob.rb +25 -2
- data/lib/linguist/samples.rb +4 -10
- data/lib/linguist/samples_data.rb +196100 -0
- data/lib/linguist/vendor.yml +3 -0
- metadata +54 -18
- data/grammars/markdown.bicep.codeblock.json +0 -1
- data/lib/linguist/languages.json +0 -1
- data/lib/linguist/samples.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"baml","scopeName":"source.baml","patterns":[{"include":"#comments"},{"include":"#client"},{"include":"#retry-policy"},{"include":"#generator"},{"include":"#template-string"},{"include":"#block-attribute"},{"include":"#enum"},{"include":"#type-alias"},{"include":"#implements-for"},{"include":"#interface"},{"include":"#class"},{"include":"#function"},{"include":"#testset"},{"include":"#test"},{"include":"#let-statement"},{"include":"#semicolon"}],"repository":{"accessor-dot":{"name":"punctuation.accessor.baml","match":"\\."},"array-destructure-pattern":{"name":"meta.pattern.destructure.array.baml","begin":"(?:\\b((?:let|const))\\b\\s*)?(\\[)","end":"(\\])(?:\\s*(:)\\s*((?:(?!\\s*(?:in\\b|if\\b|=\u003e|=|[,}\\)])).)+))?","patterns":[{"include":"#comments"},{"include":"#array-destructure-rest-operator"},{"include":"#pattern"},{"include":"#comma"}],"beginCaptures":{"1":{"name":"keyword.declaration.binding.baml"},"2":{"name":"punctuation.definition.array.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.array.end.baml"},"2":{"name":"punctuation.separator.colon.baml"},"3":{"patterns":[{"include":"#comments"},{"include":"#type-expression"}]}}},"array-destructure-rest-operator":{"name":"keyword.operator.rest.baml","match":"\\.\\."},"array-expression":{"name":"meta.expression.array.baml","begin":"\\[","end":"\\]","patterns":[{"include":"#comments"},{"include":"#expression"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.baml"}}},"assignment-operator":{"name":"keyword.operator.assignment.baml","match":"="},"associated-type":{"name":"meta.associated-type.baml","begin":"(?:^\\s*|(?\u003c=\\{)\\s*)(type)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?\u003c=;)|(?=\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#associated-type-extends"},{"include":"#assignment-operator"},{"include":"#type-expression"},{"include":"#semicolon"}],"beginCaptures":{"1":{"name":"keyword.declaration.associated-type.baml"},"2":{"name":"entity.name.type.associated.baml"}}},"associated-type-extends":{"name":"keyword.operator.extends.baml","match":"\\bextends\\b"},"associated-type-projection":{"name":"meta.type.associated-projection.baml","begin":"\\((?=[^)\\r\\n]*\\bas\\b)","end":"(\\))\\s*(\\.)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","patterns":[{"include":"#comments"},{"include":"#type-as-operator"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.type.end.baml"},"2":{"name":"punctuation.accessor.baml"},"3":{"name":"entity.name.type.associated.baml"}}},"attribute":{"name":"meta.attribute.baml","begin":"(@)(?!@)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*)\\b","end":"(?\u003c=\\))|(?=\\s*@|\\s*,|\\s*\\}|\\s+\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|\\r?\\n\\s*(?:\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|@@|\\}))","patterns":[{"include":"#comments"},{"include":"#attribute-arguments"}],"beginCaptures":{"1":{"name":"punctuation.definition.annotation.baml storage.type.annotation.baml"},"2":{"patterns":[{"include":"#accessor-dot"},{"include":"#attribute-path-segment"}]}}},"attribute-arguments":{"name":"meta.attribute.arguments.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#attribute-expression-block"},{"include":"#literal"},{"include":"#attribute-unquoted-string"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.annotation-arguments.begin.bracket.round.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.annotation-arguments.end.bracket.round.baml"}}},"attribute-expression-block":{"name":"meta.attribute.expression.baml","begin":"\\{\\{","end":"\\}\\}","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.expression.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.section.expression.end.baml"}}},"attribute-path-segment":{"name":"storage.type.annotation.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"attribute-unquoted-string":{"name":"string.unquoted.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"await-expression":{"name":"keyword.operator.await.baml","match":"\\bawait\\b"},"backtick-else":{"name":"meta.interpolation.control.else.baml","match":"(\\$\\{)\\s*(else)\\s*(\\})","captures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.conditional.baml"},"3":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-else-if":{"name":"meta.interpolation.control.else-if.baml","begin":"(\\$\\{)\\s*(else)\\b\\s*(if)\\b","end":"\\}","patterns":[{"include":"#comments"},{"include":"#backtick-else-if-condition"}],"beginCaptures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.conditional.baml"},"3":{"name":"keyword.control.conditional.baml"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-else-if-condition":{"name":"meta.if.condition.baml","begin":"\\G\\s*","end":"(?=\\})","patterns":[{"include":"#comments"},{"include":"#condition-expression"}]},"backtick-endfor":{"name":"meta.interpolation.control.endfor.baml","match":"(\\$\\{)\\s*(endfor)\\s*(\\})","captures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.loop.endfor.baml"},"3":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-endif":{"name":"meta.interpolation.control.endif.baml","match":"(\\$\\{)\\s*(endif)\\s*(\\})","captures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.conditional.endif.baml"},"3":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-expression-interpolation":{"name":"meta.interpolation.baml","begin":"(\\$\\{)","end":"\\}","patterns":[{"include":"#comments"},{"include":"#backtick-interpolation-let-statement"},{"include":"#block-contents"},{"include":"#expression"},{"include":"#semicolon"}],"beginCaptures":{"1":{"name":"punctuation.section.interpolation.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-for-c-style-let-initializer":{"name":"meta.for.initializer.baml","begin":"(?=(?:let|const)\\b)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#pattern"},{"include":"#let-else-clause"},{"include":"#expression"}]},"backtick-for-open":{"name":"meta.interpolation.control.for.baml","begin":"(\\$\\{)\\s*(for)\\b","end":"\\}","patterns":[{"include":"#comments"},{"include":"#backtick-for-parenthesized-in-header"},{"include":"#backtick-for-parenthesized-c-style-header"},{"include":"#backtick-for-unparenthesized-header"}],"beginCaptures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.loop.for.baml"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-for-parenthesized-c-style-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(\\()","end":"\\)(?=\\s*\\})","patterns":[{"include":"#comments"},{"include":"#backtick-for-c-style-let-initializer"},{"include":"#semicolon"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.for-header.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.for-header.end.baml"}}},"backtick-for-parenthesized-in-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(\\()(?=\\s*(?:let|const)\\b(?:(?![=;]).)*\\bin\\b)","end":"\\)(?=\\s*\\})","patterns":[{"include":"#comments"},{"include":"#for-in-pattern"},{"include":"#for-in-keyword"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.for-header.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.for-header.end.baml"}}},"backtick-for-unparenthesized-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(?=(?:let|const)\\b)","end":"(?=\\})","patterns":[{"include":"#comments"},{"include":"#for-in-pattern"},{"include":"#for-in-keyword"},{"include":"#condition-expression"}]},"backtick-if-condition":{"name":"meta.if.condition.baml","begin":"\\G\\s*","end":"(?=\\})","patterns":[{"include":"#comments"},{"include":"#condition-expression"}]},"backtick-if-open":{"name":"meta.interpolation.control.if.baml","begin":"(\\$\\{)\\s*(if)\\b(?=(?:(?![\\{\\}]).)*\\})","end":"\\}","patterns":[{"include":"#comments"},{"include":"#backtick-if-condition"}],"beginCaptures":{"1":{"name":"punctuation.section.interpolation.begin.baml"},"2":{"name":"keyword.control.conditional.baml"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.baml"}}},"backtick-interpolation":{"patterns":[{"include":"#backtick-for-open"},{"include":"#backtick-else-if"},{"include":"#backtick-if-open"},{"include":"#backtick-else"},{"include":"#backtick-endfor"},{"include":"#backtick-endif"},{"include":"#backtick-expression-interpolation"}]},"backtick-interpolation-let-pattern":{"name":"meta.pattern.statement.baml","begin":"\\G\\s*","end":"(?=\\s*=)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"backtick-interpolation-let-statement":{"name":"meta.statement.let.baml","begin":"(?=(?:let|const)\\b)","end":"(?=;|\\})","patterns":[{"include":"#comments"},{"include":"#backtick-interpolation-let-pattern"},{"include":"#assignment-operator"},{"include":"#expression"}]},"backtick-string":{"patterns":[{"include":"#backtick-string-8"},{"include":"#backtick-string-7"},{"include":"#backtick-string-6"},{"include":"#backtick-string-5"},{"include":"#backtick-string-4"},{"include":"#backtick-string-3"},{"include":"#backtick-string-2"},{"include":"#backtick-string-1"}]},"backtick-string-1":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{1})(?!\\`)","end":"(?\u003c!\\`)(\\`{1})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-2":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{2})(?!\\`)","end":"(?\u003c!\\`)(\\`{2})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-3":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{3})(?!\\`)","end":"(?\u003c!\\`)(\\`{3})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-4":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{4})(?!\\`)","end":"(?\u003c!\\`)(\\`{4})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-5":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{5})(?!\\`)","end":"(?\u003c!\\`)(\\`{5})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-6":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{6})(?!\\`)","end":"(?\u003c!\\`)(\\`{6})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-7":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{7})(?!\\`)","end":"(?\u003c!\\`)(\\`{7})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-8":{"name":"string.interpolated.baml","begin":"(?\u003c!\\`)(\\`{8})(?!\\`)","end":"(?\u003c!\\`)(\\`{8})(?!\\`)","patterns":[{"include":"#backtick-interpolation"},{"include":"#backtick-string-escape"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"backtick-string-escape":{"patterns":[{"include":"#string-escape-control"},{"include":"#string-escape-quoted-delimiter"},{"include":"#backtick-string-escape-delimiter"},{"include":"#string-escape-unknown"}]},"backtick-string-escape-delimiter":{"name":"constant.character.escape.delimiter.baml","match":"\\\\[`$]"},"bare-attribute":{"name":"meta.attribute.baml","match":"(@)(?!@)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*|skip)\\b(?=\\s*(?:@|,|\\}|$|//|/\\*))","captures":{"1":{"name":"punctuation.definition.annotation.baml storage.type.annotation.baml"},"2":{"patterns":[{"include":"#accessor-dot"},{"include":"#attribute-path-segment"}]}}},"bare-binding-pattern":{"name":"meta.pattern.binding.baml","match":"\\b((?:let|const))\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","captures":{"1":{"name":"keyword.declaration.binding.baml"},"2":{"name":"variable.other.binding.baml"}}},"bigint-literal":{"name":"constant.numeric.bigint.baml","match":"\\b[0-9]+n"},"block-attribute":{"name":"meta.attribute.block.baml","begin":"(@@)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*)\\b","end":"(?\u003c=\\))|(?=\\s*@@|\\s*@|\\s*,|\\s*\\}|\\s+\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|\\r?\\n\\s*(?:\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|@@|\\}))","patterns":[{"include":"#comments"},{"include":"#attribute-arguments"}],"beginCaptures":{"1":{"name":"punctuation.definition.annotation.baml storage.type.annotation.baml"},"2":{"patterns":[{"include":"#accessor-dot"},{"include":"#attribute-path-segment"}]}}},"block-comment":{"name":"comment.block.baml","begin":"/\\*","end":"\\*/"},"block-contents":{"patterns":[{"include":"#comments"},{"include":"#testset"},{"include":"#test"},{"include":"#watch-statement"},{"include":"#let-statement"},{"include":"#return-statement"},{"include":"#break-statement"},{"include":"#continue-statement"},{"include":"#defer-statement"},{"include":"#if-else-clause"},{"include":"#for-statement"},{"include":"#while-statement"},{"include":"#expression"},{"include":"#semicolon"}]},"boolean-literal":{"name":"constant.language.boolean.baml","match":"\\b(?:true|false)\\b"},"break-statement":{"name":"meta.statement.break.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(break)\\b","end":"(?=[;}]|$)","patterns":[{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.control.flow.break.baml"}}},"byte-string-escape":{"patterns":[{"include":"#byte-string-escape-hex"},{"include":"#byte-string-escape-control"},{"include":"#string-escape-quoted-delimiter"},{"include":"#byte-string-escape-invalid-hex"},{"include":"#byte-string-escape-invalid"}]},"byte-string-escape-control":{"name":"constant.character.escape.control.baml","match":"\\\\[ntr0]"},"byte-string-escape-hex":{"name":"constant.character.escape.hex.baml","match":"\\\\x[0-9A-Fa-f]{2}"},"byte-string-escape-invalid":{"name":"invalid.illegal.escape.baml","match":"\\\\."},"byte-string-escape-invalid-hex":{"name":"invalid.illegal.escape.hex.baml","match":"\\\\x(?:[0-9A-Fa-f]{0,1}(?=[\"\\\\]|$)|[0-9A-Fa-f]?[^0-9A-Fa-f\"\\\\])"},"byte-string-literal":{"name":"string.quoted.binary.double.baml","begin":"\\b(b)(\")","end":"\"","patterns":[{"include":"#byte-string-escape"}],"beginCaptures":{"1":{"name":"storage.type.string.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.baml"}}},"call-arguments":{"name":"meta.function-call.arguments.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expression"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.arguments.end.baml"}}},"catch-binding":{"name":"variable.parameter.catch.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"catch-binding-list":{"name":"meta.catch.binding-list.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#catch-binding"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.catch-binding.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.catch-binding.end.baml"}}},"catch-block":{"name":"meta.block.catch.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#match-arm"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"catch-expression":{"name":"meta.expression.catch.baml","begin":"\\b(catch|catch_all)\\b","end":"(?\u003c=\\})|(?=,|;|$)","patterns":[{"include":"#comments"},{"include":"#catch-binding-list"},{"include":"#catch-block"}],"beginCaptures":{"1":{"name":"keyword.control.exception.catch.baml"}}},"class":{"name":"meta.class.baml","begin":"^\\s*(class)\\b","end":"(?\u003c=\\})|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#class-header"},{"include":"#class-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.class.baml"}}},"class-body":{"name":"meta.class.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#block-attribute"},{"include":"#bare-attribute"},{"include":"#attribute"},{"include":"#implements-block"},{"include":"#function"},{"include":"#field"},{"include":"#semicolon"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"class-destructure-body":{"name":"meta.pattern.destructure.class.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#class-destructure-field"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.pattern.destructure.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.pattern.destructure.end.baml"}}},"class-destructure-field":{"name":"meta.pattern.destructure.class.field.baml","begin":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b\\s*(:)?","end":"(?=,|\\})","patterns":[{"include":"#comments"},{"include":"#pattern"}],"beginCaptures":{"1":{"name":"variable.other.property.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"class-destructure-pattern":{"name":"meta.pattern.destructure.class.baml","begin":"\\b(?:((?:let|const))\\s+)?(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*)\\b\\s*(?=(?:\u003c[^{}=;\\r\\n]*\u003e\\s*)?\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#type-expression"},{"include":"#class-destructure-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.binding.baml"},"2":{"patterns":[{"include":"#type-reference"}]}}},"class-header":{"name":"meta.class.header.baml","begin":"\\G\\s*","end":"(?=\\{)|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameters"},{"include":"#class-name"}]},"class-name":{"name":"entity.name.type.class.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"client":{"name":"meta.client.baml","begin":"^\\s*(client)\\b(?:\\s*(\u003c)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(\u003e)\\s*|\\s+)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=\\s*\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#config-block"}],"beginCaptures":{"1":{"name":"keyword.declaration.client.baml"},"2":{"name":"punctuation.definition.type-parameters.begin.baml"},"3":{"name":"support.type.client.baml"},"4":{"name":"punctuation.definition.type-parameters.end.baml"},"5":{"name":"entity.name.client.baml"}}},"code-block":{"name":"meta.block.code.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"colon-separator":{"name":"punctuation.separator.colon.baml","match":":"},"comma":{"name":"punctuation.separator.comma.baml","match":","},"comments":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"condition-expression":{"patterns":[{"include":"#literal"},{"include":"#array-expression"},{"include":"#lambda-expression"},{"include":"#parenthesized-expression"},{"include":"#if-expression"},{"include":"#match-expression"},{"include":"#spawn-expression"},{"include":"#map-expression"},{"include":"#code-block"},{"include":"#await-expression"},{"include":"#throw-expression"},{"include":"#catch-expression"},{"include":"#condition-is-pattern-expression"},{"include":"#optional-call-expression"},{"include":"#optional-index-expression"},{"include":"#optional-method-call-expression"},{"include":"#optional-field-access-expression"},{"include":"#upcast-expression"},{"include":"#postfix-method-call-expression"},{"include":"#field-access-expression"},{"include":"#expression-operator"},{"include":"#function-call-expression"},{"include":"#dotted-expression"}]},"condition-is-pattern-expression":{"name":"meta.expression.is.baml","begin":"\\b(is)\\b","end":"(?=\\s*(?:\u0026\u0026|\\|\\||=\u003e|[,);\\]}{]|$))","patterns":[{"include":"#comments"},{"include":"#condition-pattern"}],"beginCaptures":{"1":{"name":"keyword.operator.is.baml"}}},"condition-pattern":{"patterns":[{"include":"#comments"},{"include":"#wildcard-binding-pattern"},{"include":"#typed-binding-pattern"},{"include":"#array-destructure-pattern"},{"include":"#bare-binding-pattern"},{"include":"#wildcard-pattern"},{"include":"#type-expression"}]},"config-array":{"patterns":[{"include":"#config-array-body"}]},"config-array-body":{"name":"meta.config.array.baml","begin":"\\[","end":"\\]","patterns":[{"include":"#comments"},{"include":"#config-block"},{"include":"#config-array"},{"include":"#expression"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.baml"}}},"config-block":{"patterns":[{"include":"#config-block-body"}]},"config-block-body":{"name":"meta.config.block.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#config-field"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"config-field":{"name":"meta.field.config.baml","begin":"(?:^\\s*|(?\u003c=[\\{,])\\s*)(?:(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b|(\"(?:\\\\.|[^\"\\\\])*\"))\\s*(:)?","end":"(?=,|\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#config-block"},{"include":"#config-array"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.property.baml"},"2":{"patterns":[{"include":"#string-literal"}]},"3":{"name":"punctuation.separator.colon.baml"}}},"constructor-body":{"name":"meta.constructor.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#constructor-field"},{"include":"#constructor-field-shorthand"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.constructor.body.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.constructor.body.end.baml"}}},"constructor-expression":{"name":"meta.constructor.expression.baml","begin":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*\\b(?=\\s*(?:\u003c[^{}=;\\r\\n]*\u003e\\s*)?\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#constructor-type-arguments"},{"include":"#constructor-body"}],"beginCaptures":{"0":{"patterns":[{"include":"#accessor-dot"},{"include":"#constructor-type"}]}}},"constructor-field":{"name":"meta.constructor.field.baml","begin":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(:)","end":"(?=,|\\})","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.property.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"constructor-field-shorthand":{"name":"meta.constructor.field.baml","begin":"(?:^|(?\u003c=[{,])|(?\u003c=\\*/))[ \\t]*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)[ \\t]+(?=#+\"|\"|b\"|\\`|\\[|[0-9+-]|true\\b|false\\b|null\\b|env\\b)","end":"(?=,|\\})","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.property.baml"}}},"constructor-type":{"name":"entity.name.type.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"constructor-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e(?=\\s*\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"continue-statement":{"name":"meta.statement.continue.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(continue)\\b","end":"(?=[;}]|$)","patterns":[{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.control.flow.continue.baml"}}},"declaration-type-parameter":{"name":"meta.type-parameter.baml","begin":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?=,|\u003e(?=\\s*(?:\\(|\\{|requires\\b|\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)))","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameter-extends"},{"include":"#declaration-type-parameter-intersection"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"entity.name.type.parameter.baml"}}},"declaration-type-parameter-extends":{"name":"keyword.operator.extends.baml","match":"\\bextends\\b"},"declaration-type-parameter-intersection":{"name":"keyword.operator.type.baml","match":"\u0026"},"declaration-type-parameters":{"name":"meta.type-parameters.baml","begin":"\u003c","end":"\u003e(?=\\s*(?:\\(|\\{|requires\\b|\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*))","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameter"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-parameters.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-parameters.end.baml"}}},"defer-statement":{"name":"meta.statement.defer.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(defer)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.control.flow.defer.baml"}}},"dotted-expression":{"name":"meta.dotted-expression.baml","match":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)((?:\\s*\\.\\s*(?!as\\b\\s*\u003c)\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*)\\b","captures":{"1":{"patterns":[{"include":"#namespace-root"},{"include":"#environment-expression-root"},{"include":"#self-expression-root"},{"include":"#expression-identifier"}]},"2":{"patterns":[{"include":"#accessor-dot"},{"include":"#expression-identifier"}]}}},"enum":{"name":"meta.enum.baml","begin":"^\\s*(enum)\\b","end":"(?\u003c=\\})|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#enum-header"},{"include":"#enum-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.enum.baml"}}},"enum-body":{"name":"meta.enum.body.baml","begin":"\\{","end":"\\}|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#block-attribute"},{"include":"#enum-variant"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"enum-header":{"name":"meta.enum.header.baml","begin":"\\G\\s*","end":"(?=\\{)|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#enum-name"}]},"enum-name":{"name":"entity.name.type.enum.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"enum-variant":{"name":"meta.enum.variant.baml","begin":"(?:^\\s*|(?\u003c=[\\{,])\\s*|\\s+)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?=,|\\s+@@|\\s*\\}|\\s+\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|\\r?\\n\\s*(?:\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b|@@|\\}))","patterns":[{"include":"#comments"},{"include":"#bare-attribute"},{"include":"#attribute"}],"beginCaptures":{"1":{"name":"variable.other.enummember.baml"}}},"environment-expression-root":{"name":"support.other.namespace.baml","match":"\\benv\\b"},"expression":{"patterns":[{"include":"#literal"},{"include":"#array-expression"},{"include":"#lambda-expression"},{"include":"#parenthesized-expression"},{"include":"#if-expression"},{"include":"#match-expression"},{"include":"#spawn-expression"},{"include":"#constructor-expression"},{"include":"#map-expression"},{"include":"#code-block"},{"include":"#await-expression"},{"include":"#throw-expression"},{"include":"#catch-expression"},{"include":"#is-pattern-expression"},{"include":"#optional-call-expression"},{"include":"#optional-index-expression"},{"include":"#optional-method-call-expression"},{"include":"#optional-field-access-expression"},{"include":"#upcast-expression"},{"include":"#postfix-method-call-expression"},{"include":"#field-access-expression"},{"include":"#expression-operator"},{"include":"#function-call-expression"},{"include":"#dotted-expression"}]},"expression-accessor-operator":{"name":"punctuation.accessor.baml","match":"\\?\\.|\\.|\\$"},"expression-arithmetic-operator":{"name":"keyword.operator.arithmetic.baml","match":"\\+\\+|--|\\+|-|\\*|/|%"},"expression-arrow-operator":{"name":"keyword.operator.arrow.baml","match":"=\u003e|-\u003e"},"expression-bitwise-operator":{"name":"keyword.operator.bitwise.baml","match":"\u0026|\\^|~|\\|"},"expression-comparison-operator":{"name":"keyword.operator.comparison.baml","match":"\u003c=|\u003e=|\u003c|\u003e"},"expression-compound-assignment-operator":{"name":"keyword.operator.assignment.baml","match":"\u003c\u003c=|\u003e\u003e=|\\+=|-=|\\*=|/=|%=|\u0026=|\\|=|\\^="},"expression-equality-operator":{"name":"keyword.operator.comparison.baml","match":"==|!="},"expression-identifier":{"name":"variable.other.readwrite.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"expression-logical-operator":{"name":"keyword.operator.logical.baml","match":"\u0026\u0026|\\|\\||!"},"expression-nullish-operator":{"name":"keyword.operator.nullish.baml","match":"\\?\\?"},"expression-operator":{"patterns":[{"include":"#expression-arrow-operator"},{"include":"#expression-compound-assignment-operator"},{"include":"#expression-nullish-operator"},{"include":"#expression-logical-operator"},{"include":"#expression-equality-operator"},{"include":"#expression-shift-operator"},{"include":"#expression-comparison-operator"},{"include":"#expression-bitwise-operator"},{"include":"#expression-arithmetic-operator"},{"include":"#assignment-operator"},{"include":"#expression-spread-operator"},{"include":"#expression-accessor-operator"}]},"expression-shift-operator":{"name":"keyword.operator.bitwise.shift.baml","match":"\u003c\u003c|\u003e\u003e"},"expression-spread-operator":{"name":"keyword.operator.spread.baml","match":"\\.\\.\\."},"field":{"name":"meta.field.baml","begin":"(?:^\\s*|(?\u003c=\\{)\\s*)(?!@)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(:)?","end":"(?=\\})|$","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"variable.other.property.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"field-access-expression":{"name":"meta.field-access.baml","match":"([.$])\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","captures":{"1":{"name":"punctuation.accessor.baml"},"2":{"name":"variable.other.readwrite.baml"}}},"float-literal":{"name":"constant.numeric.float.baml","match":"\\b[0-9]+(?:\\.[0-9]+[eE][+-]?[0-9]+|\\.[0-9]+|[eE][+-]?[0-9]+)"},"for-c-style-let-initializer":{"name":"meta.for.initializer.baml","begin":"(?=(?:let|const)\\b)","end":"(?=;)","patterns":[{"include":"#comments"},{"include":"#pattern"},{"include":"#let-else-clause"},{"include":"#expression"}]},"for-in-keyword":{"name":"keyword.operator.in.baml","match":"\\bin\\b"},"for-in-pattern":{"name":"meta.pattern.for-in.baml","begin":"(?=(?:let|const)\\b)","end":"(?=\\s+in\\b)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"for-parenthesized-c-style-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(\\()","end":"\\)(?=\\s*\\{)","patterns":[{"include":"#comments"},{"include":"#for-c-style-let-initializer"},{"include":"#semicolon"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.for-header.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.for-header.end.baml"}}},"for-parenthesized-in-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(\\()(?=\\s*(?:let|const)\\b(?:(?![=;]).)*\\bin\\b)","end":"\\)(?=\\s*\\{)","patterns":[{"include":"#comments"},{"include":"#for-in-pattern"},{"include":"#for-in-keyword"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"punctuation.definition.for-header.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.for-header.end.baml"}}},"for-statement":{"name":"meta.statement.for.baml","begin":"\\b(for)\\b","end":"(?\u003c=\\})(?=\\s*(?:;|$))|(?=;|$)","patterns":[{"include":"#comments"},{"include":"#for-parenthesized-in-header"},{"include":"#for-parenthesized-c-style-header"},{"include":"#for-unparenthesized-header"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.control.loop.for.baml"}}},"for-unparenthesized-header":{"name":"meta.for.header.baml","begin":"\\G\\s*(?=(?:let|const)\\b)","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#for-in-pattern"},{"include":"#for-in-keyword"},{"include":"#condition-expression"}]},"function":{"name":"meta.function.baml","begin":"^\\s*(function)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameters"},{"include":"#function-parameters"},{"include":"#function-return-type"},{"include":"#function-block"}],"beginCaptures":{"1":{"name":"keyword.declaration.function.baml"},"2":{"name":"entity.name.function.baml"}}},"function-block":{"name":"meta.block.function.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#llm-client-field"},{"include":"#llm-prompt-field"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"function-call-expression":{"name":"meta.function-call.baml","begin":"\\b(?:(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(\\.)\\s*)?((?:\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\s*\\.\\s*)*)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=\\s*(?:\u003c[^(){};]*\u003e\\s*)?\\()","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"include":"#function-call-type-arguments"},{"include":"#call-arguments"}],"beginCaptures":{"1":{"patterns":[{"include":"#namespace-root"},{"include":"#environment-expression-root"},{"include":"#self-expression-root"},{"include":"#expression-identifier"}]},"2":{"name":"punctuation.accessor.baml"},"3":{"patterns":[{"include":"#accessor-dot"},{"include":"#expression-identifier"}]},"4":{"name":"entity.name.function.baml"}}},"function-call-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e(?=\\s*\\()","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"function-parameters":{"name":"meta.parameters.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#self-parameter"},{"include":"#parameter"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.baml"}}},"function-return-type":{"name":"meta.return-type.baml","begin":"(-\u003e)","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"keyword.operator.arrow.baml"}}},"generator":{"name":"meta.generator.baml","begin":"^\\s*(generator)\\b(?:\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*))?\\s*(?=\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#config-block"}],"beginCaptures":{"1":{"name":"keyword.declaration.generator.baml"},"2":{"name":"entity.name.generator.baml"}}},"if-condition":{"name":"meta.if.condition.baml","begin":"\\G(?!\\s*else\\b)\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#condition-expression"}]},"if-else-clause":{"name":"meta.else.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(else)\\b","end":"(?!\\s*else\\b)(?:(?\u003c=\\})(?=\\s*(?:[,);]|$))|(?=,|\\)|;|$))","patterns":[{"include":"#comments"},{"include":"#if-expression"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.baml"}}},"if-expression":{"name":"meta.expression.if.baml","begin":"\\b(if)\\b","end":"(?!\\s*else\\b)(?:(?\u003c=\\})(?=\\s*(?:[,);]|$))|(?=,|\\)|;|$))","patterns":[{"include":"#comments"},{"include":"#if-let-pattern"},{"include":"#assignment-operator"},{"include":"#if-condition"},{"include":"#code-block"},{"include":"#if-else-clause"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.baml"}}},"if-let-pattern":{"name":"meta.pattern.if-let.baml","begin":"\\G\\s*(?=(?:let|const)\\b)","end":"(?=\\s*=)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"implements-block":{"name":"meta.implements.baml","begin":"^\\s*(implements|implement)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#implements-target"},{"include":"#implements-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.implements.baml"}}},"implements-body":{"name":"meta.implements.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#function"},{"include":"#associated-type"},{"include":"#interface-field-link"},{"include":"#field"},{"include":"#semicolon"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"implements-for":{"name":"meta.implements-for.baml","begin":"^\\s*(implements|implement)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameters"},{"include":"#implements-for-interface-target"},{"include":"#implements-for-keyword"},{"include":"#implements-for-target"},{"include":"#implements-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.implements.baml"}}},"implements-for-interface-target":{"name":"meta.implements.target.baml","begin":"\\G\\s*","end":"(?=\\s+\\bfor\\b)","patterns":[{"include":"#comments"},{"include":"#type-expression"}]},"implements-for-keyword":{"name":"keyword.declaration.for.baml","match":"\\bfor\\b"},"implements-for-target":{"name":"meta.implements.for-target.baml","begin":"\\G\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"}]},"implements-target":{"name":"meta.implements.target.baml","begin":"\\G\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"}]},"integer-literal":{"name":"constant.numeric.integer.baml","match":"\\b[0-9]+\\b"},"interface":{"name":"meta.interface.baml","begin":"^\\s*(interface)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameters"},{"include":"#interface-requires-clause"},{"include":"#interface-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.interface.baml"},"2":{"name":"entity.name.type.interface.baml"}}},"interface-body":{"name":"meta.interface.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#interface-method-signature"},{"include":"#function"},{"include":"#associated-type"},{"include":"#field"},{"include":"#semicolon"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"interface-field-link":{"name":"meta.interface-field-link.baml","begin":"(?:^\\s*|(?\u003c=\\{)\\s*)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s+(as)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","end":"(?\u003c=;)|(?=\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#semicolon"}],"beginCaptures":{"1":{"name":"variable.other.property.interface.baml"},"2":{"name":"keyword.operator.as.baml"},"3":{"name":"variable.other.property.baml"}}},"interface-method-return-type":{"name":"meta.return-type.baml","begin":"(-\u003e)","end":"(?=;|\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"keyword.operator.arrow.baml"}}},"interface-method-signature":{"name":"meta.function.signature.baml","begin":"^\\s*(function)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=[^{\\r\\n]*(?:\\r?\\n|;|\\}))","end":"(?\u003c=;)|(?=\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#declaration-type-parameters"},{"include":"#function-parameters"},{"include":"#interface-method-return-type"},{"include":"#semicolon"}],"beginCaptures":{"1":{"name":"keyword.declaration.function.baml"},"2":{"name":"entity.name.function.baml"}}},"interface-requires-clause":{"name":"meta.interface.requires.baml","begin":"\\b(requires)\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"},{"include":"#comma"}],"beginCaptures":{"1":{"name":"keyword.declaration.requires.baml"}}},"is-pattern-expression":{"name":"meta.expression.is.baml","begin":"\\b(is)\\b","end":"(?=\\s*(?:\u0026\u0026|\\|\\||=\u003e|[,);\\]}]|$))","patterns":[{"include":"#comments"},{"include":"#pattern"}],"beginCaptures":{"1":{"name":"keyword.operator.is.baml"}}},"lambda-arrow":{"name":"keyword.operator.arrow.baml","match":"-\u003e|=\u003e"},"lambda-expression":{"name":"meta.expression.lambda.baml","begin":"(?=\\((?:[^()]|\\([^()]*\\))*\\)\\s*(?:-\u003e|=\u003e))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#function-parameters"},{"include":"#lambda-arrow"},{"include":"#lambda-return-type"},{"include":"#lambda-throws-clause"},{"include":"#code-block"}]},"lambda-return-type":{"name":"meta.return-type.lambda.baml","begin":"(?\u003c=-\u003e|=\u003e)\\s*(?!throws\\b)(?=[^\\s\\{])","end":"(?=\\s*(?:throws\\b|\\{))","patterns":[{"include":"#comments"},{"include":"#type-expression"}]},"lambda-throws-clause":{"name":"meta.throws.lambda.baml","begin":"\\b(throws)\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"keyword.operator.throws.baml"}}},"let-else-clause":{"name":"meta.statement.let.else.baml","begin":"\\b(else)\\b(?=\\s*\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.else.baml"}}},"let-statement":{"name":"meta.statement.let.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(?=(?:let|const)\\b)","end":"(?=[;}]|$)","patterns":[{"include":"#comments"},{"include":"#let-statement-pattern"},{"include":"#assignment-operator"},{"include":"#let-else-clause"},{"include":"#expression"}]},"let-statement-pattern":{"name":"meta.pattern.statement.baml","begin":"\\G\\s*","end":"(?=\\s*=)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"line-comment":{"name":"comment.line.double-slash.baml","match":"//.*$"},"literal":{"patterns":[{"include":"#byte-string-literal"},{"include":"#type-literal"}]},"llm-client-field":{"name":"meta.field.llm.client.baml","begin":"^\\s*(client)\\b\\s*(:)?(?!\\s*\\.)","end":"$","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.llm.client.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"llm-prompt-field":{"name":"meta.field.llm.prompt.baml","begin":"^\\s*(prompt)\\b\\s*(:)?","end":"$","patterns":[{"include":"#comments"},{"include":"#template-string-body"},{"include":"#backtick-string"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.llm.prompt.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"map-entry":{"name":"meta.map.entry.baml","begin":"\\s*(?=(?:\"|#|\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*\\s*:))","end":"(?=,|\\})","patterns":[{"include":"#comments"},{"include":"#map-entry-key"},{"include":"#string-literal"},{"include":"#raw-string"},{"include":"#colon-separator"},{"include":"#expression"}]},"map-entry-key":{"name":"meta.map-entry-key.baml","match":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)((?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*)\\b(?=\\s*:)","captures":{"1":{"name":"variable.other.property.baml"},"2":{"patterns":[{"include":"#accessor-dot"},{"include":"#map-entry-key-segment"}]}}},"map-entry-key-segment":{"name":"variable.other.property.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"map-expression":{"name":"meta.expression.map.baml","begin":"\\{(?=\\s*(?:\\}|[\"#]|\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*(?:\\s*\\.\\s*\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)*\\s*:))","end":"\\}","patterns":[{"include":"#comments"},{"include":"#map-entry"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.map.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.map.end.baml"}}},"match-arm":{"name":"meta.match.arm.baml","begin":"(?=\\S)(?![,}])","end":"(?=,|\\r?\\n|\\})","patterns":[{"include":"#comments"},{"include":"#match-arm-pattern"},{"include":"#match-arm-guard"},{"include":"#match-arm-arrow"},{"include":"#expression"}]},"match-arm-arrow":{"name":"keyword.operator.arrow.baml","match":"=\u003e"},"match-arm-guard":{"name":"meta.match.guard.baml","begin":"\\b(if)\\b","end":"(?=\\s*=\u003e)","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.conditional.baml"}}},"match-arm-pattern":{"name":"meta.pattern.match.baml","begin":"\\G\\s*","end":"(?=\\s*(?:if\\b|=\u003e))","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"match-block":{"name":"meta.block.match.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#match-arm"},{"include":"#comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"match-expression":{"name":"meta.expression.match.baml","begin":"\\b(match)\\b","end":"(?\u003c=\\})|(?=,|;|$)","patterns":[{"include":"#comments"},{"include":"#match-scrutinee-group"},{"include":"#match-block"},{"include":"#match-scrutinee"}],"beginCaptures":{"1":{"name":"keyword.control.match.baml"}}},"match-scrutinee":{"name":"meta.match.scrutinee.baml","begin":"(?=[^\\s\\{])","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#literal"},{"include":"#array-expression"},{"include":"#spawn-expression"},{"include":"#await-expression"},{"include":"#throw-expression"},{"include":"#catch-expression"},{"include":"#expression-operator"},{"include":"#function-call-expression"},{"include":"#dotted-expression"}]},"match-scrutinee-group":{"name":"meta.match.scrutinee.group.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expression"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.baml"}}},"namespace-root":{"name":"support.other.namespace.baml","match":"\\b(?:root|baml)\\b"},"namespace-segment":{"name":"entity.name.namespace.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"null-literal":{"name":"constant.language.null.baml","match":"\\bnull\\b"},"numeric-literal":{"patterns":[{"include":"#bigint-literal"},{"include":"#float-literal"},{"include":"#integer-literal"}]},"optional-call-expression":{"name":"meta.function-call.optional.baml","begin":"(\\?\\.)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"include":"#call-arguments"}],"beginCaptures":{"1":{"name":"punctuation.accessor.baml"}}},"optional-field-access-expression":{"name":"meta.field-access.optional.baml","match":"(\\?\\.)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","captures":{"1":{"name":"punctuation.accessor.baml"},"2":{"name":"variable.other.readwrite.baml"}}},"optional-index-arguments":{"name":"meta.index.arguments.baml","begin":"\\[","end":"\\]","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.end.baml"}}},"optional-index-expression":{"name":"meta.index.optional.baml","begin":"(\\?\\.)\\s*(?=\\[)","end":"(?\u003c=\\])","patterns":[{"include":"#comments"},{"include":"#optional-index-arguments"}],"beginCaptures":{"1":{"name":"punctuation.accessor.baml"}}},"optional-method-call-expression":{"name":"meta.function-call.optional.member.baml","begin":"(\\?\\.)\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=\\s*(?:\u003c[^(){};]*\u003e\\s*)?\\()","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"include":"#optional-method-call-type-arguments"},{"include":"#call-arguments"}],"beginCaptures":{"1":{"name":"punctuation.accessor.baml"},"2":{"name":"entity.name.function.baml"}}},"optional-method-call-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e(?=\\s*\\()","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"optional-operator":{"name":"keyword.operator.optional.baml","match":"\\?"},"parameter":{"name":"meta.parameter.baml","begin":"\\b(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(:)?","end":"(?=,|\\))","patterns":[{"include":"#comments"},{"include":"#parameter-type-parens"},{"include":"#parameter-type-arguments"},{"include":"#parameter-default"},{"include":"#type-expression"}],"beginCaptures":{"1":{"name":"variable.parameter.baml"},"2":{"name":"punctuation.separator.colon.baml"}}},"parameter-default":{"name":"meta.parameter.default.baml","begin":"=","end":"(?=,|\\))","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.baml"}}},"parameter-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"parameter-type-parens":{"name":"meta.group.type.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type.end.baml"}}},"parenthesized-expression":{"name":"meta.group.expression.baml","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.baml"}}},"pattern":{"patterns":[{"include":"#comments"},{"include":"#wildcard-binding-pattern"},{"include":"#typed-binding-pattern"},{"include":"#class-destructure-pattern"},{"include":"#array-destructure-pattern"},{"include":"#bare-binding-pattern"},{"include":"#wildcard-pattern"},{"include":"#type-expression"}]},"postfix-method-call-expression":{"name":"meta.function-call.member.baml","begin":"([.$])\\s*(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=\\s*(?:\u003c[^(){};]*\u003e\\s*)?\\()","end":"(?\u003c=\\))","patterns":[{"include":"#comments"},{"include":"#postfix-method-call-type-arguments"},{"include":"#call-arguments"}],"beginCaptures":{"1":{"name":"punctuation.accessor.baml"},"2":{"name":"entity.name.function.baml"}}},"postfix-method-call-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e(?=\\s*\\()","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"primitive-type":{"name":"support.type.primitive.baml","match":"\\b(?:int|float|bigint|string|bool|image|audio|map|json|unknown|never|Self)\\b"},"raw-string":{"patterns":[{"include":"#raw-string-8"},{"include":"#raw-string-7"},{"include":"#raw-string-6"},{"include":"#raw-string-5"},{"include":"#raw-string-4"},{"include":"#raw-string-3"},{"include":"#raw-string-2"},{"include":"#raw-string-1"}]},"raw-string-1":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{1})\"","end":"\"(#{1})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-2":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{2})\"","end":"\"(#{2})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-3":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{3})\"","end":"\"(#{3})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-4":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{4})\"","end":"\"(#{4})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-5":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{5})\"","end":"\"(#{5})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-6":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{6})\"","end":"\"(#{6})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-7":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{7})\"","end":"\"(#{7})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"raw-string-8":{"name":"string.quoted.raw.baml","begin":"(?\u003c!#)(#{8})\"","end":"\"(#{8})","beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"}}},"retry-policy":{"name":"meta.retry-policy.baml","begin":"^\\s*(retry_policy)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b(?=\\s*\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#config-block"}],"beginCaptures":{"1":{"name":"keyword.declaration.retry-policy.baml"},"2":{"name":"entity.name.retry-policy.baml"}}},"return-statement":{"name":"meta.statement.return.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(return)\\b","end":"(?=[;}]|$)","patterns":[{"include":"#comments"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.flow.return.baml"}}},"self-expression-root":{"name":"variable.language.self.baml","match":"\\bself\\b"},"self-parameter":{"name":"meta.parameter.baml","begin":"\\b(self)\\b(?=\\s*(?:,|\\)))","end":"(?=\\s*(?:,|\\)))","patterns":[{"include":"#comments"}],"beginCaptures":{"1":{"name":"variable.language.self.baml"}}},"semicolon":{"name":"punctuation.terminator.statement.baml","match":";"},"spawn-expression":{"name":"meta.expression.spawn.baml","begin":"\\b(spawn)\\b","end":"(?\u003c=\\})|(?=,|;|$)","patterns":[{"include":"#comments"},{"include":"#spawn-header"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.operator.spawn.baml"}}},"spawn-header":{"name":"meta.spawn.header.baml","begin":"\\G\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#spawn-name"},{"include":"#spawn-with-clause"}]},"spawn-name":{"name":"meta.spawn.name.baml","begin":"\\G\\s*(?!with\\b)(?=[^\\{\\r\\n])","end":"(?=\\s+with\\b|\\s*\\{)","patterns":[{"include":"#comments"},{"include":"#condition-expression"}]},"spawn-with-clause":{"name":"meta.spawn.options.baml","begin":"\\b(with)\\b","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#condition-expression"},{"include":"#comma"}],"beginCaptures":{"1":{"name":"keyword.operator.with.baml"}}},"string-escape":{"patterns":[{"include":"#string-escape-control"},{"include":"#string-escape-quoted-delimiter"},{"include":"#string-escape-unknown"}]},"string-escape-control":{"name":"constant.character.escape.control.baml","match":"\\\\[ntr0bvf]"},"string-escape-quoted-delimiter":{"name":"constant.character.escape.delimiter.baml","match":"\\\\[\"\\\\]"},"string-escape-unknown":{"name":"constant.character.escape.unknown.baml","match":"\\\\."},"string-literal":{"name":"string.quoted.double.baml","begin":"\"","end":"\"","patterns":[{"include":"#string-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.baml"}}},"template-comment":{"name":"comment.block.template.baml","begin":"\\{#","end":"#\\}","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.baml"}}},"template-control":{"name":"meta.template.control.baml","begin":"\\{%","end":"%\\}","patterns":[{"include":"#comments"},{"include":"#template-keyword"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.template.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.section.template.end.baml"}}},"template-interpolation":{"name":"meta.template.interpolation.baml","begin":"\\{\\{","end":"\\}\\}","patterns":[{"include":"#comments"},{"include":"#template-keyword"},{"include":"#expression"}],"beginCaptures":{"0":{"name":"punctuation.section.interpolation.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.section.interpolation.end.baml"}}},"template-keyword":{"name":"keyword.control.template.baml","match":"\\b(?:for|endfor|if|elif|else|endif|in|set|filter|endfilter|macro|endmacro|raw|endraw)\\b"},"template-quoted-string-body":{"name":"string.quoted.double.template.baml","begin":"\"","end":"\"","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"},{"include":"#string-escape"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-1":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{1})(\")","end":"(\")(#{1})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-2":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{2})(\")","end":"(\")(#{2})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-3":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{3})(\")","end":"(\")(#{3})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-4":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{4})(\")","end":"(\")(#{4})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-5":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{5})(\")","end":"(\")(#{5})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-6":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{6})(\")","end":"(\")(#{6})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-7":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{7})(\")","end":"(\")(#{7})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-raw-string-body-8":{"name":"string.quoted.raw.template.baml","begin":"(?\u003c!#)(#{8})(\")","end":"(\")(#{8})","patterns":[{"include":"#template-comment"},{"include":"#template-control"},{"include":"#template-interpolation"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.baml"},"2":{"name":"punctuation.definition.string.begin.baml"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.baml"},"2":{"name":"punctuation.definition.string.end.baml"}}},"template-string":{"name":"meta.template-string.baml","begin":"^\\s*(template_string)\\b","end":"(?:(?\u003c=#)|(?\u003c=\"))(?=\\s*(?:\\r?\\n|$))|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#template-string-name"},{"include":"#function-parameters"},{"include":"#template-string-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.template-string.baml"}}},"template-string-body":{"patterns":[{"include":"#template-raw-string-body-8"},{"include":"#template-raw-string-body-7"},{"include":"#template-raw-string-body-6"},{"include":"#template-raw-string-body-5"},{"include":"#template-raw-string-body-4"},{"include":"#template-raw-string-body-3"},{"include":"#template-raw-string-body-2"},{"include":"#template-raw-string-body-1"},{"include":"#template-quoted-string-body"}]},"template-string-name":{"name":"entity.name.function.template-string.baml","match":"\\b\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\b"},"test":{"name":"meta.test.baml","begin":"^\\s*(test)\\b(?!(?:[^\\S\\r\\n]+\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*[^\\S\\r\\n]*\\{[^\\S\\r\\n]*(?:functions|type_builder)\\b))","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#test-header"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.declaration.test.baml"}}},"test-header":{"name":"meta.test.header.baml","begin":"\\G\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#test-with-keyword"},{"include":"#condition-expression"}]},"test-with-keyword":{"name":"keyword.operator.with.baml","match":"\\bwith\\b"},"testset":{"name":"meta.testset.baml","begin":"^\\s*(testset)\\b","end":"(?\u003c=\\})","patterns":[{"include":"#comments"},{"include":"#test-header"},{"include":"#testset-body"}],"beginCaptures":{"1":{"name":"keyword.declaration.testset.baml"}}},"testset-body":{"name":"meta.testset.body.baml","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.baml"}}},"throw-expression":{"name":"keyword.control.flow.throw.baml","match":"\\bthrow\\b"},"type-alias":{"name":"meta.type-alias.baml","begin":"^\\s*(type)\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(=)","end":"(?\u003c=;)|(?=^\\s*(?:client|retry_policy|generator|template_string|class|enum|interface|implements|implement|function|testset|test|type)\\b)","patterns":[{"include":"#comments"},{"include":"#type-expression"},{"include":"#semicolon"}],"beginCaptures":{"1":{"name":"keyword.declaration.type-alias.baml"},"2":{"name":"entity.name.type.alias.baml"},"3":{"name":"keyword.operator.assignment.baml"}}},"type-arrow-operator":{"name":"keyword.operator.arrow.baml","match":"-\u003e"},"type-as-operator":{"name":"keyword.operator.as.baml","match":"\\bas\\b"},"type-expression":{"patterns":[{"include":"#comments"},{"include":"#primitive-type"},{"include":"#type-literal"},{"include":"#type-arrow-operator"},{"include":"#type-throws-operator"},{"include":"#associated-type-projection"},{"include":"#type-reference"},{"include":"#bare-attribute"},{"include":"#attribute"},{"include":"#type-as-operator"},{"include":"#assignment-operator"},{"include":"#optional-operator"},{"include":"#union-operator"},{"include":"#type-punctuation"},{"include":"#colon-separator"}]},"type-literal":{"patterns":[{"include":"#boolean-literal"},{"include":"#null-literal"},{"include":"#numeric-literal"},{"include":"#string-literal"},{"include":"#raw-string"},{"include":"#backtick-string"}]},"type-punctuation":{"name":"punctuation.definition.type.baml","match":"[\\[\\]\u003c\u003e,()]"},"type-reference":{"name":"meta.type-reference.baml","match":"\\b(?:(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\s*(\\.)\\s*)?((?:\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*\\s*\\.\\s*)*)(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b","captures":{"1":{"patterns":[{"include":"#namespace-root"},{"include":"#namespace-segment"}]},"2":{"name":"punctuation.accessor.baml"},"3":{"patterns":[{"include":"#namespace-segment"},{"include":"#accessor-dot"}]},"4":{"name":"entity.name.type.baml"}}},"type-throws-operator":{"name":"keyword.operator.throws.baml","match":"\\bthrows\\b"},"typed-binding-pattern":{"name":"meta.pattern.binding.baml","match":"\\b((?:let|const))\\s+(\\$?[A-Za-z_][A-Za-z0-9_-]*(?:\\$[A-Za-z_][A-Za-z0-9_-]*)*)\\b\\s*(:)","captures":{"1":{"name":"keyword.declaration.binding.baml"},"2":{"name":"variable.other.binding.baml"},"3":{"name":"punctuation.separator.colon.baml"}}},"union-operator":{"name":"keyword.operator.type.baml","match":"\\|"},"upcast-expression":{"name":"meta.expression.upcast.baml","begin":"(\\.)\\s*(as)\\b(?=\\s*\u003c)","end":"(?\u003c=\u003e)","patterns":[{"include":"#comments"},{"include":"#upcast-type-arguments"}],"beginCaptures":{"1":{"name":"punctuation.accessor.baml"},"2":{"name":"keyword.operator.as.baml"}}},"upcast-type-arguments":{"name":"meta.type-arguments.baml","begin":"\u003c","end":"\u003e","patterns":[{"include":"#comments"},{"include":"#type-expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-arguments.begin.baml"}},"endCaptures":{"0":{"name":"punctuation.definition.type-arguments.end.baml"}}},"watch-statement":{"name":"meta.statement.watch.baml","begin":"(?:^\\s*|\\G\\s*|(?\u003c=[{;}])\\s*)(watch)\\b","end":"(?=[;}]|$)","patterns":[{"include":"#comments"},{"include":"#watch-statement-pattern"},{"include":"#assignment-operator"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.control.watch.baml"}}},"watch-statement-pattern":{"name":"meta.pattern.watch.baml","begin":"\\G\\s*(?=(?:let|const)\\b)","end":"(?=\\s*=)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"while-condition":{"name":"meta.while.condition.baml","begin":"\\G\\s*","end":"(?=\\{)","patterns":[{"include":"#comments"},{"include":"#condition-expression"}]},"while-let-pattern":{"name":"meta.pattern.while-let.baml","begin":"\\G\\s*(?=(?:let|const)\\b)","end":"(?=\\s*=)","patterns":[{"include":"#comments"},{"include":"#pattern"}]},"while-statement":{"name":"meta.statement.while.baml","begin":"\\b(while)\\b","end":"(?\u003c=\\})(?=\\s*(?:;|$))|(?=;|$)","patterns":[{"include":"#comments"},{"include":"#while-let-pattern"},{"include":"#assignment-operator"},{"include":"#while-condition"},{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.control.loop.while.baml"}}},"wildcard-binding-pattern":{"name":"meta.pattern.wildcard.baml","match":"\\b((?:let|const))\\s+(_)\\b","captures":{"1":{"name":"keyword.declaration.binding.baml"},"2":{"name":"variable.language.wildcard.baml"}}},"wildcard-pattern":{"name":"variable.language.wildcard.baml","match":"\\b_\\b"}}}
|
data/grammars/source.bb.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"BitBake","scopeName":"source.bb","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#string"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#comment"},{"include":"#inline-python"},{"include":"#variable-expansion"},{"include":"#functions"},{"include":"#bitbake-operator"},{"include":"#variable-name"},{"include":"#operator"}],"repository":{"bitbake-operator":{"name":"keyword.control.bb","match":"(?\u003c=:)(append|prepend|remove)"},"comment":{"match":"(\\s*)((#)(.*))\\n","captures":{"1":{"name":"punctuation.whitespace.comment.leading.bb"},"2":{"name":"comment.line.bb"},"3":{"name":"comment.line.number-sign.bb"},"4":{"name":"comment.line.text.bb"}}},"escaped-double-quote":{"name":"constant.character.escape.bb","match":"\\\\\""},"escaped-single-quote":{"name":"constant.character.escape.bb","match":"\\\\'"},"functions":{"match":"([a-zA-Z_][\\w_]*)(:([a-zA-Z_][\\w_]*))?(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.python.bb"},"2":{"name":"keyword.operator.bb"},"3":{"name":"keyword.other.bitbake-operator.bb"}}},"inline-python":{"begin":"(\\$\\{(@))","end":"(\\})","patterns":[{"include":"#operator"},{"include":"#keywords"},{"name":"meta.embedded.brackets.begin.bb","match":"(\\[)"},{"name":"meta.embedded.brackets.end.bb","match":"(\\])"},{"include":"#numeric"},{"include":"#functions"},{"include":"#parenthesis-open"},{"include":"#parenthesis-close"},{"include":"#variable-name"},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"},"2":{"name":"entity.name.function.decorator.python.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"keywords":{"patterns":[{"match":"(?\u003c![[:punct:]])\\b(include|require|inherit|inherit_defer|addtask|deltask|after|before|export|echo|if|fi|unset|print|fakeroot|EXPORT_FUNCTIONS|INHERIT)\\b(?![[:punct:]])","captures":{"1":{"name":"keyword.control.bb"}}},{"include":"#python-keywords"}
|
|
1
|
+
{"name":"BitBake","scopeName":"source.bb","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#string"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#comment"},{"include":"#inline-python"},{"include":"#variable-expansion"},{"include":"#functions"},{"include":"#bitbake-operator"},{"include":"#variable-name"},{"include":"#operator"}],"repository":{"bitbake-operator":{"name":"keyword.control.bb","match":"(?\u003c=:)(append|prepend|remove)"},"comment":{"match":"(\\s*)((#)(.*))\\n","captures":{"1":{"name":"punctuation.whitespace.comment.leading.bb"},"2":{"name":"comment.line.bb"},"3":{"name":"comment.line.number-sign.bb"},"4":{"name":"comment.line.text.bb"}}},"escaped-double-quote":{"name":"constant.character.escape.bb","match":"\\\\\""},"escaped-single-quote":{"name":"constant.character.escape.bb","match":"\\\\'"},"functions":{"match":"([a-zA-Z_][\\w_]*)(:([a-zA-Z_][\\w_]*))?(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.python.bb"},"2":{"name":"keyword.operator.bb"},"3":{"name":"keyword.other.bitbake-operator.bb"}}},"inline-python":{"begin":"(\\$\\{(@))","end":"(\\})","patterns":[{"include":"#operator"},{"include":"#keywords"},{"name":"meta.embedded.brackets.begin.bb","match":"(\\[)"},{"name":"meta.embedded.brackets.end.bb","match":"(\\])"},{"include":"#numeric"},{"include":"#functions"},{"include":"#parenthesis-open"},{"include":"#parenthesis-close"},{"include":"#variable-name"},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"},"2":{"name":"entity.name.function.decorator.python.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"keywords":{"patterns":[{"match":"^(fakeroot +)?(python|def)\\b","captures":{"1":{"name":"keyword.control.bb"},"2":{"name":"storage.type.function.python.bb"}}},{"match":"(?\u003c![[:punct:]])\\b(include|require|inherit|inherit_defer|addtask|deltask|after|before|export|echo|if|fi|unset|print|fakeroot|EXPORT_FUNCTIONS|INHERIT)\\b(?![[:punct:]])","captures":{"1":{"name":"keyword.control.bb"}}},{"include":"#python-keywords"}]},"numeric":{"name":"constant.numeric.bb","match":"(-|\\.)?[0-9]+(\\.[0-9]+)?"},"operator":{"name":"keyword.operator.bb","match":"(=|\\?=|\\?\\?=|:=|\\+=|=\\+|\\.=|=\\.|\\.|,)"},"parenthesis-close":{"name":"meta.embedded.parenthesis.close.bb","match":"\\)"},"parenthesis-open":{"name":"meta.embedded.parenthesis.open.bb","match":"([\\w])*\\("},"python-keywords":{"patterns":[{"match":"\\b(if|elif|else|for|while|break|continue|return|yield|try|except|finally|raise|assert|import|from|as|pass|del|with|async|await)\\b","captures":{"1":{"name":"keyword.control.bb"}}},{"match":"\\b(def|class|global|nonlocal|and|or|not|in|is|lambda)\\b\\s+","captures":{"1":{"name":"storage.type.function.python.bb"}}},{"name":"constant.language.python.bb","match":"\\b(True|False)\\b"}]},"string":{"patterns":[{"name":"string.quoted.triple.bb","begin":"(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.double.bb","begin":"(\")","end":"(\")","patterns":[{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.single.bb","begin":"(')","end":"(')","patterns":[{"include":"#escaped-single-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]}]},"variable-expansion":{"name":"variable.other.names.bb","begin":"(\\$\\{)","end":"(\\})","beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"variable-name":{"match":"([a-zA-Z_][\\w_]*)","captures":{"1":{"name":"variable.other.names.bb"}}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"bird2","scopeName":"source.bird2","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#ip-addresses"},{"include":"#prefixes"},{"include":"#vpn-rd"},{"include":"#bytestrings"},{"include":"#bgp-paths"},{"include":"#print-statements"},{"include":"#template-definitions"},{"include":"#filter-definitions"},{"include":"#function-definitions"},{"include":"#protocol-definitions"},{"include":"#next-hop-statements"},{"include":"#neighbor-statements"},{"include":"#import-export-statements"},{"include":"#variable-declarations"},{"include":"#method-calls"},{"include":"#function-calls"},{"include":"#method-properties"},{"include":"#route-attributes"},{"include":"#data-types"},{"include":"#constants"},{"include":"#protocol-phrases"},{"include":"#structural-keywords"},{"include":"#functional-keywords"},{"include":"#semantic-modifiers"},{"include":"#builtin-functions"},{"include":"#filter-names"},{"include":"#user-variables"},{"include":"#operators"},{"include":"#numbers"},{"include":"#symbols"},{"include":"#blocks"}],"repository":{"bgp-paths":{"patterns":[{"name":"meta.bgp-path.bird","begin":"\\[=","end":"=\\]","patterns":[{"name":"keyword.operator.wildcard.bird","match":"[*?+]"},{"name":"constant.numeric.asn.bird","match":"\\b[0-9]+\\b"},{"include":"#operators"},{"include":"#symbols"}],"beginCaptures":{"0":{"name":"punctuation.definition.bgp-path.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.bgp-path.end.bird"}}}]},"blocks":{"patterns":[{"name":"meta.block.bird","begin":"\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.set.bird","begin":"\\[","end":"\\]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.set.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.set.end.bird"}}},{"name":"meta.tuple.bird","begin":"\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"punctuation.definition.tuple.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.tuple.end.bird"}}},{"name":"punctuation.terminator.statement.bird","match":";"},{"name":"punctuation.separator.bird","match":","}]},"builtin-functions":{"patterns":[{"name":"support.function.builtin.bird","match":"\\b(?:defined|unset|roa_check|aspa_check|aspa_check_downstream|aspa_check_upstream|from_hex|format|append|prepend|add|delete|empty|reset|bt_assert|bt_check_assign|bt_test_suite|bt_test_same)\\b"}]},"bytestrings":{"patterns":[{"name":"constant.numeric.bytestring.bird","match":"\\bhex:[0-9a-fA-F]{2}(?:[:\\-\\s\\.]*[0-9a-fA-F]{2})*\\b"},{"name":"constant.numeric.bytestring.bird","match":"\\b(?:[0-9a-fA-F]{2}[:\\-\\s\\.]*){15,}[0-9a-fA-F]{2}\\b"},{"name":"constant.numeric.bytestring.bird","match":"\\b[0-9a-fA-F]{32,}\\b"}]},"comments":{"patterns":[{"name":"comment.line.number-sign.bird","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.bird"}}},{"name":"comment.block.bird","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.bird"}}}]},"constants":{"patterns":[{"name":"constant.language.boolean.bird","match":"\\b(?:on|off|yes|no|true|false)\\b"},{"name":"constant.language.special.bird","match":"\\b(?:empty|unknown|generic|rt|ro|one|ten)\\b"},{"name":"constant.language.scope.bird","match":"\\b(?:SCOPE_HOST|SCOPE_LINK|SCOPE_SITE|SCOPE_ORGANIZATION|SCOPE_UNIVERSE|SCOPE_UNDEFINED)\\b"},{"name":"constant.language.source.bird","match":"\\b(?:RTS_STATIC|RTS_INHERIT|RTS_DEVICE|RTS_STATIC_DEVICE|RTS_REDIRECT|RTS_RIP|RTS_OSPF|RTS_OSPF_IA|RTS_OSPF_EXT1|RTS_OSPF_EXT2|RTS_BGP|RTS_PIPE|RTS_BABEL|RTS_RPKI|RTS_L3VPN|RTS_AGGREGATED|RTS_BRIDGE|RTS_EVPN)\\b"},{"name":"constant.language.dest.bird","match":"\\b(?:RTD_UNICAST|RTD_ROUTER|RTD_DEVICE|RTD_MULTIPATH|RTD_BLACKHOLE|RTD_UNREACHABLE|RTD_PROHIBIT)\\b"},{"name":"constant.language.roa.bird","match":"\\b(?:ROA_UNKNOWN|ROA_INVALID|ROA_VALID)\\b"},{"name":"constant.language.aspa.bird","match":"\\b(?:ASPA_UNKNOWN|ASPA_INVALID|ASPA_VALID)\\b"},{"name":"constant.language.bgp-origin.bird","match":"\\b(?:ORIGIN_IGP|ORIGIN_EGP|ORIGIN_INCOMPLETE)\\b"},{"name":"constant.language.ra-preference.bird","match":"\\b(?:RA_PREF_LOW|RA_PREF_MEDIUM|RA_PREF_HIGH)\\b"},{"name":"constant.language.address-family.bird","match":"\\b(?:AF_IPV4|AF_IPV6)\\b"},{"name":"constant.language.bridge-source.bird","match":"\\b(?:KBR_SRC_BIRD|KBR_SRC_LOCAL|KBR_SRC_STATIC|KBR_SRC_DYNAMIC)\\b"},{"name":"constant.language.net-type.bird","match":"\\b(?:NET_IP4|NET_IP6|NET_IP6_SADR|NET_VPN4|NET_VPN6|NET_ROA4|NET_ROA6|NET_FLOW4|NET_FLOW6|NET_MPLS|NET_ETH|NET_ASPA|NET_EVPN|NET_EVPN_EAD|NET_EVPN_MAC|NET_EVPN_IMET|NET_EVPN_ES|NET_NEIGHBOR)\\b"},{"name":"constant.language.mpls.bird","match":"\\b(?:MPLS_POLICY_NONE|MPLS_POLICY_STATIC|MPLS_POLICY_PREFIX|MPLS_POLICY_AGGREGATE|MPLS_POLICY_VRF)\\b"}]},"data-types":{"patterns":[{"name":"storage.type.bird","match":"\\b(?:(?:int|pair|quad|ip|prefix|mac|ec|lc|rd|enum)\\s+set|int|bool|ip|prefix|mac|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\b"}]},"filter-definitions":{"patterns":[{"name":"meta.filter-definition.bird","begin":"\\b(filter)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.filter.bird"},"2":{"name":"entity.name.function.filter.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}}]},"filter-names":{"patterns":[{"name":"entity.name.function.filter.bird","match":"\\b[a-zA-Z_][a-zA-Z0-9_]*_filter\\b"}]},"function-calls":{"patterns":[{"name":"meta.function-call.bird","begin":"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"entity.name.function.call.bird"}}}]},"function-definitions":{"patterns":[{"name":"meta.function-definition.bird","begin":"\\b(function)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))(?=\\s*\\()","end":"\\}","patterns":[{"name":"meta.function-parameters.bird","begin":"\\(","end":"\\)","patterns":[{"include":"#data-types"},{"include":"#symbols"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.bird"}}},{"name":"meta.function-return-type.bird","begin":"-\u003e","end":"(?=\\{)","patterns":[{"include":"#data-types"}],"beginCaptures":{"0":{"name":"keyword.operator.return-type.bird"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.function.bird"},"2":{"name":"entity.name.function.user-defined.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}}]},"functional-keywords":{"patterns":[{"name":"keyword.control.protocol-type.bird","match":"\\b(?:static|rip|ospf|bgp|babel|rpki|bfd|bmp|device|direct|kernel|pipe|perf|mrt|aggregator|l3vpn|radv|bridge|evpn)\\b"},{"name":"keyword.control.routing.bird","match":"\\b(?:graceful|restart|preference|disabled|hold|keepalive|connect|retry|start|delay|error|wait|forget|scan|randomize|router|id)\\b"},{"name":"keyword.other.interface.bird","match":"\\b(?:interface|type|wired|wireless|tunnel|rxcost|limit|hello|update|interval|port|tx|class|dscp|priority|rx|buffer|length|check|link|rtt|cost|min|max|decay|send|timestamps)\\b"},{"name":"keyword.other.device.bird","match":"\\b(?:preferred)\\b"},{"name":"keyword.other.rpki.bird","match":"\\b(?:refresh\\s+keep|retry\\s+keep|expire\\s+keep|transport\\s+tcp|transport\\s+ssh|authentication\\s+none|authentication\\s+md5|local\\s+address|ignore\\s+max\\s+length|min\\s+version|max\\s+version|bird\\s+private\\s+key|remote\\s+public\\s+key)\\b|\\b(?:refresh|retry|expire|transport|ssh|tcp|user|address|version|ignore|private|public|key)\\b"},{"name":"keyword.other.auth.bird","match":"\\b(?:cmac\\s+aes128|authentication|none|mac|permissive|ao|password|key|keys|secret|deprecated|preferred|generate|accept|from|to|algorithm|hmac|cmac|aes128|sha1|sha224|sha256|sha384|sha512|blake2s128|blake2s256|blake2b256|blake2b512)\\b"},{"name":"keyword.other.time.bird","match":"\\b(?:time)\\b"},{"name":"keyword.other.config.bird","match":"\\b(?:hostname|description|debug|log|syslog|stderr|udp|cli|bird|protocols|tables|channels|timeouts|passwords|bfd|confederation|cluster|stub|dead|neighbors|area|md5|multihop|passive|rfc1583compat|tick|ls|retransmit|transmit|ack|state|database|summary|external|nssa|translator|always|candidate|never|role|stability|election|action|warn|warning|auth|bug|fatal|info|trace|block|disable|keep|filtered|receive|modify|add|delete|withdraw|unreachable|blackhole|prohibit|unreach|igp_metric|localpref|med|origin|community|large_community|ext_community|as_path|prepend|weight|gateway|scope|onlink|recursive|multipath|igp|channel|sadr|src|learn|persist|via|ng|threads|thread|group|cork|threshold|settle|digest|fixed|ping|wakeup|scheduling|sockets|allocator|timers|mrtdump|timeformat|preexport|noexport|exported|stats|count|rpki|reload)\\b"},{"name":"keyword.other.flowspec.bird","match":"\\b(?:flow4|flow6|dst|src|proto|header|dport|sport|icmp|code|tcp|flags|dscp|dont_fragment|is_fragment|first_fragment|last_fragment|fragment|label|offset)\\b"},{"name":"keyword.other.address.bird","match":"\\b(?:ipv4-mpls|ipv6-mpls|ipv6-sadr|vpn4-mc|vpn4-mpls|vpn6-mc|vpn6-mpls|ipv4_mc|ipv6_mc|vpn4|vpn6|mpls|aspa|roa4|roa6|eth|evpn|neighbor|pri|sec)\\b"},{"name":"keyword.other.quick-declaration.bird","match":"\\b(?:all|none)\\b"}]},"import-export-statements":{"patterns":[{"name":"meta.import-statement.bird","match":"\\b(import)\\s+(filter)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\b","captures":{"1":{"name":"keyword.control.import-export.bird"},"2":{"name":"keyword.control.filter.bird"},"3":{"name":"entity.name.function.filter.bird"}}},{"name":"meta.import-filter-inline.bird","begin":"\\b(import)\\s+(filter)\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.import-export.bird"},"2":{"name":"keyword.control.filter.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.export-where-clause.bird","begin":"\\b(export)\\s+(where)\\b","end":";","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.import-export.bird"},"2":{"name":"keyword.control.where.bird"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.bird"}}},{"name":"meta.export-prefilter-clause.bird","begin":"\\b(export\\s+in)\\b","end":";","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.import-export.bird"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.bird"}}},{"name":"meta.export-statement.bird","match":"\\b(export)\\s+(filter)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\b","captures":{"1":{"name":"keyword.control.import-export.bird"},"2":{"name":"keyword.control.filter.bird"},"3":{"name":"entity.name.function.filter.bird"}}}]},"ip-addresses":{"patterns":[{"name":"constant.numeric.ip.ipv4.bird","match":"\\b(?:[0-9]{1,3}\\.){3}[0-9]{1,3}(?:/[0-9]{1,2})?\\b"},{"name":"constant.numeric.ip.ipv6.bird","match":"\\b(?:[0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}(?:/[0-9]{1,3})?\\b"},{"name":"constant.numeric.ip.ipv6.bird","match":"::(?:[0-9a-fA-F]{0,4}:){0,6}[0-9a-fA-F]{0,4}(?:/[0-9]{1,3})?\\b"},{"name":"constant.numeric.ip.ipv6.bird","match":"\\b(?:[0-9a-fA-F]{0,4}:){1,6}::(?:[0-9a-fA-F]{0,4}:){0,5}[0-9a-fA-F]{0,4}(?:/[0-9]{1,3})?\\b"}]},"method-calls":{"patterns":[{"name":"meta.method-call.bird","begin":"\\.\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(","end":"\\)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"entity.name.function.method.bird"}}},{"name":"meta.method-access.bird","match":"\\.\\s*([a-zA-Z_][a-zA-Z0-9_]*)","captures":{"1":{"name":"variable.other.property.bird"}}}]},"method-properties":{"patterns":[{"name":"support.variable.property.bird","match":"(?\u003c=\\.)\\s*(?:first|last|last_nonaggregated|len|asn|data|data1|data2|is_v4|ip|src|dst|rd|maxlen|type|mask|min|max|mac|vlan_id|evpn_type|evpn_tag|evpn_esi|router_ip)\\b(?!\\s*\\()"}]},"neighbor-statements":{"patterns":[{"name":"meta.local-as-statement.bird","match":"\\b(local)\\s+((?:[0-9a-fA-F:.]+|[A-Za-z_][A-Za-z0-9_]*|'[0-9A-Za-z_.:-]+'))(?:\\s+(port)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*)))?\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.local.bird"},"2":{"name":"entity.name.symbol.local-address.bird"},"3":{"name":"keyword.control.port.bird"},"4":{"name":"constant.numeric.port.bird"},"5":{"name":"keyword.control.as.bird"},"6":{"name":"constant.numeric.asn.bird"}}},{"name":"meta.local-as-template-statement.bird","match":"\\b(local)\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.local.bird"},"2":{"name":"keyword.control.as.bird"},"3":{"name":"constant.numeric.asn.bird"}}},{"name":"meta.neighbor-port-statement.bird","match":"\\b(neighbor)\\s+([0-9a-fA-F:.]+)\\s*(%\\s*(?:'([0-9A-Za-z_.:-]+)'|([A-Za-z0-9_.:-]+)))?(?:\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*)))?\\s+(port)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"constant.numeric.ip-address.bird"},"3":{"name":"meta.interface-reference.bird"},"4":{"name":"string.quoted.single.interface.bird"},"5":{"name":"variable.other.interface.bird"},"6":{"name":"keyword.control.as.bird"},"7":{"name":"constant.numeric.asn.bird"},"8":{"name":"keyword.control.port.bird"},"9":{"name":"constant.numeric.port.bird"}}},{"name":"meta.neighbor-port-symbolic-statement.bird","match":"\\b(neighbor)\\s+((?:'[0-9A-Za-z_.:-]+'|(?!as\\b|range\\b)[A-Za-z_][A-Za-z0-9_]*))\\s*(%\\s*(?:'([0-9A-Za-z_.:-]+)'|([A-Za-z0-9_.:-]+)))?(?:\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*)))?\\s+(port)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"entity.name.symbol.neighbor-address.bird"},"3":{"name":"meta.interface-reference.bird"},"4":{"name":"string.quoted.single.interface.bird"},"5":{"name":"variable.other.interface.bird"},"6":{"name":"keyword.control.as.bird"},"7":{"name":"constant.numeric.asn.bird"},"8":{"name":"keyword.control.port.bird"},"9":{"name":"constant.numeric.port.bird"}}},{"name":"meta.neighbor-statement.bird","match":"\\b(neighbor)\\s+([0-9a-fA-F:.]+)\\s*(%\\s*(?:'([0-9A-Za-z_.:-]+)'|([A-Za-z0-9_.:-]+)))?\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"constant.numeric.ip-address.bird"},"3":{"name":"meta.interface-reference.bird"},"4":{"name":"string.quoted.single.interface.bird"},"5":{"name":"variable.other.interface.bird"},"6":{"name":"keyword.control.as.bird"},"7":{"name":"constant.numeric.asn.bird"}}},{"name":"meta.neighbor-symbolic-statement.bird","match":"\\b(neighbor)\\s+((?:'[0-9A-Za-z_.:-]+'|(?!as\\b|range\\b)[A-Za-z_][A-Za-z0-9_]*))\\s*(%\\s*(?:'([0-9A-Za-z_.:-]+)'|([A-Za-z0-9_.:-]+)))?\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"entity.name.symbol.neighbor-address.bird"},"3":{"name":"meta.interface-reference.bird"},"4":{"name":"string.quoted.single.interface.bird"},"5":{"name":"variable.other.interface.bird"},"6":{"name":"keyword.control.as.bird"},"7":{"name":"constant.numeric.asn.bird"}}},{"name":"meta.neighbor-template-statement.bird","match":"\\b(neighbor)\\s+(as)\\s+((?:[0-9]+|[A-Za-z_][A-Za-z0-9_]*))\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"keyword.control.as.bird"},"3":{"name":"constant.numeric.asn.bird"}}},{"name":"meta.neighbor-role-statement.bird","match":"\\b(neighbor)\\s+([0-9a-fA-F:.]+|(?:'[0-9A-Za-z_.:-]+'|(?!as\\b|range\\b)[A-Za-z_][A-Za-z0-9_]*))\\s+(internal|external)\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"entity.name.symbol.neighbor-address.bird"},"3":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.neighbor-onlink-statement.bird","match":"\\b(neighbor)\\s+([0-9a-fA-F:.]+|(?:'[0-9A-Za-z_.:-]+'|(?!as\\b|range\\b)[A-Za-z_][A-Za-z0-9_]*))\\s+(onlink)\\b","captures":{"1":{"name":"keyword.control.neighbor.bird"},"2":{"name":"entity.name.symbol.neighbor-address.bird"},"3":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.source-address-statement.bird","match":"\\b(source address)\\s+([0-9a-fA-F:.]+)\\b","captures":{"1":{"name":"keyword.control.source.bird"},"2":{"name":"constant.numeric.ip-address.bird"}}}]},"next-hop-statements":{"patterns":[{"name":"meta.next-hop-ipv4.bird","match":"\\b(next hop)\\s+(ipv4)\\s+([0-9\\.]+)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.ip-version.bird"},"3":{"name":"constant.numeric.ip-address.bird"}}},{"name":"meta.next-hop-ipv6.bird","match":"\\b(next hop)\\s+(ipv6)\\s+([0-9a-fA-F:]+)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.ip-version.bird"},"3":{"name":"constant.numeric.ip-address.bird"}}},{"name":"meta.next-hop-simple.bird","match":"\\b(next hop)\\s+(self)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.next-hop-prefer-statement.bird","match":"\\b(next hop prefer)\\s+(global|local|native|ipv6)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.next-hop-keep-statement.bird","match":"\\b(next hop keep)(?:\\s+(ibgp|ebgp))?\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.extended-next-hop-statement.bird","match":"\\b(extended next hop)\\s+(on|off)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.semantic-modifier.bird"}}},{"name":"meta.require-extended-next-hop-statement.bird","match":"\\b(require extended next hop)\\s+(yes|no|on|off|true|false)\\b","captures":{"1":{"name":"keyword.control.routing.bird"},"2":{"name":"keyword.other.semantic-modifier.bird"}}}]},"numbers":{"patterns":[{"name":"constant.numeric.hex.bird","match":"\\b0x[0-9a-fA-F]+\\b"},{"name":"constant.numeric.decimal.bird","match":"\\b[0-9]+\\b"},{"name":"constant.numeric.time.bird","match":"\\b[0-9]+\\s*(s|ms|us)\\b","captures":{"1":{"name":"keyword.other.unit.bird"}}}]},"operators":{"patterns":[{"name":"keyword.operator.comparison.bird","match":"(?:==|!=|\u003c=|\u003e=|!~|=|~|\u003c|\u003e)"},{"name":"keyword.operator.logical.bird","match":"(?:\u0026\u0026|\\|\\||!|-\u003e)"},{"name":"keyword.operator.bitwise.bird","match":"(?\u003c![\u0026])\u0026(?![\u0026])|(?\u003c![|])\\|(?![|])"},{"name":"keyword.operator.concat.bird","match":"(?:\\+\\+)"},{"name":"keyword.operator.arithmetic.bird","match":"(?:\\+|\\-|\\*|/|%)"},{"name":"keyword.operator.range.bird","match":"\\.\\."},{"name":"keyword.operator.accessor.bird","match":"\\."}]},"prefixes":{"patterns":[{"name":"constant.numeric.prefix.bird","match":"(?\u003c![0-9A-Za-z_:])(?:(?:[0-9]{1,3}\\.){3}[0-9]{1,3}|(?:[0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4})/[0-9]{1,3}(?:[+\\-]|\\{[0-9]+,[0-9]+\\})?(?![0-9A-Za-z_])"}]},"print-statements":{"patterns":[{"name":"meta.print-statement.bird","begin":"\\b(print|printn)\\b","end":";","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.other.print.bird"}},"endCaptures":{"0":{"name":"punctuation.terminator.statement.bird"}}}]},"protocol-definitions":{"patterns":[{"name":"meta.protocol-definition-with-template.bird","begin":"\\b(protocol)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s+(from)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.protocol.bird"},"2":{"name":"entity.name.type.protocol.bird"},"3":{"name":"entity.name.function.protocol.bird"},"4":{"name":"keyword.control.template-reference.bird"},"5":{"name":"entity.name.function.template.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.protocol-definition-with-name.bird","begin":"\\b(protocol)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.protocol.bird"},"2":{"name":"entity.name.type.protocol.bird"},"3":{"name":"entity.name.function.protocol.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.protocol-definition-anonymous.bird","begin":"\\b(protocol)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.protocol.bird"},"2":{"name":"entity.name.type.protocol.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}}]},"protocol-phrases":{"patterns":[{"name":"keyword.other.bfd.phrase.bird","match":"\\b(?:strict\\s+bind|zero\\s+udp6\\s+checksum\\s+rx|idle\\s+tx\\s+interval|min\\s+rx\\s+interval|min\\s+tx\\s+interval|accept\\s+ipv4|accept\\s+multihop|authentication\\s+meticulous\\s+keyed\\s+sha1|keyed\\s+md5|keyed\\s+sha1|meticulous\\s+keyed\\s+md5|meticulous\\s+keyed\\s+sha1|express\\s+thread\\s+group|multiplier|keyed|meticulous)\\b"},{"name":"keyword.other.babel.phrase.bird","match":"\\b(?:hello\\s+interval|update\\s+interval|send\\s+timestamps|rtt\\s+(?:cost|min|max|decay)|next\\s+hop\\s+prefer\\s+ipv6|next\\s+hop\\s+prefer|next\\s+hop\\s+ipv4|next\\s+hop\\s+ipv6|authentication\\s+mac\\s+permissive|authentication\\s+mac|randomize\\s+router\\s+id|show\\s+babel\\s+interfaces|show\\s+babel\\s+neighbors|show\\s+babel\\s+entries|show\\s+babel\\s+routes|prefer|native)\\b"},{"name":"keyword.other.bgp.phrase.bird","match":"\\b(?:ipv4\\s+multicast|ipv4\\s+mpls|ipv6\\s+multicast|ipv6\\s+mpls|vpn4\\s+multicast|vpn4\\s+mpls|vpn6\\s+multicast|vpn6\\s+mpls|rr\\s+cluster\\s+id|confederation\\s+member|hold\\s+time|min\\s+hold\\s+time|startup\\s+hold\\s+time|path\\s+metric|prefer\\s+older|connect\\s+delay\\s+time|connect\\s+retry\\s+time|keepalive\\s+time|min\\s+keepalive\\s+time|send\\s+hold\\s+time|error\\s+forget\\s+time|error\\s+wait\\s+time|min\\s+graceful\\s+restart\\s+time|max\\s+graceful\\s+restart\\s+time|long\\s+lived\\s+graceful\\s+restart\\s+aware|min\\s+long\\s+lived\\s+stale\\s+time|max\\s+long\\s+lived\\s+stale\\s+time|disable\\s+rx|send\\s+id|recv\\s+id|next\\s+hop\\s+self|next\\s+hop\\s+address|next\\s+hop\\s+ibgp|next\\s+hop\\s+ebgp|next\\s+hop\\s+prefer\\s+global|next\\s+hop\\s+prefer\\s+local|next\\s+hop\\s+keep|link\\s+local\\s+next\\s+hop\\s+format|import\\s+table|export\\s+table|base\\s+table|igp\\s+table|add\\s+paths\\s+rx|add\\s+paths\\s+tx|add\\s+paths|require\\s+add\\s+paths|gateway\\s+direct|aigp\\s+originate|long\\s+lived\\s+graceful\\s+restart|long\\s+lived\\s+stale\\s+time|dynamic\\s+name(?:\\s+digits)?|free\\s+bind|ttl\\s+security|multihop\\s+password|authentication\\s+ao|tx\\s+size\\s+warning|rr\\s+client|rs\\s+client|advertise\\s+hostname|interpret\\s+communities|deterministic\\s+med|default\\s+bgp_local_pref|default\\s+bgp_med|med\\s+metric|igp\\s+metric|missing\\s+lladdr|gateway\\s+address|forwarding\\s+addressed|gateway\\s+recursive|allow\\s+local\\s+as|allow\\s+bogus\\s+as|allow\\s+bgp_local_pref|allow\\s+bgp_med|allow\\s+as\\s+sets|enable\\s+route\\s+refresh|enable\\s+enhanced\\s+route\\s+refresh|require\\s+route\\s+refresh|require\\s+enhanced\\s+route\\s+refresh|enable\\s+as4|require\\s+as4|enable\\s+extended\\s+messages|require\\s+extended\\s+messages|require\\s+hostname|require\\s+graceful\\s+restart|require\\s+long\\s+lived\\s+graceful\\s+restart|require\\s+extended\\s+next\\s+hop|disable\\s+after\\s+error|disable\\s+after\\s+cease|prefix\\s+limit\\s+hit|administrative\\s+shutdown|peer\\s+deconfigured|administrative\\s+reset|connection\\s+rejected|configuration\\s+change|connection\\s+collision|out\\s+of\\s+resources|enforce\\s+first\\s+as|neighbor\\s+range|interface\\s+range|originate\\s+community|full\\s+route\\s+table|link\\s+local\\s+next\\s+hop\\s+format\\s+(?:native|single|double)|mandatory|secondary|validate|capabilities|primary|aigp|setkey|drop|single|double)\\b"},{"name":"keyword.other.bgp-role.phrase.bird","match":"\\b(?:local\\s+role|require\\s+roles)\\b"},{"name":"constant.language.bgp-role.bird","match":"\\b(?:provider|customer|rs_server|rs_client)\\b"},{"name":"keyword.other.mpls.phrase.bird","match":"\\b(?:mpls\\s+domain|label\\s+range\\s+static|label\\s+range\\s+dynamic|label\\s+range|label\\s+policy|static\\s+label|dynamic\\s+label)\\b"},{"name":"keyword.other.static.phrase.bird","match":"\\b(?:recursive\\s+mpls|show\\s+static|igp\\s+table|check\\s+link)\\b"},{"name":"keyword.other.auth-window.phrase.bird","match":"\\b(?:generate\\s+from|generate\\s+to|accept\\s+from|accept\\s+to)\\b"},{"name":"keyword.other.channel-limit.phrase.bird","match":"\\b(?:import\\s+limit|export\\s+limit)\\b"},{"name":"keyword.other.socket.phrase.bird","match":"\\b(?:tx\\s+class|tx\\s+dscp|tx\\s+priority)\\b"},{"name":"keyword.other.interface.phrase.bird","match":"\\b(?:rx\\s+buffer|tx\\s+length|check\\s+link)\\b"},{"name":"keyword.other.diagnostics.phrase.bird","match":"\\b(?:debug\\s+latency\\s+limit|debug\\s+latency|debug\\s+show\\s+route|debug\\s+protocols|debug\\s+channels|debug\\s+tables|debug\\s+commands|debug\\s+all|debug\\s+(?:events|filters|interfaces|off|packets|routes|states)|watchdog\\s+warning|watchdog\\s+timeout|states|routes|filters|interfaces|events|packets|messages)\\b"},{"name":"keyword.other.table.phrase.bird","match":"\\b(?:min\\s+settle\\s+time|max\\s+settle\\s+time|gc\\s+threshold|gc\\s+period|export\\s+settle\\s+time|sorted|trie|roa)\\b"},{"name":"keyword.other.aggregator.phrase.bird","match":"\\b(?:peer\\s+table|aggregate\\s+on|merge\\s+by)\\b"},{"name":"keyword.other.kernel.phrase.bird","match":"\\b(?:merge\\s+paths\\s+limit|merge\\s+paths|kernel\\s+table|netlink\\s+rx\\s+buffer)\\b"},{"name":"keyword.other.l3vpn.phrase.bird","match":"\\b(?:route\\s+distinguisher|import\\s+target|export\\s+target|route\\s+target)\\b"},{"name":"keyword.other.evpn-bridge.phrase.bird","match":"\\b(?:encapsulation\\s+vxlan|vlan\\s+filtering|vlan\\s+range|vni|vid|bridge\\s+device|kbr\\s+source)\\b"},{"name":"keyword.other.evpn.phrase.bird","match":"\\b(?:tunnel\\s+device|router\\s+address|evpn\\s+(?:ead|mac|imet|es)|tag)\\b"},{"name":"keyword.other.bmp.phrase.bird","match":"\\b(?:monitoring\\s+rib\\s+in\\s+pre_policy|monitoring\\s+rib\\s+in\\s+post_policy|system\\s+description|system\\s+name|tx\\s+buffer\\s+limit|station\\s+address|station)\\b"},{"name":"keyword.other.radv.phrase.bird","match":"\\b(?:solicited\\s+ra\\s+unicast|router\\s+discovery|min\\s+ra\\s+interval|max\\s+ra\\s+interval|min\\s+delay|link\\s+mtu|default\\s+lifetime|route\\s+lifetime|default\\s+preference|route\\s+preference|prefix\\s+linger\\s+time|route\\s+linger\\s+time|current\\s+hop\\s+limit|propagate\\s+routes|other\\s+config|reachable\\s+time|retrans\\s+timer|valid\\s+lifetime|preferred\\s+lifetime|lifetime\\s+mult|pd\\s+preferred|rdnss\\s+local|dnssl\\s+local|custom\\s+option\\s+type|custom\\s+option\\s+local|managed|trigger|sensitive|autonomous|skip|low|medium|high|rdnss|dnssl|domain|lifetime|value|ns)\\b"},{"name":"keyword.other.rip.phrase.bird","match":"\\b(?:rip\\s+ng|mode\\s+multicast|mode\\s+broadcast|version\\s+only|check\\s+zero|update\\s+time|timeout\\s+time|garbage\\s+time|retransmit\\s+time|split\\s+horizon|poison\\s+reverse|demand\\s+circuit|ecmp\\s+limit|ecmp\\s+weight|infinity|show\\s+rip\\s+interfaces|show\\s+rip\\s+neighbors|ttl\\s+security\\s+tx\\s+only|authentication\\s+plaintext|authentication\\s+cryptographic)\\b"},{"name":"keyword.other.ospf.phrase.bird","match":"\\b(?:link\\s+lsa\\s+suppression|stub\\s+router|graceful\\s+restart\\s+aware|graceful\\s+restart\\s+time|ecmp\\s+limit|merge\\s+external|rfc5838|vpn\\s+pe|instance\\s+id|default\\s+nssa|default\\s+cost2?|stub\\s+cost|summary|networks|stubnet|hidden|translator\\s+stability|virtual\\s+link|transmit\\s+delay|dead\\s+count|poll|type\\s+bcast|type\\s+nbma|type\\s+pointopoint|type\\s+ptp|type\\s+ptmp|type\\s+pointomultipoint|eligible|real\\s+broadcast|ptp\\s+netmask|ptp\\s+address|strict\\s+nonbroadcast|rx\\s+buffer\\s+normal|rx\\s+buffer\\s+large|authentication\\s+simple|show\\s+ospf\\s+interface|show\\s+ospf\\s+neighbors|show\\s+ospf\\s+topology\\s+all|show\\s+ospf\\s+topology|show\\s+ospf\\s+state\\s+all|show\\s+ospf\\s+state|show\\s+ospf\\s+lsadb\\s+global|show\\s+ospf\\s+lsadb\\s+area|show\\s+ospf\\s+lsadb\\s+link|show\\s+ospf\\s+lsadb\\s+type|show\\s+ospf\\s+lsadb\\s+lsid|show\\s+ospf\\s+lsadb\\s+self|show\\s+ospf\\s+lsadb\\s+router|show\\s+ospf\\s+lsadb|show\\s+ospf|ospf\\s+v2|ospf\\s+v3|instance|tag|v2|v3)\\b"},{"name":"keyword.other.aspa.phrase.bird","match":"\\b(?:aspa\\s+providers|transit\\s+providers|route\\s+aspa)\\b"},{"name":"keyword.other.flowspec.phrase.bird","match":"\\b(?:next\\s+header|icmp\\s+type|icmp\\s+code|tcp\\s+flags)\\b"},{"name":"keyword.other.threading.phrase.bird","match":"\\b(?:thread\\s+group|show\\s+threads\\s+all|show\\s+threads|cork\\s+threshold|route\\s+refresh\\s+export\\s+settle\\s+time|digest\\s+settle\\s+time|filter\\s+stacks|max\\s+generation)\\b"},{"name":"keyword.other.mrt.phrase.bird","match":"\\b(?:always\\s+add\\s+path|filename)\\b"},{"name":"keyword.other.perf.phrase.bird","match":"\\b(?:mode\\s+import|mode\\s+export|exp\\s+from|exp\\s+to|threshold\\s+min|threshold\\s+max|repeat)\\b"},{"name":"keyword.other.operations.phrase.bird","match":"\\b(?:router\\s+id\\s+from|graceful\\s+restart\\s+wait|vrf\\s+default|receive\\s+limit|import\\s+keep\\s+filtered|export\\s+in|rpki\\s+reload|mrtdump\\s+protocols)\\b"},{"name":"keyword.other.cli-show.phrase.bird","match":"\\b(?:show\\s+status|show\\s+protocols\\s+all|show\\s+protocols|show\\s+interfaces\\s+summary|show\\s+interfaces|show\\s+symbols\\s+table|show\\s+symbols\\s+filter|show\\s+symbols\\s+function|show\\s+symbols\\s+protocol|show\\s+symbols\\s+template|show\\s+symbols|show\\s+route\\s+for|show\\s+route\\s+in|show\\s+route\\s+table|show\\s+route\\s+filter|show\\s+route\\s+where|show\\s+route\\s+all|show\\s+route\\s+primary|show\\s+route\\s+filtered|show\\s+route\\s+import|show\\s+route\\s+export|show\\s+route\\s+exported|show\\s+route\\s+preexport|show\\s+route\\s+noexport|show\\s+route\\s+protocol|show\\s+route\\s+stats|show\\s+route\\s+count|show\\s+bfd\\s+sessions\\s+address|show\\s+bfd\\s+sessions\\s+direct|show\\s+bfd\\s+sessions\\s+multihop|show\\s+bfd\\s+sessions\\s+interface|show\\s+bfd\\s+sessions\\s+dev|show\\s+bfd\\s+sessions\\s+all|show\\s+bfd\\s+sessions\\s+ipv4|show\\s+bfd\\s+sessions\\s+ipv6|show\\s+bfd\\s+sessions|show\\s+mpls\\s+ranges|show\\s+memory|show\\s+route)\\b"},{"name":"keyword.other.cli-reload.phrase.bird","match":"\\b(?:reload\\s+filters\\s+in|reload\\s+filters\\s+out|reload\\s+filters|reload\\s+bgp\\s+in|reload\\s+bgp\\s+out|reload\\s+bgp|reload\\s+in|reload\\s+out)\\b"},{"name":"keyword.other.cli-reload-modifier.bird","match":"\\bpartial\\b"},{"name":"keyword.other.cli-dump.phrase.bird","match":"\\b(?:dump\\s+tables|dump\\s+attribute\\s+stats|dump\\s+ao\\s+keys|dump\\s+filter\\s+all|dump\\s+resources|dump\\s+sockets|dump\\s+events|dump\\s+interfaces|dump\\s+neighbors|dump\\s+attributes|dump\\s+routes|dump\\s+protocols|mrt\\s+dump\\s+table|mrt\\s+dump\\s+where|mrt\\s+dump\\s+to|mrt\\s+dump\\s+filter|mrt\\s+dump|timeformat\\s+route|timeformat\\s+protocol|timeformat\\s+base|timeformat\\s+log|timeformat\\s+iso|configure\\s+soft\\s+timeout|configure\\s+soft|configure\\s+timeout|configure\\s+confirm|configure\\s+undo|configure\\s+status|configure\\s+check|restrict|echo|enable|disable|restart|debug|mrtdump|quit|exit|help)\\b"},{"name":"keyword.other.cli-control.phrase.bird","match":"\\b(?:configure|down|graceful\\s+restart|timeformat\\s+(?:short|long|ms|us))\\b"}]},"route-attributes":{"patterns":[{"name":"support.variable.route-attribute.bird","match":"\\b(?:net|scope|preference|from|gw|proto|source|dest|ifname|ifindex|weight|gw_mpls|gw_mpls_stack|onlink|igp_metric|local_metric|nexthop|hostentry|flowspec_valid|aspa_providers|roa_aggregated|mpls_label|mpls_policy|mpls_class|bgp_path|bgp_origin|bgp_next_hop|bgp_med|bgp_local_pref|bgp_community|bgp_ext_community|bgp_large_community|bgp_originator_id|bgp_cluster_list|bgp_atomic_aggr|bgp_aggregator|bgp_aigp|bgp_pmsi_tunnel|bgp_otc|bgp_mpls_label_stack|bgp_mp_reach_nlri|bgp_mp_unreach_nlri|bgp_as4_path|bgp_as4_aggregator|bgp_unknown_0x[0-9a-fA-F]{2}|ospf_metric1|ospf_metric2|ospf_tag|ospf_router_id|rip_metric|rip_tag|rip_from|babel_metric|babel_router_id|babel_seqno|radv_preference|radv_lifetime|ra_preference|ra_lifetime|krt_source|krt_metric|krt_prefsrc|krt_realm|krt_scope|krt_mtu|krt_window|krt_rtt|krt_rttvar|krt_ssthresh|krt_sstresh|krt_cwnd|krt_advmss|krt_reordering|krt_hoplimit|krt_initcwnd|krt_rto_min|krt_initrwnd|krt_quickack|krt_congctl|krt_fastopen_no_cookie|krt_lock_mtu|krt_lock_window|krt_lock_rtt|krt_lock_rttvar|krt_lock_ssthresh|krt_lock_sstresh|krt_lock_cwnd|krt_lock_advmss|krt_lock_reordering|krt_lock_hoplimit|krt_lock_initcwnd|krt_lock_rto_min|krt_lock_initrwnd|krt_lock_quickack|krt_lock_congctl|krt_lock_fastopen_no_cookie|krt_feature_allfrag|krt_feature_ecn|kbr_source|iface_type|iface_bridge_vlan_filtering|iface_vxlan_id|iface_vxlan_learning|iface_vxlan_ip_addr|mypath|mylclist)\\b"},{"name":"support.variable.runtime.bird","match":"\\b(?:proto_name|proto_protocol_name|proto_protocol_type|proto_main_table_id|proto_state|proto_last_modified|proto_info|proto_proto_id|ea_proto_channel_list|proto_channel_id|channel_in_keep|rtable|proto_bgp_rem_id|proto_bgp_rem_as|proto_bgp_loc_as|proto_bgp_rem_ip|bgp_afi|bgp_peer_type|bgp_extended_next_hop|bgp_add_path_rx|bgp_in_conn_local_open_msg|bgp_in_conn_remote_open_msg|bgp_out_conn_local_open_msg|bgp_out_conn_remote_open_msg|bgp_in_conn_state|bgp_out_conn_state|bgp_in_conn_sk|bgp_out_conn_sk|bgp_state_startup|bgp_close_bmp|bgp_as4_session|bgp_as4_in_conn|bgp_as4_out_conn)\\b"}]},"semantic-modifiers":{"patterns":[{"name":"keyword.other.semantic-modifier.bird","match":"\\b(?:self|on|off|remote|extended|native|ipv6|internal|external)\\b"}]},"strings":{"patterns":[{"name":"string.quoted.double.bird","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.bird","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.bird"}}},{"name":"entity.name.symbol.quoted.bird","match":"'[0-9A-Za-z_.:-]+'"}]},"structural-keywords":{"patterns":[{"name":"keyword.control.bird","match":"\\b(?:if|then|else|case|for|do|while|break|continue|return|in)\\b"},{"name":"keyword.control.case.else.bird","match":"\\belse\\s*:"},{"name":"keyword.control.flow.bird","match":"\\b(?:accept|reject|error)\\b"},{"name":"keyword.control.structure.bird","match":"\\b(?:protocol|table|define|include|attribute|eval|ipv6\\s+sadr|ipv4\\s+mpls|ipv6\\s+mpls|vpn4\\s+mpls|vpn6\\s+mpls|ipv4|ipv6|local|as|from|where|cost|limit|action)\\b"}]},"symbols":{"patterns":[{"name":"variable.other.bird","match":"\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"}]},"template-definitions":{"patterns":[{"name":"meta.template-definition-with-from.bird","begin":"\\b(template)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s+(from)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.template.bird"},"2":{"name":"entity.name.type.protocol.bird"},"3":{"name":"entity.name.function.template.bird"},"4":{"name":"keyword.control.template-reference.bird"},"5":{"name":"entity.name.function.template.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.template-definition-with-name.bird","begin":"\\b(template)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s+((?:[a-zA-Z_][a-zA-Z0-9_]*|'[0-9A-Za-z_.:-]+'))\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.template.bird"},"2":{"name":"entity.name.type.protocol.bird"},"3":{"name":"entity.name.function.template.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}},{"name":"meta.template-definition-anonymous.bird","begin":"\\b(template)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\{","end":"\\}","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.template.bird"},"2":{"name":"entity.name.type.protocol.bird"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.bird"}}}]},"user-variables":{"patterns":[{"name":"variable.other.user-defined.bird","match":"\\b[A-Z][a-zA-Z0-9_]*\\b"}]},"variable-declarations":{"patterns":[{"name":"meta.variable-declaration.bird","match":"\\b((?:(?:int|pair|quad|ip|prefix|mac|ec|lc|rd|enum)\\s+set)|int|bool|ip|prefix|mac|rd|pair|quad|ec|lc|string|bytestring|bgpmask|bgppath|clist|eclist|lclist|set|enum|route)\\s+([a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*=|;)","captures":{"1":{"name":"storage.type.bird"},"2":{"name":"variable.other.declaration.bird"}}}]},"vpn-rd":{"name":"constant.numeric.vpn-rd.bird","match":"\\b(?:[0-9]+:[0-9]+|[0-2]:[0-9]+:[0-9]+|(?:[0-9]{1,3}\\.){3}[0-9]{1,3}:[0-9]+)\\b"}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"Blueprint","scopeName":"source.blueprint","patterns":[{"include":"#comment"},{"include":"#using-statement"},{"include":"#translation-function"},{"include":"#function"},{"include":"#property-declaration"},{"include":"#property-block"},{"include":"#binding"},{"include":"#signal"},{"include":"#class-with-id"},{"include":"#menu-with-id"},{"include":"#superclass-name"},{"include":"#qualifier"},{"include":"#string"},{"include":"#numeric-value"},{"include":"#class-name"},{"include":"#keyword"},{"include":"#property-value"},{"include":"#blocks"},{"include":"#terminator"}],"repository":{"binding":{"name":"meta.binding.blueprint","match":"\\b(bind)\\s+([-\\w]+)\\s*(\\.)\\s*([-\\w]+)","captures":{"1":{"name":"keyword.control.bind.blueprint"},"2":{"name":"entity.other.attribute-name.id.blueprint"},"3":{"name":"punctuation.accessor.blueprint"},"4":{"name":"variable.other.property.blueprint"}}},"block-comment":{"name":"comment.block.blueprint","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.blueprint"}}},"blocks":{"patterns":[{"include":"#property-block-begin"},{"include":"#property-block-end"}]},"class-name":{"name":"entity.name.class.blueprint","match":"\\b\\.?[A-Z][\\w\\.]*"},"class-with-id":{"name":"meta.class.identified.blueprint","match":"\\b(\\.?[A-Z][\\w\\.]*)\\s+([-\\da-z][-\\w]*)","captures":{"1":{"name":"entity.name.class.blueprint"},"2":{"name":"entity.other.attribute-name.id.blueprint"}}},"comment":{"patterns":[{"include":"#line-comment"},{"include":"#block-comment"}]},"function":{"name":"meta.function.blueprint","begin":"\\b([a-zA-Z_]\\w*)\\s*(\\()","end":"\\)","patterns":[{"include":"#function"},{"include":"#string"},{"include":"#numeric-value"},{"name":"entity.other.attribute-name.id.blueprint","match":"\\b[-\\d_a-z][-\\w]*\\b"},{"name":"punctuation.separator.comma.blueprint","match":","}],"beginCaptures":{"1":{"name":"entity.name.function.blueprint"},"2":{"name":"punctuation.section.function.begin.blueprint"}},"endCaptures":{"0":{"name":"punctuation.section.function.end.blueprint"}}},"keyword":{"patterns":[{"include":"#keyword-control"},{"include":"#keyword-operator"}]},"keyword-control":{"name":"keyword.control.blueprint","match":"\\b(using|template|menu|submenu|section|item|bind|bind-property|typeof|as|accessibility)\\b"},"keyword-operator":{"name":"keyword.operator.blueprint","match":"(=\u003e)"},"line-comment":{"name":"comment.line.double-slash.blueprint","match":"//.*$"},"literals":{"patterns":[{"include":"#numeric-value"},{"include":"#string"},{"include":"#property-value"}]},"menu-with-id":{"name":"meta.menu.identified.blueprint","match":"\\b(menu|submenu|section|item)\\s+([-\\da-z][-\\w]*)\\s*(?=\\{)","captures":{"1":{"name":"keyword.control.menu.blueprint"},"2":{"name":"entity.other.attribute-name.id.blueprint"}}},"numeric-value":{"name":"constant.numeric.blueprint","match":"-?\\d+(\\.\\d+)?"},"property-block":{"name":"meta.property-block.blueprint","match":"\\b([-\\da-z]+)\\s*(?=\\[|\\{)","captures":{"1":{"name":"support.type.property-name.blueprint"}}},"property-block-begin":{"name":"punctuation.section.property-list.begin.blueprint","match":"\\[|\\{"},"property-block-end":{"name":"punctuation.section.property-list.end.blueprint","match":"\\]|\\}"},"property-declaration":{"name":"meta.property-declaration.blueprint","match":"\\b([-\\da-z]+)\\s*(:|=)","captures":{"1":{"name":"support.type.property-name.blueprint"},"2":{"name":"punctuation.separator.key-value.blueprint"}}},"property-value":{"name":"constant.language.blueprint","match":"\\b[-\\d_a-z][-\\w]*\\b"},"qualifier":{"name":"meta.qualifier.blueprint","begin":"(\\[)\\s*([-\\w]+)\\b","end":"\\]","patterns":[{"include":"#comment"},{"include":"#property-declaration"},{"include":"#literals"}],"beginCaptures":{"1":{"name":"punctuation.section.qualifier.begin.blueprint"},"2":{"name":"support.type.property-name.blueprint"}},"endCaptures":{"0":{"name":"punctuation.section.qualifier.end.blueprint"}}},"signal":{"name":"meta.signal.blueprint","match":"\\b([-\\da-z]+)\\s*(=\u003e)","captures":{"1":{"name":"support.type.property-name.blueprint"},"2":{"name":"keyword.operator.assignment.signal.blueprint"}}},"string":{"patterns":[{"include":"#string-single"},{"include":"#string-double"}]},"string-double":{"name":"string.quoted.double.blueprint","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.blueprint","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.blueprint"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blueprint"}}},"string-single":{"name":"string.quoted.single.blueprint","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.blueprint","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.blueprint"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.blueprint"}}},"superclass-name":{"name":"meta.inherited-class.blueprint","match":"(:)\\s*(\\.?[A-Z][\\w\\.]*)","captures":{"1":{"name":"keyword.control.operator.inherited-class.blueprint"},"2":{"name":"entity.other.inherited-class.blueprint"}}},"terminator":{"name":"punctuation.terminator.expression.blueprint","match":";"},"translation-function":{"name":"meta.function.translation.blueprint","match":"\\b(_)\\s*(?=\\()","captures":{"1":{"name":"entity.name.function.translation.blueprint"}}},"using-statement":{"name":"meta.import.blueprint","match":"\\b(using)\\s+([\\w\\.]+)\\s+([\\d\\.]+)(;|$)","captures":{"1":{"name":"keyword.control.import.blueprint"},"2":{"name":"entity.name.class.blueprint"},"3":{"name":"constant.numeric.blueprint"},"4":{"name":"punctuation.terminator.expression.blueprint"}}}}}
|
data/grammars/source.bnd.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"BND","scopeName":"source.bnd","patterns":[{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#strings"},{"include":"#support"}],"repository":{"comments":{"patterns":[{"name":"comment.line.bnd","begin":"(\\/\\*)","end":"(\\*\\/)"},{"name":"comment.line.bnd","begin":"\\-\\-","end":"\n"}]},"constants":{"patterns":[{"name":"constant.numeric.bnd","match":"(\\b[0-9]+)|([0-9]*[.][0-9]*)"},{"name":"constant.language.bnd","match":"[*][a-zA-Z][a-zA-Z0-9]*"}]},"keywords":{"patterns":[{"name":"keyword.other.bnd","match":"(?i)(STRPGMEXP|ENDPGMEXP|EXPORT)"},{"name":"keyword.other.bnd","match":"\u003c"}]},"strings":{"patterns":[{"name":"string.other.bnd.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.bnd","begin":"('|\")","end":"'|\"","patterns":[{"name":"constant.character.escape.bnd","match":"\\\\."}]}]},"support":{"patterns":[{"name":"support.function.bnd","match":"(?i)[A-Za-z]+(
|
|
1
|
+
{"name":"BND","scopeName":"source.bnd","patterns":[{"include":"#comments"},{"include":"#constants"},{"include":"#keywords"},{"include":"#strings"},{"include":"#support"}],"repository":{"comments":{"patterns":[{"name":"comment.line.bnd","begin":"(\\/\\*)","end":"(\\*\\/)"},{"name":"comment.line.bnd","begin":"\\-\\-","end":"\n"}]},"constants":{"patterns":[{"name":"constant.numeric.bnd","match":"(\\b[0-9]+)|([0-9]*[.][0-9]*)"},{"name":"constant.language.bnd","match":"[*][a-zA-Z][a-zA-Z0-9]*"}]},"keywords":{"patterns":[{"name":"keyword.other.bnd","match":"(?i)(STRPGMEXP|ENDPGMEXP|EXPORT)"},{"name":"keyword.other.bnd","match":"(\u003c\u003c\u003c|\u003e\u003e\u003e)"}]},"strings":{"patterns":[{"name":"string.other.bnd.hex","begin":"(?i)x'","end":"'"},{"name":"string.quoted.single.bnd","begin":"('|\")","end":"'|\"","patterns":[{"name":"constant.character.escape.bnd","match":"\\\\."}]}]},"support":{"patterns":[{"name":"support.function.bnd","match":"(?i)[A-Za-z]+(?=[ \\t]*\\()"}]}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"BrightScript in XML CDATA (Roku SceneGraph)","scopeName":"source.brs.embedded.xml","patterns":[{"include":"#cdata-brs"}],"repository":{"cdata-brs":{"name":"string.unquoted.cdata.xml","contentName":"meta.embedded.block.brs","begin":"\u003c!\\[CDATA\\[","end":"\\]\\]\u003e","patterns":[{"include":"source.brs"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}}}}}
|