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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
!(function (e) {
function t(e, s) {
return s <= 0
? '[]'
: e.replace(/<SELF>/g, function () {
return t(e, s - 1);
});
}
var s = /'[{}:=,](?:[^']|'')*'(?!')/,
n = { pattern: /''/, greedy: !0, alias: 'operator' },
r = { pattern: s, greedy: !0, inside: { escape: n } },
a = t(
"\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}".replace(
/<STR>/g,
function () {
return s.source;
}
),
8
),
i = {
pattern: RegExp(a),
inside: {
message: {
pattern: /^(\{)[\s\S]+(?=\}$)/,
lookbehind: !0,
inside: null,
},
'message-delimiter': { pattern: /./, alias: 'punctuation' },
},
};
(e.languages['icu-message-format'] = {
argument: {
pattern: RegExp(a),
greedy: !0,
inside: {
content: {
pattern: /^(\{)[\s\S]+(?=\}$)/,
lookbehind: !0,
inside: {
'argument-name': { pattern: /^(\s*)[^{}:=,\s]+/, lookbehind: !0 },
'choice-style': {
pattern: /^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,
lookbehind: !0,
inside: {
punctuation: /\|/,
range: {
pattern: /^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,
lookbehind: !0,
inside: { operator: /[<#\u2264]/, number: /\S+/ },
},
rest: null,
},
},
'plural-style': {
pattern:
/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,
lookbehind: !0,
inside: {
offset: /^offset:\s*\d+/,
'nested-message': i,
selector: {
pattern: /=\d+|[^{}:=,\s]+/,
inside: { keyword: /^(?:few|many|one|other|two|zero)$/ },
},
},
},
'select-style': {
pattern: /^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,
lookbehind: !0,
inside: {
'nested-message': i,
selector: {
pattern: /[^{}:=,\s]+/,
inside: { keyword: /^other$/ },
},
},
},
keyword: /\b(?:choice|plural|select|selectordinal)\b/,
'arg-type': {
pattern: /\b(?:date|duration|number|ordinal|spellout|time)\b/,
alias: 'keyword',
},
'arg-skeleton': { pattern: /(,\s*)::[^{}:=,\s]+/, lookbehind: !0 },
'arg-style': {
pattern:
/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,
lookbehind: !0,
},
'arg-style-text': {
pattern: RegExp(
'(^\\s*,\\s*(?=\\S))' +
t("(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+", 8) +
'$'
),
lookbehind: !0,
alias: 'string',
},
punctuation: /,/,
},
},
'argument-delimiter': { pattern: /./, alias: 'operator' },
},
},
escape: n,
string: r,
}),
(i.inside.message.inside = e.languages['icu-message-format']),
(e.languages['icu-message-format'].argument.inside.content.inside[
'choice-style'
].inside.rest = e.languages['icu-message-format']);
})(Prism);
|