xml top-level property
Language
xml
final
Implementation
final xml = Language(
id: "xml",
refs: {
'~contains~5~contains~0': Mode(
endsWithParent: true,
illegal: "<",
relevance: 0,
contains: [
Mode(
className: "attr",
begin: "[\\p{L}0-9._:-]+",
relevance: 0,
),
Mode(
begin: "=\\s*",
relevance: 0,
contains: [
Mode(
className: "string",
endsParent: true,
variants: [
Mode(
begin: "\"",
end: "\"",
contains: [
ModeReference('~contains~3'),
],
),
Mode(
begin: "'",
end: "'",
contains: [
ModeReference('~contains~3'),
],
),
Mode(
begin: "[^\\s\"'=<>`]+",
),
],
),
],
),
],
),
'~contains~3': Mode(
className: "symbol",
begin: "&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;",
),
'~contains~0~contains~3': Mode(
begin: "\\(",
contains: [
ModeReference('~contains~0~contains~0~contains~0'),
],
end: "\\)",
),
'~contains~0~contains~2': Mode(
scope: "string",
begin: "'",
end: "'",
illegal: "\\n",
contains: [
BACKSLASH_ESCAPE,
],
className: "string",
),
'~contains~0~contains~1': Mode(
scope: "string",
begin: "\"",
end: "\"",
illegal: "\\n",
contains: [
BACKSLASH_ESCAPE,
],
className: "string",
),
'~contains~0~contains~0~contains~0': Mode(
className: "keyword",
begin: "#?[a-z_][a-z1-9_-]+",
illegal: "\\n",
),
'~contains~0~contains~0': Mode(
begin: "\\s",
contains: [
ModeReference('~contains~0~contains~0~contains~0'),
],
),
},
name: "HTML, XML",
aliases: [
"html",
"xhtml",
"rss",
"atom",
"xjb",
"xsd",
"xsl",
"plist",
"wsf",
"svg"
],
case_insensitive: true,
unicodeRegex: true,
contains: [
Mode(
className: "meta",
begin: "<![a-z]",
end: ">",
relevance: 10,
contains: [
ModeReference('~contains~0~contains~0'),
ModeReference('~contains~0~contains~1'),
ModeReference('~contains~0~contains~2'),
ModeReference('~contains~0~contains~3'),
Mode(
begin: "\\[",
end: "\\]",
contains: [
Mode(
className: "meta",
begin: "<![a-z]",
end: ">",
contains: [
ModeReference('~contains~0~contains~0'),
ModeReference('~contains~0~contains~3'),
ModeReference('~contains~0~contains~1'),
ModeReference('~contains~0~contains~2'),
],
),
],
),
],
),
Mode(
scope: "comment",
begin: "<!--",
end: "-->",
contains: [
Mode(
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
excludeBegin: true,
relevance: 0,
),
Mode(
begin:
"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}",
),
],
relevance: 10,
),
Mode(
begin: "<!\\[CDATA\\[",
end: "\\]\\]>",
relevance: 10,
),
ModeReference('~contains~3'),
Mode(
className: "meta",
end: "\\?>",
variants: [
Mode(
begin: "<\\?xml",
relevance: 10,
contains: [
ModeReference('~contains~0~contains~1'),
],
),
Mode(
begin: "<\\?[a-z][a-z0-9]+",
),
],
),
Mode(
className: "tag",
begin: "<style(?=\\s|>)",
end: ">",
keywords: {"name": "style"},
contains: [
ModeReference('~contains~5~contains~0'),
],
starts: Mode(
end: "<\\/style>",
returnEnd: true,
subLanguage: ["css", "xml"],
),
),
Mode(
className: "tag",
begin: "<script(?=\\s|>)",
end: ">",
keywords: {"name": "script"},
contains: [
ModeReference('~contains~5~contains~0'),
],
starts: Mode(
end: "<\\/script>",
returnEnd: true,
subLanguage: ["javascript", "handlebars", "xml"],
),
),
Mode(
className: "tag",
begin: "<>|<\\/>",
),
Mode(
className: "tag",
begin: "<(?=[\\p{L}_](?:[\\p{L}0-9_.-]*:)?[\\p{L}0-9_.-]*(?:\\/>|>|\\s))",
end: "\\/?>",
contains: [
Mode(
className: "name",
begin: "[\\p{L}_](?:[\\p{L}0-9_.-]*:)?[\\p{L}0-9_.-]*",
relevance: 0,
starts: ModeReference('~contains~5~contains~0'),
),
],
),
Mode(
className: "tag",
begin: "<\\/(?=[\\p{L}_](?:[\\p{L}0-9_.-]*:)?[\\p{L}0-9_.-]*>)",
contains: [
Mode(
className: "name",
begin: "[\\p{L}_](?:[\\p{L}0-9_.-]*:)?[\\p{L}0-9_.-]*",
relevance: 0,
),
Mode(
begin: ">",
relevance: 0,
endsParent: true,
),
],
),
],
);