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 (a) {
function e(a, e) {
return RegExp(
a.replace(/<ID>/g, function () {
return '(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*';
}),
e
);
}
a.languages.insertBefore('javascript', 'function-variable', {
'method-variable': {
pattern: RegExp(
'(\\.\\s*)' + a.languages.javascript['function-variable'].pattern.source
),
lookbehind: !0,
alias: ['function-variable', 'method', 'function', 'property-access'],
},
}),
a.languages.insertBefore('javascript', 'function', {
method: {
pattern: RegExp('(\\.\\s*)' + a.languages.javascript.function.source),
lookbehind: !0,
alias: ['function', 'property-access'],
},
}),
a.languages.insertBefore('javascript', 'constant', {
'known-class-name': [
{
pattern:
/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,
alias: 'class-name',
},
{ pattern: /\b(?:[A-Z]\w*)Error\b/, alias: 'class-name' },
],
}),
a.languages.insertBefore('javascript', 'keyword', {
imports: {
pattern: e(
'(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)'
),
lookbehind: !0,
inside: a.languages.javascript,
},
exports: {
pattern: e(
'(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})'
),
lookbehind: !0,
inside: a.languages.javascript,
},
}),
a.languages.javascript.keyword.unshift(
{ pattern: /\b(?:as|default|export|from|import)\b/, alias: 'module' },
{
pattern:
/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,
alias: 'control-flow',
},
{ pattern: /\bnull\b/, alias: ['null', 'nil'] },
{ pattern: /\bundefined\b/, alias: 'nil' }
),
a.languages.insertBefore('javascript', 'operator', {
spread: { pattern: /\.{3}/, alias: 'operator' },
arrow: { pattern: /=>/, alias: 'operator' },
}),
a.languages.insertBefore('javascript', 'punctuation', {
'property-access': { pattern: e('(\\.\\s*)#?<ID>'), lookbehind: !0 },
'maybe-class-name': {
pattern: /(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,
lookbehind: !0,
},
dom: {
pattern:
/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,
alias: 'variable',
},
console: { pattern: /\bconsole(?=\s*\.)/, alias: 'class-name' },
});
for (
var t = [
'function',
'function-variable',
'method',
'method-variable',
'property-access',
],
r = 0;
r < t.length;
r++
) {
var n = t[r],
s = a.languages.javascript[n];
'RegExp' === a.util.type(s) &&
(s = a.languages.javascript[n] = { pattern: s });
var o = s.inside || {};
(s.inside = o), (o['maybe-class-name'] = /^[A-Z][\s\S]*/);
}
})(Prism);
|