1555 lines
41 KiB
JSON
1555 lines
41 KiB
JSON
{
|
||
"information_for_contributors": [
|
||
"This file has been converted from https://github.com/RedCMD/YAML-Syntax-Highlighter/blob/master/syntaxes/yaml-1.1.tmLanguage.json",
|
||
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
|
||
"Once accepted there, we are happy to receive an update request."
|
||
],
|
||
"version": "https://github.com/RedCMD/YAML-Syntax-Highlighter/commit/dfd7e5f4f71f9695c5d8697ca57f81240165aa04",
|
||
"name": "YAML 1.1",
|
||
"scopeName": "source.yaml.1.1",
|
||
"comment": "https://yaml.org/spec/1.1/",
|
||
"patterns": [
|
||
{
|
||
"include": "#stream"
|
||
}
|
||
],
|
||
"repository": {
|
||
"stream": {
|
||
"patterns": [
|
||
{
|
||
"comment": "allows me to just use `\\G` instead of the performance heavy `(^|\\G)`",
|
||
"begin": "^(?!\\G)",
|
||
"while": "^",
|
||
"name": "meta.stream.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#byte-order-mark"
|
||
},
|
||
{
|
||
"include": "#directives"
|
||
},
|
||
{
|
||
"include": "#document"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "\\G",
|
||
"while": "\\G",
|
||
"name": "meta.stream.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#byte-order-mark"
|
||
},
|
||
{
|
||
"include": "#directives"
|
||
},
|
||
{
|
||
"include": "#document"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"directive-YAML": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#681-yaml-directives",
|
||
"begin": "(?=%YAML[ \t]+1\\.1(?=[\\x{85 2028 2029}\r\n\t ]))",
|
||
"end": "\\G(?=%(?!YAML[ \t]+1\\.1))",
|
||
"name": "meta.1.1.yaml",
|
||
"patterns": [
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#681-yaml-directives",
|
||
"begin": "\\G(%)(YAML)([ \t]+)(1\\.1)",
|
||
"while": "\\G(?!---[\\x{85 2028 2029}\r\n\t ])",
|
||
"beginCaptures": {
|
||
"1": {
|
||
"name": "punctuation.definition.directive.begin.yaml"
|
||
},
|
||
"2": {
|
||
"name": "keyword.other.directive.yaml.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"4": {
|
||
"name": "constant.numeric.yaml-version.yaml"
|
||
}
|
||
},
|
||
"name": "meta.directives.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#directive-invalid"
|
||
},
|
||
{
|
||
"include": "#directives"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "\\G(?=---[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?!%)",
|
||
"patterns": [
|
||
{
|
||
"include": "#document"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"directives": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#68-directives",
|
||
"patterns": [
|
||
{
|
||
"include": "source.yaml.1.3#directive-YAML"
|
||
},
|
||
{
|
||
"include": "source.yaml.1.2#directive-YAML"
|
||
},
|
||
{
|
||
"include": "source.yaml.1.1#directive-YAML"
|
||
},
|
||
{
|
||
"include": "source.yaml.1.0#directive-YAML"
|
||
},
|
||
{
|
||
"begin": "(?=%)",
|
||
"while": "\\G(?!%|---[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "meta.directives.yaml",
|
||
"patterns": [
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#682-tag-directives",
|
||
"begin": "\\G(%)(TAG)(?>([\t ]++)((!)(?>[0-9A-Za-z-]*+(!))?+))?+",
|
||
"end": "$",
|
||
"applyEndPatternLast": true,
|
||
"beginCaptures": {
|
||
"1": {
|
||
"name": "punctuation.definition.directive.begin.yaml"
|
||
},
|
||
"2": {
|
||
"name": "keyword.other.directive.tag.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"4": {
|
||
"name": "storage.type.tag-handle.yaml"
|
||
},
|
||
"5": {
|
||
"name": "punctuation.definition.tag.begin.yaml"
|
||
},
|
||
"6": {
|
||
"name": "punctuation.definition.tag.end.yaml"
|
||
},
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-tag-handle"
|
||
},
|
||
"patterns": [
|
||
{
|
||
"comment": "technically the beginning should only validate against a valid uri scheme [A-Za-z][A-Za-z0-9.+-]*",
|
||
"begin": "\\G[\t ]++(?!#)",
|
||
"end": "(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
}
|
||
},
|
||
"contentName": "support.type.tag-prefix.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "%[0-9a-fA-F]{2}",
|
||
"name": "constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"match": "%[^\\x{85 2028 2029}\r\n\t ]{2,0}",
|
||
"name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[,\\[\\]{}]",
|
||
"name": "invalid.illegal.character.uri.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
},
|
||
{
|
||
"match": "[^\\x{85 2028 2029}\r\n\t a-zA-Z0-9-#;/?:@&=+$,_.!~*'()\\[\\]]++",
|
||
"name": "invalid.illegal.unrecognized.yaml"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-reserved-directive",
|
||
"begin": "(%)([^ \\p{Cntrl}\\p{Surrogate}\\x{2028 2029 FFFE FFFF}]++)",
|
||
"end": "$",
|
||
"beginCaptures": {
|
||
"1": {
|
||
"name": "punctuation.definition.directive.begin.yaml"
|
||
},
|
||
"2": {
|
||
"name": "keyword.other.directive.other.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"match": "\\G([\t ]++)([^ \\p{Cntrl}\\p{Surrogate}\\x{2028 2029 FFFE FFFF}]++)",
|
||
"captures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"2": {
|
||
"name": "string.unquoted.directive-name.yaml"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"match": "([\t ]++)([^ \\p{Cntrl}\\p{Surrogate}\\x{2028 2029 FFFE FFFF}]++)",
|
||
"captures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"2": {
|
||
"name": "string.unquoted.directive-parameter.yaml"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"match": "\\G\\.{3}(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "invalid.illegal.entity.other.document.end.yaml"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"directive-invalid": {
|
||
"patterns": [
|
||
{
|
||
"match": "\\G\\.{3}(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "invalid.illegal.entity.other.document.end.yaml"
|
||
},
|
||
{
|
||
"begin": "\\G(%)(YAML)",
|
||
"end": "$",
|
||
"beginCaptures": {
|
||
"1": {
|
||
"name": "punctuation.definition.directive.begin.yaml"
|
||
},
|
||
"2": {
|
||
"name": "invalid.illegal.keyword.other.directive.yaml.yaml"
|
||
}
|
||
},
|
||
"name": "meta.directive.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "\\G([\t ]++|:)([0-9]++\\.[0-9]++)?+",
|
||
"captures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"2": {
|
||
"name": "constant.numeric.yaml-version.yaml"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"document": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#91-documents",
|
||
"patterns": [
|
||
{
|
||
"begin": "---(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?!(?>\\.{3}|---)[\\x{85 2028 2029}\r\n\t ])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "entity.other.document.begin.yaml"
|
||
}
|
||
},
|
||
"name": "meta.document.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#block-node"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "(?=\\.{3}[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?=[\t \\x{FEFF}]*+(?>#|$))",
|
||
"patterns": [
|
||
{
|
||
"begin": "\\G\\.{3}",
|
||
"end": "$",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "entity.other.document.end.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#byte-order-mark"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "\\G(?!%|[\t \\x{FEFF}]*+(?>#|$))",
|
||
"while": "\\G(?!(?>\\.{3}|---)[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "meta.document.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#block-node"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"block-node": {
|
||
"patterns": [
|
||
{
|
||
"include": "#block-sequence"
|
||
},
|
||
{
|
||
"include": "#block-mapping"
|
||
},
|
||
{
|
||
"include": "source.yaml.1.2#block-scalar"
|
||
},
|
||
{
|
||
"include": "#anchor-property"
|
||
},
|
||
{
|
||
"include": "#tag-property"
|
||
},
|
||
{
|
||
"include": "#alias"
|
||
},
|
||
{
|
||
"begin": "(?=\"|')",
|
||
"while": "\\G",
|
||
"patterns": [
|
||
{
|
||
"begin": "(?!\\G)",
|
||
"while": "\\G",
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#double"
|
||
},
|
||
{
|
||
"include": "#single"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "(?={)",
|
||
"end": "$",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-mapping"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "(?=\\[)",
|
||
"end": "$",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-sequence"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#block-plain-out"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"block-mapping": {
|
||
"//": "The check for plain keys is expensive",
|
||
"begin": "(?=((?<=[-?:]) )?+)(?<![^\t ][\t ]*+:|---)\\G( *+)([\t ]*+)((?>[!&*][^\\x{85 2028 2029}\r\n\t ]*+[\t ]++)*+)(?=(?>(?#Double Quote)\"(?>[^\\\\\"]++|\\\\.)*+\"|(?#Single Quote)'(?>[^']++|'')*+'|(?#Flow-Map){(?>[^\\x{85 2028 2029}}]++|}[ \t]*+(?!:[\\x{85 2028 2029}\r\n\t ]))++}|(?#Flow-Seq)\\[(?>[^\\x{85 2028 2029}\\]]++|][ \t]*+(?!:[\\x{85 2028 2029}\r\n\t ]))++]|(?#Plain)(?>[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ]))(?>[^:#]++|:(?![\\x{85 2028 2029}\r\n\t ])|(?<! |\t)#++)*+)?+(?#Map Value)[\t ]*+:[\\x{85 2028 2029}\r\n\t ]|(?#Explicit)\\?[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?>(\\1\\2)((?>[!&*][^\\x{85 2028 2029}\r\n\t ]*+[\t ]++)*+)((?>\t[\t ]*+)?+[^\\x{85 2028 2029}\r\n\t ?:\\-#!&*\"'\\[\\]{}0-9A-Za-z$()+./;<=\\\\^_~\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}])?+|( *+)([\t ]*+[^\\x{85 2028 2029}\r\n#])?+)",
|
||
"beginCaptures": {
|
||
"2": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"4": {
|
||
"comment": "May cause lag on long lines starting with a tag, anchor or alias",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-property"
|
||
},
|
||
{
|
||
"include": "#anchor-property"
|
||
},
|
||
{
|
||
"include": "#alias"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"whileCaptures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"2": {
|
||
"comment": "May cause lag on long lines starting with a tag, anchor or alias",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-property"
|
||
},
|
||
{
|
||
"include": "#anchor-property"
|
||
},
|
||
{
|
||
"include": "#alias"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"3": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
},
|
||
"4": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"5": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
}
|
||
},
|
||
"name": "meta.mapping.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#block-map-key-double"
|
||
},
|
||
{
|
||
"include": "source.yaml#block-map-key-single"
|
||
},
|
||
{
|
||
"include": "#block-map-key-plain"
|
||
},
|
||
{
|
||
"include": "#block-map-key-explicit"
|
||
},
|
||
{
|
||
"include": "#block-map-value"
|
||
},
|
||
{
|
||
"include": "#flow-mapping"
|
||
},
|
||
{
|
||
"include": "#flow-sequence"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"block-sequence": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-l+block-sequence",
|
||
"begin": "(?=((?<=[-?:]) )?+)(?<![^\t ][\t ]*+:|---)\\G( *+)(-)(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?>(\\1\\2)(?!-[\\x{85 2028 2029}\r\n\t ])((?>\t[\t ]*+)?+[^\\x{85 2028 2029}\r\n\t #\\]}])?+|(?!\\1\\2)( *+)([\t ]*+[^\\x{85 2028 2029}\r\n#])?+)",
|
||
"beginCaptures": {
|
||
"2": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.definition.block.sequence.item.yaml"
|
||
}
|
||
},
|
||
"whileCaptures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"2": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"4": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
}
|
||
},
|
||
"name": "meta.block.sequence.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#block-node"
|
||
}
|
||
]
|
||
},
|
||
"block-map-key-explicit": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-l-block-map-explicit-key",
|
||
"begin": "(?=((?<=[-?:]) )?+)\\G( *+)(\\?)(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"while": "\\G(?>(\\1\\2)(?![?:0-9A-Za-z$()+./;<=\\\\^_~\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}&&[^\\x{2028 2029}]])((?>\t[\t ]*+)?+[^\\x{85 2028 2029}\r\n\t #\\-\\[\\]{}])?+|(?!\\1\\2)( *+)([\t ]*+[^\\x{85 2028 2029}\r\n#])?+)",
|
||
"beginCaptures": {
|
||
"2": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.definition.map.key.yaml"
|
||
},
|
||
"4": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
}
|
||
},
|
||
"whileCaptures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"2": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
},
|
||
"3": {
|
||
"name": "punctuation.whitespace.indentation.yaml"
|
||
},
|
||
"4": {
|
||
"name": "invalid.illegal.expected-indentation.yaml"
|
||
}
|
||
},
|
||
"name": "meta.map.explicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#key-double"
|
||
},
|
||
{
|
||
"include": "source.yaml#key-single"
|
||
},
|
||
{
|
||
"include": "#flow-key-plain-out"
|
||
},
|
||
{
|
||
"include": "#block-map-value"
|
||
},
|
||
{
|
||
"include": "#block-node"
|
||
}
|
||
]
|
||
},
|
||
"block-map-key-double": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#double-quoted-style (BLOCK-KEY)",
|
||
"begin": "\\G\"",
|
||
"end": "\"",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.end.yaml"
|
||
}
|
||
},
|
||
"name": "meta.map.key.yaml string.quoted.double.yaml entity.name.tag.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": ".[\t ]*+$",
|
||
"name": "invalid.illegal.multiline-key.yaml"
|
||
},
|
||
{
|
||
"match": "[^\t -\\x{10FFFF}]++",
|
||
"name": "invalid.illegal.character.yaml"
|
||
},
|
||
{
|
||
"include": "#double-escape"
|
||
}
|
||
]
|
||
},
|
||
"block-map-key-plain": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-one-line (BLOCK-KEY)",
|
||
"begin": "\\G(?=[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ]))",
|
||
"end": "(?=[\t ]*+:[\\x{85 2028 2029}\r\n\t ]|(?>[\t ]++|\\G)#)",
|
||
"name": "meta.map.key.yaml string.unquoted.plain.yaml entity.name.tag.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-implicit-plain-out"
|
||
},
|
||
{
|
||
"match": "\\G([\t ]++)(.)",
|
||
"captures": {
|
||
"1": {
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
"2": {
|
||
"name": "invalid.illegal.multiline-key.yaml"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
"block-map-value": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-l-block-map-implicit-value",
|
||
"//": "Assumming 3rd party preprocessing variables `{{...}}` turn into valid map-keys when inside a block-mapping",
|
||
"begin": ":(?=[\\x{85 2028 2029}\r\n\t ])|(?<=}})(?=[\t ]++#|[\t ]*+$)",
|
||
"while": "\\G(?![?:!\"'0-9A-Za-z$()+./;<=\\\\^_~\\[{\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}&&[^\\x{2028 2029}]]|-[^\\x{85 2028 2029}\r\n\t ])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.separator.map.value.yaml"
|
||
}
|
||
},
|
||
"name": "meta.map.value.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#block-node"
|
||
}
|
||
]
|
||
},
|
||
"block-plain-out": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-multi-line (FLOW-OUT)",
|
||
"begin": "(?=[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ]))",
|
||
"while": "\\G",
|
||
"patterns": [
|
||
{
|
||
"begin": "\\G",
|
||
"end": "(?=(?>[\t ]++|\\G)#)",
|
||
"name": "string.unquoted.plain.out.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-implicit-plain-out"
|
||
},
|
||
{
|
||
"match": ":(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "invalid.illegal.multiline-key.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "(?!\\G)",
|
||
"while": "\\G",
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"flow-node": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-seq-entry (FLOW-IN)",
|
||
"patterns": [
|
||
{
|
||
"begin": "(?=\\[|{)",
|
||
"end": "(?=[:,\\]}])",
|
||
"patterns": [
|
||
{
|
||
"begin": "(?!\\G)",
|
||
"end": "(?=[:,\\]}])",
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#flow-mapping"
|
||
},
|
||
{
|
||
"include": "#flow-sequence"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#anchor-property"
|
||
},
|
||
{
|
||
"include": "#tag-property"
|
||
},
|
||
{
|
||
"include": "#alias"
|
||
},
|
||
{
|
||
"begin": "(?=\"|')",
|
||
"end": "(?=[:,\\]}])",
|
||
"patterns": [
|
||
{
|
||
"begin": "(?!\\G)",
|
||
"end": "(?=[:,\\]}])",
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#double"
|
||
},
|
||
{
|
||
"include": "#single"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#flow-plain-in"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"flow-mapping": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#742-flow-mappings",
|
||
"begin": "{",
|
||
"end": "}",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.mapping.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.mapping.end.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.mapping.yaml",
|
||
"patterns": [
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-flow-map-entries",
|
||
"begin": "(?<={)\\G(?=[\\x{85 2028 2029}\r\n\t ,#])|,",
|
||
"end": "(?=[^\\x{85 2028 2029}\r\n\t ,#])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.separator.mapping.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"match": ",++",
|
||
"name": "invalid.illegal.separator.sequence.yaml"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#flow-mapping-map-key"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
"flow-sequence": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#741-flow-sequences",
|
||
"begin": "\\[",
|
||
"end": "]",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.sequence.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.sequence.end.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.sequence.yaml",
|
||
"patterns": [
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-flow-seq-entries",
|
||
"begin": "(?<=\\[)\\G(?=[\\x{85 2028 2029}\r\n\t ,#])|,",
|
||
"end": "(?=[^\\x{85 2028 2029}\r\n\t ,#])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.separator.sequence.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"match": ",++",
|
||
"name": "invalid.illegal.separator.sequence.yaml"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#flow-sequence-map-key"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
"flow-mapping-map-key": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-entry (FLOW-IN)",
|
||
"patterns": [
|
||
{
|
||
"begin": "\\?(?=[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.map.key.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.map.explicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-mapping-map-key"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
|
||
"begin": "(?=(?>[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ,\\[\\]{}])))",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"name": "meta.flow.map.implicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-key-plain-in"
|
||
},
|
||
{
|
||
"match": ":(?=\\[|{)",
|
||
"name": "invalid.illegal.separator.map.yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
|
||
"begin": "(?=\"|')",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"name": "meta.flow.map.implicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#key-double"
|
||
},
|
||
{
|
||
"include": "source.yaml#key-single"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"flow-sequence-map-key": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-entry (FLOW-IN)",
|
||
"patterns": [
|
||
{
|
||
"begin": "\\?(?=[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.map.key.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.map.explicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-mapping-map-key"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
|
||
"begin": "(?<=[\t ,\\[{]|^)(?=(?>[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))(?>[^:#,\\[\\]{}]++|:(?![\\x{85 2028 2029}\r\n\t ,\\[\\]{}])|(?<! |\t)#++)*+:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"name": "meta.flow.map.implicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-key-plain-in"
|
||
},
|
||
{
|
||
"match": ":(?=\\[|{)",
|
||
"name": "invalid.illegal.separator.map.yaml"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-yaml"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-flow-map-implicit-entry (FLOW-IN)",
|
||
"begin": "(?=(?>\"(?>[^\\\\\"]++|\\\\.)*+\"|'(?>[^']++|'')*+')[\t ]*+:)",
|
||
"end": "(?=[,\\[\\]{}])",
|
||
"name": "meta.flow.map.implicit.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#key-double"
|
||
},
|
||
{
|
||
"include": "source.yaml#key-single"
|
||
},
|
||
{
|
||
"include": "#flow-map-value-json"
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"flow-map-value-yaml": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-flow-map-separate-value (FLOW-IN)",
|
||
"begin": ":(?=[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"end": "(?=[,\\]}])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.separator.map.value.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.pair.value.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
"flow-map-value-json": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-flow-map-separate-value (FLOW-IN)",
|
||
"begin": "(?<=(?>[\"'\\]}]|^)[\t ]*+):",
|
||
"end": "(?=[,\\]}])",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.separator.map.value.yaml"
|
||
}
|
||
},
|
||
"name": "meta.flow.pair.value.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#flow-node"
|
||
}
|
||
]
|
||
},
|
||
"flow-plain-in": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-multi-line (FLOW-IN)",
|
||
"begin": "(?=[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"end": "(?=(?>[\t ]++|\\G)#|[\t ]*+[,\\[\\]{}])",
|
||
"name": "string.unquoted.plain.in.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-implicit-plain-in"
|
||
},
|
||
{
|
||
"match": "\\G[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": ":(?=[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"name": "invalid.illegal.multiline-key.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
"flow-key-plain-out": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-plain-one-line (FLOW-OUT)",
|
||
"begin": "(?=[^-?:,\\[\\]{}#&*!|>'\"%@` \\p{Cntrl}\\p{Surrogate}\\x{FFFE FFFF}]|[?:-](?![\\x{85 2028 2029}\r\n\t ]))",
|
||
"end": "(?=[\t ]*+:[\\x{85 2028 2029}\r\n\t ]|[\t ]++#)",
|
||
"name": "meta.map.key.yaml string.unquoted.plain.yaml entity.name.tag.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-implicit-plain-out"
|
||
},
|
||
{
|
||
"match": "\\G[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
"flow-key-plain-in": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-ns-s-implicit-yaml-key (FLOW-KEY)",
|
||
"begin": "\\G(?![\\x{85 2028 2029}\r\n\t #])",
|
||
"end": "(?=[\t ]*+(?>:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]|[,\\[\\]{}])|[\t ]++#)",
|
||
"name": "meta.flow.map.key.yaml string.unquoted.plain.in.yaml entity.name.tag.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "#tag-implicit-plain-in"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
"key-double": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#double-quoted-style (FLOW-OUT)",
|
||
"begin": "\"",
|
||
"end": "\"",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.end.yaml"
|
||
}
|
||
},
|
||
"name": "meta.map.key.yaml string.quoted.double.yaml entity.name.tag.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "[^\t -\\x{10FFFF}]++",
|
||
"name": "invalid.illegal.character.yaml"
|
||
},
|
||
{
|
||
"include": "#double-escape"
|
||
}
|
||
]
|
||
},
|
||
"double": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#double-quoted-style",
|
||
"begin": "\"",
|
||
"end": "\"",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.end.yaml"
|
||
}
|
||
},
|
||
"name": "string.quoted.double.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "(?<!\")\\G[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[^\\x{85 2028 2029}\r\n\t -\\x{10FFFF}]++",
|
||
"name": "invalid.illegal.character.yaml"
|
||
},
|
||
{
|
||
"include": "#double-escape"
|
||
}
|
||
]
|
||
},
|
||
"single": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#single-quoted-style",
|
||
"begin": "'",
|
||
"end": "'(?!')",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.string.end.yaml"
|
||
}
|
||
},
|
||
"name": "string.quoted.single.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "(?<!')\\G[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[\t ]++$",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"match": "[^\\x{85 2028 2029}\r\n\t -\\x{10FFFF}]++",
|
||
"name": "invalid.illegal.character.yaml"
|
||
},
|
||
{
|
||
"match": "''",
|
||
"name": "constant.character.escape.single-quote.yaml"
|
||
}
|
||
]
|
||
},
|
||
"double-escape": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-esc-char",
|
||
"patterns": [
|
||
{
|
||
"match": "\\\\[\\x{85 2028 2029}\r\n\t0abtnvfre \"\\\\N_LP]",
|
||
"name": "constant.character.escape.yaml"
|
||
},
|
||
{
|
||
"match": "\\\\x[0-9a-fA-F]{2}",
|
||
"name": "constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"match": "\\\\u[0-9a-fA-F]{4}",
|
||
"name": "constant.character.escape.unicode.16-bit.yaml"
|
||
},
|
||
{
|
||
"match": "\\\\U[0-9a-fA-F]{8}",
|
||
"name": "constant.character.escape.unicode.32-bit.yaml"
|
||
},
|
||
{
|
||
"match": "\\\\(?>x[^\"]{2,0}|u[^\"]{4,0}|U[^\"]{8,0}|.)",
|
||
"name": "invalid.illegal.constant.character.escape.yaml"
|
||
}
|
||
]
|
||
},
|
||
"tag-implicit-plain-in": {
|
||
"comment": "https://yaml.org/type/index.html",
|
||
"patterns": [
|
||
{
|
||
"match": "\\G(?>null|Null|NULL|~)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.language.null.yaml"
|
||
},
|
||
{
|
||
"match": "\\G(?>true|True|TRUE|false|False|FALSE|y|Y|yes|Yes|YES|n|N|no|No|NO|on|On|ON|off|Off|OFF)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.language.boolean.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+(0|[1-9][0-9_]*+)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.integer.decimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+0b[0-1_]++(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.integer.binary.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?0[0-7_]++(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.integer.octal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+0x[0-9a-fA-F_]++(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.integer.hexadecimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+[1-9][0-9_]*+(?>:[0-5]?[0-9])++(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.integer.Sexagesimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+(?>[0-9][0-9_]*+)?+\\.[0-9.]*+(?>[eE][-+][0-9]+)?+(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.float.decimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+[0-9][0-9_]*+(?>:[0-5]?[0-9])++\\.[0-9_]*+(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.float.Sexagesimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+\\.(?>inf|Inf|INF)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.float.inf.yaml"
|
||
},
|
||
{
|
||
"match": "\\G\\.(?>nan|NaN|NAN)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.float.nan.yaml"
|
||
},
|
||
{
|
||
"comment": "https://www.w3.org/TR/NOTE-datetime does not allow spaces, however https://yaml.org/type/timestamp.html does, but the provided regex doesn't match the TZD space in many of the YAML examples",
|
||
"match": "\\G(?>[0-9]{4}-[0-9]{2,1}-[0-9]{2,1}(?>T|t|[\t ]++)[0-9]{2,1}:[0-9]{2}:[0-9]{2}(?>\\.[0-9]*+)?+[\t ]*+(?>Z|[-+][0-9]{2,1}(?>:[0-9]{2})?+)?+|[0-9]{4}-[0-9]{2}-[0-9]{2})(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.numeric.timestamp.yaml"
|
||
},
|
||
{
|
||
"match": "\\G<<(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.language.merge.yaml"
|
||
},
|
||
{
|
||
"match": "\\G=(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.language.value.yaml"
|
||
},
|
||
{
|
||
"match": "\\G(?>!|&|\\*)(?=[\t ]++#|[\t ]*+(?>[\\x{85 2028 2029}\r\n,\\]}]|:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]))",
|
||
"name": "constant.language.yaml.yaml"
|
||
}
|
||
]
|
||
},
|
||
"tag-implicit-plain-out": {
|
||
"comment": "https://yaml.org/type/index.html",
|
||
"patterns": [
|
||
{
|
||
"match": "\\G(?>null|Null|NULL|~)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.language.null.yaml"
|
||
},
|
||
{
|
||
"match": "\\G(?>true|True|TRUE|false|False|FALSE|yes|Yes|YES|y|Y|no|No|NO|n|N|on|On|ON|off|Off|OFF)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.language.boolean.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+(0|[1-9][0-9_]*+)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.integer.decimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+0b[0-1_]++(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.integer.binary.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?0[0-7_]++(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.integer.octal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+0x[0-9a-fA-F_]++(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.integer.hexadecimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+[1-9][0-9_]*+(?>:[0-5]?[0-9])++(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.integer.Sexagesimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+(?>[0-9][0-9_]*+)?+\\.[0-9.]*+(?>[eE][-+][0-9]+)?+(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.float.decimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+[0-9][0-9_]*+(?>:[0-5]?[0-9])++\\.[0-9_]*+(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.float.Sexagesimal.yaml"
|
||
},
|
||
{
|
||
"match": "\\G[-+]?+\\.(?>inf|Inf|INF)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.float.inf.yaml"
|
||
},
|
||
{
|
||
"match": "\\G\\.(?>nan|NaN|NAN)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.float.nan.yaml"
|
||
},
|
||
{
|
||
"comment": "https://www.w3.org/TR/NOTE-datetime does not allow spaces, however https://yaml.org/type/timestamp.html does, but the provided regex doesn't match the TZD space in many of the YAML examples",
|
||
"match": "\\G(?>[0-9]{4}-[0-9]{2,1}-[0-9]{2,1}(?>T|t|[\t ]++)[0-9]{2,1}:[0-9]{2}:[0-9]{2}(?>\\.[0-9]*+)?+[\t ]*+(?>Z|[-+][0-9]{2,1}(?>:[0-9]{2})?+)?+|[0-9]{4}-[0-9]{2}-[0-9]{2})(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.numeric.timestamp.yaml"
|
||
},
|
||
{
|
||
"match": "\\G<<(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.language.merge.yaml"
|
||
},
|
||
{
|
||
"match": "\\G=(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.language.value.yaml"
|
||
},
|
||
{
|
||
"match": "\\G(?>!|&|\\*)(?=[\t ]++#|[\t ]*+(?>$|:[\\x{85 2028 2029}\r\n\t ]))",
|
||
"name": "constant.language.yaml.yaml"
|
||
}
|
||
]
|
||
},
|
||
"tag-property": {
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-tag-property",
|
||
"//": [
|
||
"!",
|
||
"!!",
|
||
"!<>",
|
||
"!...",
|
||
"!!...",
|
||
"!<...>",
|
||
"!...!..."
|
||
],
|
||
"patterns": [
|
||
{
|
||
"match": "!(?=[\\x{85 2028 2029}\r\n\t ])",
|
||
"name": "storage.type.tag.non-specific.yaml punctuation.definition.tag.non-specific.yaml"
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-verbatim-tag",
|
||
"begin": "!<",
|
||
"end": ">",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.tag.begin.yaml"
|
||
}
|
||
},
|
||
"endCaptures": {
|
||
"0": {
|
||
"name": "punctuation.definition.tag.end.yaml"
|
||
}
|
||
},
|
||
"name": "storage.type.tag.verbatim.yaml",
|
||
"patterns": [
|
||
{
|
||
"match": "%[0-9a-fA-F]{2}",
|
||
"name": "constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"match": "%[^\\x{85 2028 2029}\r\n\t ]{2,0}",
|
||
"name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
},
|
||
{
|
||
"match": "[^\\x{85 2028 2029}\r\n\t a-zA-Z0-9-#;/?:@&=+$,_.!~*'()\\[\\]%>]++",
|
||
"name": "invalid.illegal.unrecognized.yaml"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-ns-shorthand-tag",
|
||
"begin": "(?=!)",
|
||
"end": "(?=[\\x{85 2028 2029}\r\n\t ,\\[\\]{}])",
|
||
"name": "storage.type.tag.shorthand.yaml",
|
||
"patterns": [
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-secondary-tag-handle",
|
||
"match": "\\G!!",
|
||
"name": "punctuation.definition.tag.secondary.yaml"
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-secondary-tag-handle",
|
||
"match": "\\G(!)[0-9A-Za-z-]++(!)",
|
||
"captures": {
|
||
"1": {
|
||
"name": "punctuation.definition.tag.named.yaml"
|
||
},
|
||
"2": {
|
||
"name": "punctuation.definition.tag.named.yaml"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.2.2/#rule-c-primary-tag-handle",
|
||
"match": "\\G!",
|
||
"name": "punctuation.definition.tag.primary.yaml"
|
||
},
|
||
{
|
||
"match": "%[0-9a-fA-F]{2}",
|
||
"name": "constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"match": "%[^\\x{85 2028 2029}\r\n\t ]{2,0}",
|
||
"name": "invalid.illegal.constant.character.escape.unicode.8-bit.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
},
|
||
{
|
||
"match": "[^\\x{85 2028 2029}\r\n\t a-zA-Z0-9-#;/?:@&=+$,_.~*'()\\[\\]%]++",
|
||
"name": "invalid.illegal.unrecognized.yaml"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"anchor-property": {
|
||
"match": "(&)([^ \\p{Cntrl}\\p{Surrogate}\\x{2028 2029 FFFE FFFF}]++)|(&)",
|
||
"captures": {
|
||
"0": {
|
||
"name": "keyword.control.flow.anchor.yaml"
|
||
},
|
||
"1": {
|
||
"name": "punctuation.definition.anchor.yaml"
|
||
},
|
||
"2": {
|
||
"name": "variable.other.anchor.yaml"
|
||
},
|
||
"3": {
|
||
"name": "invalid.illegal.flow.anchor.yaml"
|
||
}
|
||
}
|
||
},
|
||
"alias": {
|
||
"begin": "(\\*)([^ \\p{Cntrl}\\p{Surrogate}\\x{2028 2029 FFFE FFFF}]++)|(\\*)",
|
||
"end": "(?=:[\\x{85 2028 2029}\r\n\t ,\\[\\]{}]|[,\\[\\]{}])",
|
||
"captures": {
|
||
"0": {
|
||
"name": "keyword.control.flow.alias.yaml"
|
||
},
|
||
"1": {
|
||
"name": "punctuation.definition.alias.yaml"
|
||
},
|
||
"2": {
|
||
"name": "variable.other.alias.yaml"
|
||
},
|
||
"3": {
|
||
"name": "invalid.illegal.flow.alias.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"byte-order-mark": {
|
||
"comment": "",
|
||
"begin": "\\G",
|
||
"while": "\\G(?=[\\x{FEFF 85 2028 2029}\r\n\t ])",
|
||
"patterns": [
|
||
{
|
||
"begin": "(?=#)",
|
||
"while": "\\G",
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"begin": "\\G\\x{FEFF}",
|
||
"while": "\\G",
|
||
"beginCaptures": {
|
||
"0": {
|
||
"name": "byte-order-mark.yaml"
|
||
}
|
||
},
|
||
"patterns": [
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"include": "#presentation-detail"
|
||
}
|
||
]
|
||
},
|
||
"presentation-detail": {
|
||
"patterns": [
|
||
{
|
||
"match": "[\t ]++",
|
||
"name": "punctuation.whitespace.separator.yaml"
|
||
},
|
||
{
|
||
"comment": "https://yaml.org/spec/1.1/#id871136",
|
||
"match": "[\\x{85 2028 2029}\r\n]++",
|
||
"name": "punctuation.separator.line-break.yaml"
|
||
},
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
},
|
||
{
|
||
"include": "#comment"
|
||
},
|
||
{
|
||
"include": "#unknown"
|
||
}
|
||
]
|
||
},
|
||
"comment": {
|
||
"comment": "Comments must be separated from other tokens by white space characters. `space`, `newline` or `carriage-return`. `#(.*)` causes performance issues",
|
||
"begin": "(?<=^|[\\x{FEFF 85 2028 2029} ])#",
|
||
"end": "[\\x{85 2028 2029}\r\n]",
|
||
"captures": {
|
||
"0": {
|
||
"name": "punctuation.definition.comment.yaml"
|
||
}
|
||
},
|
||
"name": "comment.line.number-sign.yaml",
|
||
"patterns": [
|
||
{
|
||
"include": "source.yaml#non-printable"
|
||
}
|
||
]
|
||
},
|
||
"unknown": {
|
||
"match": ".[[^\\x{85 2028 2029}#\"':,\\[\\]{}]&&!-~\\x{A0}-\\x{D7FF}\\x{E000}-\\x{FFFD}\\x{010000}-\\x{10FFFF}]*+",
|
||
"name": "invalid.illegal.unrecognized.yaml"
|
||
}
|
||
}
|
||
} |