{ "name": "YAML", "scopeName": "source.yaml", "patterns": [ { "include": "#erb" }, { "include": "#comment" }, { "name": "invalid.illegal.whitespace.yaml", "match": "\\t+" }, { "name": "punctuation.definition.directives.end.yaml", "match": "^---" }, { "name": "punctuation.definition.document.end.yaml", "match": "^\\.\\.\\." }, { "contentName": "string.unquoted.block.yaml", "begin": "^(\\s*)(?!-\\s*)([^!@#%\u0026*\u003e,][^#]*\\S)\\s*(:)(?:\\s+((!)[^!\\s]+))?\\s+(?=\\||\u003e)", "end": "^(?!$)(?!\\1\\s+)", "patterns": [ { "begin": "\\G", "end": "$", "patterns": [ { "include": "#comment" } ] }, { "include": "#constants" }, { "include": "#erb" } ], "beginCaptures": { "2": { "name": "entity.name.tag.yaml" }, "3": { "name": "punctuation.separator.key-value.yaml" }, "4": { "name": "keyword.other.tag.local.yaml" }, "5": { "name": "punctuation.definition.tag.local.yaml" } } }, { "contentName": "string.unquoted.block.yaml", "begin": "^(\\s*)(?:(-)|(?:(?:(-)(\\s*))?([^!@#%\u0026*\u003e,][^#]*\\S)\\s*(:)))(?:\\s+((!)[^!\\s]+))?\\s+(?=\\||\u003e)", "end": "^((?!$)(?!\\1\\s+)|(?=\\s\\4(-|[^\\s!@#%\u0026*\u003e,].*:\\s+)))", "patterns": [ { "begin": "\\G", "end": "$", "patterns": [ { "include": "#comment" } ] }, { "include": "#constants" }, { "include": "#erb" } ], "beginCaptures": { "2": { "name": "punctuation.definition.entry.yaml" }, "3": { "name": "punctuation.definition.entry.yaml" }, "5": { "name": "entity.name.tag.yaml" }, "6": { "name": "punctuation.separator.key-value.yaml" }, "7": { "name": "keyword.other.tag.local.yaml" }, "8": { "name": "punctuation.definition.tag.local.yaml" } } }, { "match": "(\u003c\u003c)\\s*(:)\\s+(.+)$", "captures": { "1": { "name": "entity.name.tag.merge.yaml" }, "2": { "name": "punctuation.separator.key-value.yaml" }, "3": { "patterns": [ { "include": "#variables" } ] } } }, { "begin": "(?\u003e^(\\s*)(-)?\\s*)([^!{@#%\u0026*\u003e,'\"][^#]*?)(:)\\s+((!!)omap)?", "end": "^((?!\\1\\s+)|(?=\\1\\s*(-|[^!@#%\u0026*\u003e,].*:\\s+|#)))", "patterns": [ { "include": "#scalar-content" } ], "beginCaptures": { "2": { "name": "punctuation.definition.entry.yaml" }, "3": { "name": "entity.name.tag.yaml" }, "4": { "name": "punctuation.separator.key-value.yaml" }, "5": { "name": "keyword.other.omap.yaml" }, "6": { "name": "punctuation.definition.tag.omap.yaml" } } }, { "begin": "^(\\s*)(-)?\\s*(?:((')([^']*?)('))|((\")([^\"]*?)(\")))(:)\\s+((!!)omap)?", "end": "^((?!\\1\\s+)|(?=\\1\\s*(-|[^!@#%\u0026*\u003e,].*:\\s+|#)))", "patterns": [ { "include": "#scalar-content" } ], "beginCaptures": { "10": { "name": "punctuation.definition.string.end.yaml" }, "11": { "name": "punctuation.separator.key-value.yaml" }, "12": { "name": "keyword.other.omap.yaml" }, "13": { "name": "punctuation.definition.tag.omap.yaml" }, "2": { "name": "punctuation.definition.entry.yaml" }, "3": { "name": "string.quoted.single.yaml" }, "4": { "name": "punctuation.definition.string.begin.yaml" }, "5": { "name": "entity.name.tag.yaml" }, "6": { "name": "punctuation.definition.string.end.yaml" }, "7": { "name": "string.quoted.double.yaml" }, "8": { "name": "punctuation.definition.string.begin.yaml" }, "9": { "name": "entity.name.tag.yaml" } } }, { "begin": "^(\\s*)(-)\\s+(?:((!!)omap)|((!)[^!\\s]+)|(?![!@#%\u0026*\u003e,]))", "end": "^((?!\\1\\s+)|(?=\\1\\s*(-|[^!@#%\u0026*\u003e,].*:\\s+|#)))", "patterns": [ { "include": "#scalar-content" } ], "beginCaptures": { "2": { "name": "punctuation.definition.entry.yaml" }, "3": { "name": "keyword.other.omap.yaml" }, "4": { "name": "punctuation.definition.tag.omap.yaml" }, "5": { "name": "keyword.other.tag.local.yaml" }, "6": { "name": "punctuation.definition.tag.local.yaml" } } }, { "include": "#variables" }, { "include": "#strings" } ], "repository": { "comment": { "name": "comment.line.number-sign.yaml", "begin": "(?\u003c=^|\\s)#(?!{)", "end": "$", "beginCaptures": { "0": { "name": "punctuation.definition.comment.yaml" } } }, "constants": { "name": "constant.language.yaml", "match": "(?\u003c=\\s)(true|false|null|True|False|Null|TRUE|FALSE|NULL|~)(?=\\s*$)" }, "date": { "match": "([0-9]{4}-[0-9]{2}-[0-9]{2})\\s*($|(?=#)(?!#{))", "captures": { "1": { "name": "constant.other.date.yaml" } } }, "erb": { "name": "meta.embedded.line.ruby", "contentName": "source.ruby.rails", "begin": "\u003c%+(?!\u003e)=?", "end": "(%)\u003e", "patterns": [ { "name": "comment.line.number-sign.ruby", "match": "(#).*?(?=%\u003e)", "captures": { "1": { "name": "punctuation.definition.comment.ruby" } } }, {} ], "beginCaptures": { "0": { "name": "punctuation.definition.embedded.begin.ruby" } }, "endCaptures": { "0": { "name": "punctuation.definition.embedded.end.ruby" }, "1": { "name": "source.ruby.rails" } } }, "escaped_char": { "patterns": [ { "name": "constant.character.escape.yaml", "match": "\\\\u[A-Fa-f0-9]{4}" }, { "name": "constant.character.escape.yaml", "match": "\\\\U[A-Fa-f0-9]{8}" }, { "name": "constant.character.escape.yaml", "match": "\\\\x[0-9A-Fa-f]{2}" }, { "name": "constant.character.escape.yaml", "match": "\\\\[0abtnvfre \"/\\\\N_LP]" }, { "name": "invalid.illegal.escape.yaml", "match": "\\\\(u.{4}|U.{8}|x.{2}|.)" } ] }, "numeric": { "match": "(((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?)\\s*($|(?=#)(?!#{))", "captures": { "1": { "name": "constant.numeric.yaml" } } }, "scalar-content": { "patterns": [ { "include": "#comment" }, { "name": "punctuation.definition.tag.non-specific.yaml", "match": "!(?=\\s)" }, { "include": "#constants" }, { "include": "#date" }, { "include": "#numeric" }, { "include": "#strings" } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.yaml", "begin": "\"", "end": "\"", "patterns": [ { "include": "#escaped_char" }, { "include": "#erb" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.yaml" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.yaml" } } }, { "name": "string.quoted.single.yaml", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.yaml", "match": "''" }, { "include": "#erb" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.yaml" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.yaml" } }, "applyEndPatternLast": true }, { "name": "string.interpolated.yaml", "begin": "`", "end": "`", "patterns": [ { "include": "#escaped_char" }, { "include": "#erb" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.yaml" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.yaml" } } }, { "name": "string.unquoted.yaml", "match": "[^\\s\"'\\n](?!\\s*#(?!{))([^#\\n]|((?\u003c!\\s)#))*" } ] }, "variables": { "name": "variable.other.yaml", "match": "(\u0026|\\*)\\w+$", "captures": { "1": { "name": "punctuation.definition.variable.yaml" } } } } }