2024-01-22 18:48:00 +08:00

87 lines
2.2 KiB
JavaScript

module.exports = function (e) {
var n = {
begin: /[A-Z\_\.\-]+\s*:/,
returnBegin: !0,
end: ";",
endsWithParent: !0,
contains: [
{
className: "attribute",
begin: /\S/,
end: ":",
excludeEnd: !0,
starts: {
endsWithParent: !0,
excludeEnd: !0,
contains: [
{
begin: /[\w-]+\(/,
returnBegin: !0,
contains: [
{ className: "built_in", begin: /[\w-]+/ },
{
begin: /\(/,
end: /\)/,
contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE],
},
],
},
e.CSS_NUMBER_MODE,
e.QUOTE_STRING_MODE,
e.APOS_STRING_MODE,
e.C_BLOCK_COMMENT_MODE,
{ className: "number", begin: "#[0-9A-Fa-f]+" },
{ className: "meta", begin: "!important" },
],
},
},
],
};
return {
case_insensitive: !0,
illegal: /[=\/|'\$]/,
contains: [
e.C_BLOCK_COMMENT_MODE,
{ className: "selector-id", begin: /#[A-Za-z0-9_-]+/ },
{ className: "selector-class", begin: /\.[A-Za-z0-9_-]+/ },
{ className: "selector-attr", begin: /\[/, end: /\]/, illegal: "$" },
{ className: "selector-pseudo", begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ },
{
begin: "@(font-face|page)",
lexemes: "[a-z-]+",
keywords: "font-face page",
},
{
begin: "@",
end: "[{;]",
illegal: /:/,
contains: [
{ className: "keyword", begin: /\w+/ },
{
begin: /\s/,
endsWithParent: !0,
excludeEnd: !0,
relevance: 0,
contains: [
e.APOS_STRING_MODE,
e.QUOTE_STRING_MODE,
e.CSS_NUMBER_MODE,
],
},
],
},
{
className: "selector-tag",
begin: "[a-zA-Z-][a-zA-Z0-9_-]*",
relevance: 0,
},
{
begin: "{",
end: "}",
illegal: /\S/,
contains: [e.C_BLOCK_COMMENT_MODE, n],
},
],
};
};