383 lines
8.5 KiB
JSON
383 lines
8.5 KiB
JSON
{
|
|
"displayName": "XML",
|
|
"name": "xml",
|
|
"patterns": [
|
|
{
|
|
"begin": "(<\\?)\\s*([-0-9A-Z_a-z]+)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag.xml"
|
|
}
|
|
},
|
|
"end": "(\\?>)",
|
|
"name": "meta.tag.preprocessor.xml",
|
|
"patterns": [
|
|
{
|
|
"match": " ([-A-Za-z]+)",
|
|
"name": "entity.other.attribute-name.xml"
|
|
},
|
|
{
|
|
"include": "#doublequotedString"
|
|
},
|
|
{
|
|
"include": "#singlequotedString"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(<!)(DOCTYPE)\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "keyword.other.doctype.xml"
|
|
},
|
|
"3": {
|
|
"name": "variable.language.documentroot.xml"
|
|
}
|
|
},
|
|
"end": "\\s*(>)",
|
|
"name": "meta.tag.sgml.doctype.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#internalSubset"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#comments"
|
|
},
|
|
{
|
|
"begin": "(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\s[^>]*)?></\\2>)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag.xml"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.tag.namespace.xml"
|
|
},
|
|
"4": {
|
|
"name": "punctuation.separator.namespace.xml"
|
|
},
|
|
"5": {
|
|
"name": "entity.name.tag.localname.xml"
|
|
}
|
|
},
|
|
"end": "(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.tag.xml"
|
|
},
|
|
"4": {
|
|
"name": "entity.name.tag.namespace.xml"
|
|
},
|
|
"5": {
|
|
"name": "punctuation.separator.namespace.xml"
|
|
},
|
|
"6": {
|
|
"name": "entity.name.tag.localname.xml"
|
|
},
|
|
"7": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
}
|
|
},
|
|
"name": "meta.tag.no-content.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#tagStuff"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(</?)(?:([-.\\w]+)((:)))?([-.:\\w]+)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag.namespace.xml"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.tag.xml"
|
|
},
|
|
"4": {
|
|
"name": "punctuation.separator.namespace.xml"
|
|
},
|
|
"5": {
|
|
"name": "entity.name.tag.localname.xml"
|
|
}
|
|
},
|
|
"end": "(/?>)",
|
|
"name": "meta.tag.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#tagStuff"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#entity"
|
|
},
|
|
{
|
|
"include": "#bare-ampersand"
|
|
},
|
|
{
|
|
"begin": "<%@",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.xml"
|
|
}
|
|
},
|
|
"end": "%>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.xml"
|
|
}
|
|
},
|
|
"name": "source.java-props.embedded.xml",
|
|
"patterns": [
|
|
{
|
|
"match": "page|include|taglib",
|
|
"name": "keyword.other.page-props.xml"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "<%[!=]?(?!--)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.xml"
|
|
}
|
|
},
|
|
"end": "(?!--)%>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.xml"
|
|
}
|
|
},
|
|
"name": "source.java.embedded.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "source.java"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "<!\\[CDATA\\[",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.xml"
|
|
}
|
|
},
|
|
"end": "]]>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.xml"
|
|
}
|
|
},
|
|
"name": "string.unquoted.cdata.xml"
|
|
}
|
|
],
|
|
"repository": {
|
|
"EntityDecl": {
|
|
"begin": "(<!)(ENTITY)\\s+(%\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.xml"
|
|
},
|
|
"2": {
|
|
"name": "keyword.other.entity.xml"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.entity.xml"
|
|
},
|
|
"4": {
|
|
"name": "variable.language.entity.xml"
|
|
},
|
|
"5": {
|
|
"name": "keyword.other.entitytype.xml"
|
|
}
|
|
},
|
|
"end": "(>)",
|
|
"patterns": [
|
|
{
|
|
"include": "#doublequotedString"
|
|
},
|
|
{
|
|
"include": "#singlequotedString"
|
|
}
|
|
]
|
|
},
|
|
"bare-ampersand": {
|
|
"match": "&",
|
|
"name": "invalid.illegal.bad-ampersand.xml"
|
|
},
|
|
"comments": {
|
|
"patterns": [
|
|
{
|
|
"begin": "<%--",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.comment.xml"
|
|
},
|
|
"end": "--%>",
|
|
"name": "comment.block.xml"
|
|
}
|
|
},
|
|
{
|
|
"begin": "<!--",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.comment.xml"
|
|
}
|
|
},
|
|
"end": "-->",
|
|
"name": "comment.block.xml",
|
|
"patterns": [
|
|
{
|
|
"begin": "--(?!>)",
|
|
"captures": {
|
|
"0": {
|
|
"name": "invalid.illegal.bad-comments-or-CDATA.xml"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"doublequotedString": {
|
|
"begin": "\"",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.xml"
|
|
}
|
|
},
|
|
"end": "\"",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.xml"
|
|
}
|
|
},
|
|
"name": "string.quoted.double.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#entity"
|
|
},
|
|
{
|
|
"include": "#bare-ampersand"
|
|
}
|
|
]
|
|
},
|
|
"entity": {
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.constant.xml"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.constant.xml"
|
|
}
|
|
},
|
|
"match": "(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\h+)(;)",
|
|
"name": "constant.character.entity.xml"
|
|
},
|
|
"internalSubset": {
|
|
"begin": "(\\[)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.constant.xml"
|
|
}
|
|
},
|
|
"end": "(])",
|
|
"name": "meta.internalsubset.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#EntityDecl"
|
|
},
|
|
{
|
|
"include": "#parameterEntity"
|
|
},
|
|
{
|
|
"include": "#comments"
|
|
}
|
|
]
|
|
},
|
|
"parameterEntity": {
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.constant.xml"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.constant.xml"
|
|
}
|
|
},
|
|
"match": "(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)",
|
|
"name": "constant.character.parameter-entity.xml"
|
|
},
|
|
"singlequotedString": {
|
|
"begin": "'",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.xml"
|
|
}
|
|
},
|
|
"end": "'",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.xml"
|
|
}
|
|
},
|
|
"name": "string.quoted.single.xml",
|
|
"patterns": [
|
|
{
|
|
"include": "#entity"
|
|
},
|
|
{
|
|
"include": "#bare-ampersand"
|
|
}
|
|
]
|
|
},
|
|
"tagStuff": {
|
|
"patterns": [
|
|
{
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name.namespace.xml"
|
|
},
|
|
"2": {
|
|
"name": "entity.other.attribute-name.xml"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.separator.namespace.xml"
|
|
},
|
|
"4": {
|
|
"name": "entity.other.attribute-name.localname.xml"
|
|
}
|
|
},
|
|
"match": "(?:^|\\s+)(?:([-.\\w]+)((:)))?([-.:\\w]+)\\s*="
|
|
},
|
|
{
|
|
"include": "#doublequotedString"
|
|
},
|
|
{
|
|
"include": "#singlequotedString"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"scopeName": "text.xml"
|
|
}
|