prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
64 lines (63 loc) • 2.25 kB
JavaScript
import { l as languages } from "../../index-DF54SWhA.js";
import { a as replace, r as re } from "../../shared-Sq5P6lf6.js";
var spaceAfterBackSlash = "\\\\\n(?:\\s|\\\\\n|#.*(?!.))*(?![\\s#]|\\\\\n)";
var space = replace("(?:[ ]+(?![ ])<0>?|<0>)", [spaceAfterBackSlash]);
var string = /"(?:\\[^]|[^\\\n"])*"|'(?:\\[^]|[^\\\n'])*'/g;
var stringSrc = string.source;
var option = replace(`--[\\w-]+=(?:<0>|(?!["'])(?:\\\\.|[^\\\\\\s])+)`, [stringSrc]);
var stringRule = string;
var commentRule = {
pattern: /(^[ ]*)#.*/mg,
lookbehind: true
};
languages.dockerfile = languages.docker = {
"instruction": {
pattern: /(^[ ]*)(?:add|arg|cmd|copy|entrypoint|env|expose|from|healthcheck|label|maintainer|onbuild|run|shell|stopsignal|user|volume|workdir)(?=\s)(?:\\.|[^\\\n])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\\\n])*)*/img,
lookbehind: true,
inside: {
"options": {
pattern: re("(^(?:onbuild<0>)?\\w+<0>)<1>(?:<0><1>)*", [space, option], "gi"),
lookbehind: true,
inside: {
"property": {
pattern: /(^|\s)--[\w-]+/,
lookbehind: true
},
"string": [
stringRule,
{
pattern: /(=)(?!["'])(?:\\.|[^\\\s])+/,
lookbehind: true
}
],
"operator": /\\$/m,
"punctuation": /=/
}
},
"keyword": [
{
// https://docs.docker.com/engine/reference/builder/#healthcheck
pattern: re("(^(?:onbuild<0>)?healthcheck<0>(?:<1><0>)*)(?:cmd|none)\\b", [space, option], "gi"),
lookbehind: true
},
{
// https://docs.docker.com/engine/reference/builder/#from
pattern: re("(^(?:onbuild<0>)?from<0>(?:<1><0>)*(?!--)[^\\\\ ]+<0>)as", [space, option], "gi"),
lookbehind: true
},
{
// https://docs.docker.com/engine/reference/builder/#onbuild
pattern: re("(^onbuild<0>)\\w+", [space], "gi"),
lookbehind: true
},
/^\w+/g
],
"comment": commentRule,
"string": stringRule,
"variable": /\$(?:\w+|\{[^\\{}"']*\})/,
"operator": /\\$/m
}
},
"comment": commentRule
};
//# sourceMappingURL=docker.js.map