1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
!(function (e) {
e.languages.puppet = {
heredoc: [
{
pattern:
/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,
lookbehind: !0,
alias: 'string',
inside: { punctuation: /(?=\S).*\S(?= *$)/ },
},
{
pattern:
/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,
lookbehind: !0,
greedy: !0,
alias: 'string',
inside: { punctuation: /(?=\S).*\S(?= *$)/ },
},
{
pattern: /@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,
alias: 'string',
inside: { punctuation: { pattern: /(\().+?(?=\))/, lookbehind: !0 } },
},
],
'multiline-comment': {
pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
lookbehind: !0,
greedy: !0,
alias: 'comment',
},
regex: {
pattern:
/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,
lookbehind: !0,
greedy: !0,
inside: {
'extended-regex': {
pattern: /^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,
inside: { comment: /#.*/ },
},
},
},
comment: { pattern: /(^|[^\\])#.*/, lookbehind: !0, greedy: !0 },
string: {
pattern:
/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,
greedy: !0,
inside: { 'double-quoted': { pattern: /^"[\s\S]*"$/, inside: {} } },
},
variable: {
pattern: /\$(?:::)?\w+(?:::\w+)*/,
inside: { punctuation: /::/ },
},
'attr-name': /(?:\b\w+|\*)(?=\s*=>)/,
function: [
{ pattern: /(\.)(?!\d)\w+/, lookbehind: !0 },
/\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: /\b(?:false|true)\b/,
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: /[\[\]{}().,;]|:+/,
};
var n = [
{
pattern:
/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,
lookbehind: !0,
inside: {
'short-variable': {
pattern: /(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,
lookbehind: !0,
alias: 'variable',
inside: { punctuation: /::/ },
},
delimiter: { pattern: /^\$/, alias: 'variable' },
rest: e.languages.puppet,
},
},
{
pattern: /(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,
lookbehind: !0,
alias: 'variable',
inside: { punctuation: /::/ },
},
];
(e.languages.puppet.heredoc[0].inside.interpolation = n),
(e.languages.puppet.string.inside['double-quoted'].inside.interpolation =
n);
})(Prism);
|