TextMate-style syntax highlighting in PHP
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

464 lines
10 KiB

{
"scopeName": "text.xml",
"name": "XML",
"fileTypes": [
"aiml",
"atom",
"axml",
"bpmn",
"config",
"cpt",
"csl",
"csproj",
"csproj.user",
"dae",
"dia",
"dita",
"ditamap",
"dtml",
"fodg",
"fodp",
"fods",
"fodt",
"fsproj",
"fxml",
"gir",
"glade",
"gpx",
"graphml",
"icls",
"iml",
"isml",
"jmx",
"jsp",
"kml",
"kst",
"launch",
"menu",
"mxml",
"nunit",
"nuspec",
"opml",
"owl",
"pom",
"ppj",
"proj",
"pt",
"pubxml",
"pubxml.user",
"rdf",
"rng",
"rss",
"sdf",
"shproj",
"siml",
"sld",
"storyboard",
"StyleCop",
"svg",
"targets",
"tld",
"vbox",
"vbox-prev",
"vbproj",
"vbproj.user",
"vcproj",
"vcproj.filters",
"vcxproj",
"vcxproj.filters",
"wixmsp",
"wixmst",
"wixobj",
"wixout",
"wsdl",
"wxs",
"xaml",
"xbl",
"xib",
"xlf",
"xliff",
"xml",
"xpdl",
"xsd",
"xul",
"ui"
],
"firstLineMatch": "(?x)\n# XML declaration\n(?:\n ^ <\\? xml\n\n # VersionInfo\n \\s+ version\n \\s* = \\s*\n (['\"])\n 1 \\. [0-9]+\n \\1\n\n # EncodingDecl\n (?:\n \\s+ encoding\n \\s* = \\s*\n\n # EncName\n (['\"])\n [A-Za-z]\n [-A-Za-z0-9._]*\n \\2\n )?\n\n # SDDecl\n (?:\n \\s+ standalone\n \\s* = \\s*\n (['\"])\n (?:yes|no)\n \\3\n )?\n\n \\s* \\?>\n)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n xml\n (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n xml\n (?=\\s|:|$)\n)",
"patterns": [
{
"begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)",
"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-zA-Z_][:a-zA-Z0-9_.-]*)",
"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": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\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": "(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)",
"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-zA-Z_][:a-zA-Z0-9_.-]*)(\\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"
},
"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-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",
"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-zA-Z_][:a-zA-Z0-9_.-]*)(;)",
"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"
}
]
},
"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"
}
}
}
]
}
]
}
}
}