@wolf-scope/wolf-ui
Version:
UI library for web applications using Lit
220 lines (219 loc) • 4.48 kB
JavaScript
function g(n) {
const e = n.regex, a = e.concat(/[\p{L}_]/u, e.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), o = /[\p{L}0-9._:-]+/u, s = {
className: "symbol",
begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
}, t = {
begin: /\s/,
contains: [
{
className: "keyword",
begin: /#?[a-z_][a-z1-9_-]+/,
illegal: /\n/
}
]
}, r = n.inherit(t, {
begin: /\(/,
end: /\)/
}), l = n.inherit(n.APOS_STRING_MODE, { className: "string" }), c = n.inherit(n.QUOTE_STRING_MODE, { className: "string" }), i = {
endsWithParent: !0,
illegal: /</,
relevance: 0,
contains: [
{
className: "attr",
begin: o,
relevance: 0
},
{
begin: /=\s*/,
relevance: 0,
contains: [
{
className: "string",
endsParent: !0,
variants: [
{
begin: /"/,
end: /"/,
contains: [s]
},
{
begin: /'/,
end: /'/,
contains: [s]
},
{ begin: /[^\s"'=<>`]+/ }
]
}
]
}
]
};
return {
name: "HTML, XML",
aliases: [
"html",
"xhtml",
"rss",
"atom",
"xjb",
"xsd",
"xsl",
"plist",
"wsf",
"svg"
],
case_insensitive: !0,
unicodeRegex: !0,
contains: [
{
className: "meta",
begin: /<![a-z]/,
end: />/,
relevance: 10,
contains: [
t,
c,
l,
r,
{
begin: /\[/,
end: /\]/,
contains: [
{
className: "meta",
begin: /<![a-z]/,
end: />/,
contains: [
t,
r,
c,
l
]
}
]
}
]
},
n.COMMENT(
/<!--/,
/-->/,
{ relevance: 10 }
),
{
begin: /<!\[CDATA\[/,
end: /\]\]>/,
relevance: 10
},
s,
// xml processing instructions
{
className: "meta",
end: /\?>/,
variants: [
{
begin: /<\?xml/,
relevance: 10,
contains: [
c
]
},
{
begin: /<\?[a-z][a-z0-9]+/
}
]
},
{
className: "tag",
/*
The lookahead pattern (?=...) ensures that 'begin' only matches
'<style' as a single word, followed by a whitespace or an
ending bracket.
*/
begin: /<style(?=\s|>)/,
end: />/,
keywords: { name: "style" },
contains: [i],
starts: {
end: /<\/style>/,
returnEnd: !0,
subLanguage: [
"css",
"xml"
]
}
},
{
className: "tag",
// See the comment in the <style tag about the lookahead pattern
begin: /<script(?=\s|>)/,
end: />/,
keywords: { name: "script" },
contains: [i],
starts: {
end: /<\/script>/,
returnEnd: !0,
subLanguage: [
"javascript",
"handlebars",
"xml"
]
}
},
// we need this for now for jSX
{
className: "tag",
begin: /<>|<\/>/
},
// open tag
{
className: "tag",
begin: e.concat(
/</,
e.lookahead(e.concat(
a,
// <tag/>
// <tag>
// <tag ...
e.either(/\/>/, />/, /\s/)
))
),
end: /\/?>/,
contains: [
{
className: "name",
begin: a,
relevance: 0,
starts: i
}
]
},
// close tag
{
className: "tag",
begin: e.concat(
/<\//,
e.lookahead(e.concat(
a,
/>/
))
),
contains: [
{
className: "name",
begin: a,
relevance: 0
},
{
begin: />/,
relevance: 0,
endsParent: !0
}
]
}
]
};
}
export {
g as default
};