prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
89 lines (88 loc) • 2.83 kB
JavaScript
import { a as languages, s as rest } from "../../core-8vQkh0Rd.js";
import { t as boolean } from "../../patterns-C0vJBvXO.js";
//#region src/prism/languages/puppet.js
var interpolation = [{
pattern: /(^|[^\\])\$\{(?:[^{}"']|\{[^}]*\}|(["'])(?:\\[^]|(?!\2)[^\\])*\2)+\}/,
lookbehind: true,
inside: {
"short-variable": {
pattern: /(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,
lookbehind: true,
alias: "variable",
inside: { "punctuation": /::/ }
},
"delimiter": {
pattern: /^\$/,
alias: "variable"
}
}
}, {
pattern: /(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,
lookbehind: true,
alias: "variable",
inside: { "punctuation": /::/ }
}];
interpolation[0].inside[rest] = languages.puppet = {
"heredoc": [
{
pattern: /(@\("([^\n"/):]+)"(?:\/[nrts$uL]*)?\).*\n)(?:.*\n)*?[ ]*(?:\|[ ]*)?(?:-[ ]*)?\2/,
lookbehind: true,
alias: "string",
inside: {
"punctuation": /(?!\s).*\S(?= *$)/,
"interpolation": interpolation
}
},
{
pattern: /(@\(([^\n"/):]+)(?:\/[nrts$uL]*)?\).*\n)(?:.*\n)*?[ ]*(?:\|[ ]*)?(?:-[ ]*)?\2/g,
lookbehind: true,
alias: "string",
inside: { "punctuation": /(?!\s).*\S(?= *$)/ }
},
{
pattern: /@\("?(?:[^\n"/):]+)"?(?:\/[nrts$uL]*)?\)/,
alias: "string",
inside: { "punctuation": /(?![(@]).+(?=.)/ }
}
],
"multiline-comment": {
pattern: /\/\*[^]*?\*\//g,
alias: "comment"
},
"regex": {
pattern: /(\bnode\s+|[~=([{,]\s*|[=+]>\s*|^\s*)\/(?:\\[^]|[^\\/])+\/(?:[imx]+\b|\B)/g,
lookbehind: true,
inside: { "extended-regex": {
pattern: /^\/(?:\\[^]|[^\\/])+\/[im]*x[im]*$/,
inside: { "comment": /#.*/ }
} }
},
"comment": /#.*/g,
"string": {
pattern: /(["'])(?:\$\{(?:[^}"']|(["'])(?:\\[^]|(?!\2)[^\\])*\2)+\}|\$(?!\{)|\\[^]|(?!\1)[^\\$])*\1/g,
inside: { "double-quoted": {
pattern: /^"[^]*"$/,
inside: { "interpolation": interpolation }
} }
},
"variable": {
pattern: /\$(?:::)?\w+(?:::\w+)*/,
inside: { "punctuation": /::/ }
},
"attr-name": /(?:\b\w+|\*)(?=\s*=>)/,
"function": [{
pattern: /(\.)(?!\d)\w+/,
lookbehind: true
}, /\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],
"number": /\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,
"boolean": boolean,
"keyword": /\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,
"datatype": {
pattern: /\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,
alias: "symbol"
},
"operator": /=[=~>]?|![=~]?|<<\|?|<[=~|-]?|>[>=]?|->?|~>|\|>?>?|[%/*+?]|\b(?:and|in|or)\b/,
"punctuation": /[()[\]{}.,;]|:+/
};
//#endregion
//# sourceMappingURL=puppet.js.map