mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-08 20:48:15 +08:00
327 lines
8.2 KiB
JavaScript
327 lines
8.2 KiB
JavaScript
|
import {
|
||
|
__commonJS
|
||
|
} from "./chunk-2TUXWMP5.js";
|
||
|
|
||
|
// node_modules/highlight.js/lib/languages/crystal.js
|
||
|
var require_crystal = __commonJS({
|
||
|
"node_modules/highlight.js/lib/languages/crystal.js"(exports, module) {
|
||
|
function crystal(hljs) {
|
||
|
const INT_SUFFIX = "(_?[ui](8|16|32|64|128))?";
|
||
|
const FLOAT_SUFFIX = "(_?f(32|64))?";
|
||
|
const CRYSTAL_IDENT_RE = "[a-zA-Z_]\\w*[!?=]?";
|
||
|
const CRYSTAL_METHOD_RE = "[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?";
|
||
|
const CRYSTAL_PATH_RE = "[A-Za-z_]\\w*(::\\w+)*(\\?|!)?";
|
||
|
const CRYSTAL_KEYWORDS = {
|
||
|
$pattern: CRYSTAL_IDENT_RE,
|
||
|
keyword: "abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",
|
||
|
literal: "false nil true"
|
||
|
};
|
||
|
const SUBST = {
|
||
|
className: "subst",
|
||
|
begin: /#\{/,
|
||
|
end: /\}/,
|
||
|
keywords: CRYSTAL_KEYWORDS
|
||
|
};
|
||
|
const EXPANSION = {
|
||
|
className: "template-variable",
|
||
|
variants: [
|
||
|
{
|
||
|
begin: "\\{\\{",
|
||
|
end: "\\}\\}"
|
||
|
},
|
||
|
{
|
||
|
begin: "\\{%",
|
||
|
end: "%\\}"
|
||
|
}
|
||
|
],
|
||
|
keywords: CRYSTAL_KEYWORDS
|
||
|
};
|
||
|
function recursiveParen(begin, end) {
|
||
|
const contains = [
|
||
|
{
|
||
|
begin,
|
||
|
end
|
||
|
}
|
||
|
];
|
||
|
contains[0].contains = contains;
|
||
|
return contains;
|
||
|
}
|
||
|
const STRING = {
|
||
|
className: "string",
|
||
|
contains: [
|
||
|
hljs.BACKSLASH_ESCAPE,
|
||
|
SUBST
|
||
|
],
|
||
|
variants: [
|
||
|
{
|
||
|
begin: /'/,
|
||
|
end: /'/
|
||
|
},
|
||
|
{
|
||
|
begin: /"/,
|
||
|
end: /"/
|
||
|
},
|
||
|
{
|
||
|
begin: /`/,
|
||
|
end: /`/
|
||
|
},
|
||
|
{
|
||
|
begin: "%[Qwi]?\\(",
|
||
|
end: "\\)",
|
||
|
contains: recursiveParen("\\(", "\\)")
|
||
|
},
|
||
|
{
|
||
|
begin: "%[Qwi]?\\[",
|
||
|
end: "\\]",
|
||
|
contains: recursiveParen("\\[", "\\]")
|
||
|
},
|
||
|
{
|
||
|
begin: "%[Qwi]?\\{",
|
||
|
end: /\}/,
|
||
|
contains: recursiveParen(/\{/, /\}/)
|
||
|
},
|
||
|
{
|
||
|
begin: "%[Qwi]?<",
|
||
|
end: ">",
|
||
|
contains: recursiveParen("<", ">")
|
||
|
},
|
||
|
{
|
||
|
begin: "%[Qwi]?\\|",
|
||
|
end: "\\|"
|
||
|
},
|
||
|
{
|
||
|
begin: /<<-\w+$/,
|
||
|
end: /^\s*\w+$/
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
};
|
||
|
const Q_STRING = {
|
||
|
className: "string",
|
||
|
variants: [
|
||
|
{
|
||
|
begin: "%q\\(",
|
||
|
end: "\\)",
|
||
|
contains: recursiveParen("\\(", "\\)")
|
||
|
},
|
||
|
{
|
||
|
begin: "%q\\[",
|
||
|
end: "\\]",
|
||
|
contains: recursiveParen("\\[", "\\]")
|
||
|
},
|
||
|
{
|
||
|
begin: "%q\\{",
|
||
|
end: /\}/,
|
||
|
contains: recursiveParen(/\{/, /\}/)
|
||
|
},
|
||
|
{
|
||
|
begin: "%q<",
|
||
|
end: ">",
|
||
|
contains: recursiveParen("<", ">")
|
||
|
},
|
||
|
{
|
||
|
begin: "%q\\|",
|
||
|
end: "\\|"
|
||
|
},
|
||
|
{
|
||
|
begin: /<<-'\w+'$/,
|
||
|
end: /^\s*\w+$/
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
};
|
||
|
const REGEXP = {
|
||
|
begin: "(?!%\\})(" + hljs.RE_STARTERS_RE + "|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",
|
||
|
keywords: "case if select unless until when while",
|
||
|
contains: [
|
||
|
{
|
||
|
className: "regexp",
|
||
|
contains: [
|
||
|
hljs.BACKSLASH_ESCAPE,
|
||
|
SUBST
|
||
|
],
|
||
|
variants: [
|
||
|
{
|
||
|
begin: "//[a-z]*",
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
begin: "/(?!\\/)",
|
||
|
end: "/[a-z]*"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
};
|
||
|
const REGEXP2 = {
|
||
|
className: "regexp",
|
||
|
contains: [
|
||
|
hljs.BACKSLASH_ESCAPE,
|
||
|
SUBST
|
||
|
],
|
||
|
variants: [
|
||
|
{
|
||
|
begin: "%r\\(",
|
||
|
end: "\\)",
|
||
|
contains: recursiveParen("\\(", "\\)")
|
||
|
},
|
||
|
{
|
||
|
begin: "%r\\[",
|
||
|
end: "\\]",
|
||
|
contains: recursiveParen("\\[", "\\]")
|
||
|
},
|
||
|
{
|
||
|
begin: "%r\\{",
|
||
|
end: /\}/,
|
||
|
contains: recursiveParen(/\{/, /\}/)
|
||
|
},
|
||
|
{
|
||
|
begin: "%r<",
|
||
|
end: ">",
|
||
|
contains: recursiveParen("<", ">")
|
||
|
},
|
||
|
{
|
||
|
begin: "%r\\|",
|
||
|
end: "\\|"
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
};
|
||
|
const ATTRIBUTE = {
|
||
|
className: "meta",
|
||
|
begin: "@\\[",
|
||
|
end: "\\]",
|
||
|
contains: [
|
||
|
hljs.inherit(hljs.QUOTE_STRING_MODE, {
|
||
|
className: "meta-string"
|
||
|
})
|
||
|
]
|
||
|
};
|
||
|
const CRYSTAL_DEFAULT_CONTAINS = [
|
||
|
EXPANSION,
|
||
|
STRING,
|
||
|
Q_STRING,
|
||
|
REGEXP2,
|
||
|
REGEXP,
|
||
|
ATTRIBUTE,
|
||
|
hljs.HASH_COMMENT_MODE,
|
||
|
{
|
||
|
className: "class",
|
||
|
beginKeywords: "class module struct",
|
||
|
end: "$|;",
|
||
|
illegal: /=/,
|
||
|
contains: [
|
||
|
hljs.HASH_COMMENT_MODE,
|
||
|
hljs.inherit(hljs.TITLE_MODE, {
|
||
|
begin: CRYSTAL_PATH_RE
|
||
|
}),
|
||
|
{
|
||
|
// relevance booster for inheritance
|
||
|
begin: "<"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
className: "class",
|
||
|
beginKeywords: "lib enum union",
|
||
|
end: "$|;",
|
||
|
illegal: /=/,
|
||
|
contains: [
|
||
|
hljs.HASH_COMMENT_MODE,
|
||
|
hljs.inherit(hljs.TITLE_MODE, {
|
||
|
begin: CRYSTAL_PATH_RE
|
||
|
})
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
beginKeywords: "annotation",
|
||
|
end: "$|;",
|
||
|
illegal: /=/,
|
||
|
contains: [
|
||
|
hljs.HASH_COMMENT_MODE,
|
||
|
hljs.inherit(hljs.TITLE_MODE, {
|
||
|
begin: CRYSTAL_PATH_RE
|
||
|
})
|
||
|
],
|
||
|
relevance: 2
|
||
|
},
|
||
|
{
|
||
|
className: "function",
|
||
|
beginKeywords: "def",
|
||
|
end: /\B\b/,
|
||
|
contains: [
|
||
|
hljs.inherit(hljs.TITLE_MODE, {
|
||
|
begin: CRYSTAL_METHOD_RE,
|
||
|
endsParent: true
|
||
|
})
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
className: "function",
|
||
|
beginKeywords: "fun macro",
|
||
|
end: /\B\b/,
|
||
|
contains: [
|
||
|
hljs.inherit(hljs.TITLE_MODE, {
|
||
|
begin: CRYSTAL_METHOD_RE,
|
||
|
endsParent: true
|
||
|
})
|
||
|
],
|
||
|
relevance: 2
|
||
|
},
|
||
|
{
|
||
|
className: "symbol",
|
||
|
begin: hljs.UNDERSCORE_IDENT_RE + "(!|\\?)?:",
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
className: "symbol",
|
||
|
begin: ":",
|
||
|
contains: [
|
||
|
STRING,
|
||
|
{
|
||
|
begin: CRYSTAL_METHOD_RE
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
className: "number",
|
||
|
variants: [
|
||
|
{
|
||
|
begin: "\\b0b([01_]+)" + INT_SUFFIX
|
||
|
},
|
||
|
{
|
||
|
begin: "\\b0o([0-7_]+)" + INT_SUFFIX
|
||
|
},
|
||
|
{
|
||
|
begin: "\\b0x([A-Fa-f0-9_]+)" + INT_SUFFIX
|
||
|
},
|
||
|
{
|
||
|
begin: "\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?" + FLOAT_SUFFIX + "(?!_)"
|
||
|
},
|
||
|
{
|
||
|
begin: "\\b([1-9][0-9_]*|0)" + INT_SUFFIX
|
||
|
}
|
||
|
],
|
||
|
relevance: 0
|
||
|
}
|
||
|
];
|
||
|
SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
|
||
|
EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1);
|
||
|
return {
|
||
|
name: "Crystal",
|
||
|
aliases: ["cr"],
|
||
|
keywords: CRYSTAL_KEYWORDS,
|
||
|
contains: CRYSTAL_DEFAULT_CONTAINS
|
||
|
};
|
||
|
}
|
||
|
module.exports = crystal;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
export {
|
||
|
require_crystal
|
||
|
};
|
||
|
//# sourceMappingURL=chunk-VD57ROZU.js.map
|