@riverflowpkg/riverflow 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -0
- package/bar/bar.js +90 -0
- package/bar/theCodes.html +144 -0
- package/editor/editor.js +312 -0
- package/editor/highlight.min.js +2441 -0
- package/editor/terminal.js +309 -0
- package/effects/typing.js +105 -0
- package/effects/underwater.js +117 -0
- package/package.json +32 -0
- package/scroll/scroll.css +91 -0
- package/scroll/scroll.js +244 -0
|
@@ -0,0 +1,2441 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
Highlight.js v11.9.0 (git: f47103d4f1)
|
|
3
|
+
(c) 2006-2023 undefined and other contributors
|
|
4
|
+
License: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
var hljs = function () {
|
|
7
|
+
"use strict"; function e(n) {
|
|
8
|
+
return n instanceof Map ? n.clear = n.delete = n.set = () => {
|
|
9
|
+
throw Error("map is read-only")
|
|
10
|
+
} : n instanceof Set && (n.add = n.clear = n.delete = () => {
|
|
11
|
+
throw Error("set is read-only")
|
|
12
|
+
}), Object.freeze(n), Object.getOwnPropertyNames(n).forEach((t => {
|
|
13
|
+
const a = n[t], i = typeof a; "object" !== i && "function" !== i || Object.isFrozen(a) || e(a)
|
|
14
|
+
})), n
|
|
15
|
+
} class n {
|
|
16
|
+
constructor(e) {
|
|
17
|
+
void 0 === e.data && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1
|
|
18
|
+
}
|
|
19
|
+
ignoreMatch() { this.isMatchIgnored = !0 }
|
|
20
|
+
} function t(e) {
|
|
21
|
+
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'")
|
|
22
|
+
} function a(e, ...n) {
|
|
23
|
+
const t = Object.create(null); for (const n in e) t[n] = e[n]
|
|
24
|
+
; return n.forEach((e => { for (const n in e) t[n] = e[n] })), t
|
|
25
|
+
} const i = e => !!e.scope
|
|
26
|
+
; class r {
|
|
27
|
+
constructor(e, n) {
|
|
28
|
+
this.buffer = "", this.classPrefix = n.classPrefix, e.walk(this)
|
|
29
|
+
} addText(e) {
|
|
30
|
+
this.buffer += t(e)
|
|
31
|
+
} openNode(e) {
|
|
32
|
+
if (!i(e)) return; const n = ((e, { prefix: n }) => {
|
|
33
|
+
if (e.startsWith("language:")) return e.replace("language:", "language-")
|
|
34
|
+
; if (e.includes(".")) {
|
|
35
|
+
const t = e.split(".")
|
|
36
|
+
; return [`${n}${t.shift()}`, ...t.map(((e, n) => `${e}${"_".repeat(n + 1)}`))].join(" ")
|
|
37
|
+
} return `${n}${e}`
|
|
38
|
+
})(e.scope, { prefix: this.classPrefix }); this.span(n)
|
|
39
|
+
}
|
|
40
|
+
closeNode(e) { i(e) && (this.buffer += "</span>") } value() { return this.buffer } span(e) {
|
|
41
|
+
this.buffer += `<span class="${e}">`
|
|
42
|
+
}
|
|
43
|
+
} const s = (e = {}) => {
|
|
44
|
+
const n = { children: [] }
|
|
45
|
+
; return Object.assign(n, e), n
|
|
46
|
+
}; class o {
|
|
47
|
+
constructor() {
|
|
48
|
+
this.rootNode = s(), this.stack = [this.rootNode]
|
|
49
|
+
} get top() {
|
|
50
|
+
return this.stack[this.stack.length - 1]
|
|
51
|
+
} get root() { return this.rootNode } add(e) {
|
|
52
|
+
this.top.children.push(e)
|
|
53
|
+
} openNode(e) {
|
|
54
|
+
const n = s({ scope: e })
|
|
55
|
+
; this.add(n), this.stack.push(n)
|
|
56
|
+
} closeNode() {
|
|
57
|
+
if (this.stack.length > 1) return this.stack.pop()
|
|
58
|
+
} closeAllNodes() {
|
|
59
|
+
for (; this.closeNode(););
|
|
60
|
+
} toJSON() { return JSON.stringify(this.rootNode, null, 4) }
|
|
61
|
+
walk(e) { return this.constructor._walk(e, this.rootNode) } static _walk(e, n) {
|
|
62
|
+
return "string" == typeof n ? e.addText(n) : n.children && (e.openNode(n),
|
|
63
|
+
n.children.forEach((n => this._walk(e, n))), e.closeNode(n)), e
|
|
64
|
+
} static _collapse(e) {
|
|
65
|
+
"string" != typeof e && e.children && (e.children.every((e => "string" == typeof e)) ? e.children = [e.children.join("")] : e.children.forEach((e => {
|
|
66
|
+
o._collapse(e)
|
|
67
|
+
})))
|
|
68
|
+
}
|
|
69
|
+
} class l extends o {
|
|
70
|
+
constructor(e) { super(), this.options = e }
|
|
71
|
+
addText(e) { "" !== e && this.add(e) } startScope(e) { this.openNode(e) } endScope() {
|
|
72
|
+
this.closeNode()
|
|
73
|
+
} __addSublanguage(e, n) {
|
|
74
|
+
const t = e.root
|
|
75
|
+
; n && (t.scope = "language:" + n), this.add(t)
|
|
76
|
+
} toHTML() {
|
|
77
|
+
return new r(this, this.options).value()
|
|
78
|
+
} finalize() {
|
|
79
|
+
return this.closeAllNodes(), !0
|
|
80
|
+
}
|
|
81
|
+
} function c(e) {
|
|
82
|
+
return e ? "string" == typeof e ? e : e.source : null
|
|
83
|
+
} function d(e) { return b("(?=", e, ")") }
|
|
84
|
+
function g(e) { return b("(?:", e, ")*") } function u(e) { return b("(?:", e, ")?") }
|
|
85
|
+
function b(...e) { return e.map((e => c(e))).join("") } function m(...e) {
|
|
86
|
+
const n = (e => {
|
|
87
|
+
const n = e[e.length - 1]
|
|
88
|
+
; return "object" == typeof n && n.constructor === Object ? (e.splice(e.length - 1, 1), n) : {}
|
|
89
|
+
})(e); return "(" + (n.capture ? "" : "?:") + e.map((e => c(e))).join("|") + ")"
|
|
90
|
+
}
|
|
91
|
+
function p(e) { return RegExp(e.toString() + "|").exec("").length - 1 }
|
|
92
|
+
const _ = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
|
|
93
|
+
; function h(e, { joinWith: n }) {
|
|
94
|
+
let t = 0; return e.map((e => {
|
|
95
|
+
t += 1; const n = t
|
|
96
|
+
; let a = c(e), i = ""; for (; a.length > 0;) {
|
|
97
|
+
const e = _.exec(a); if (!e) { i += a; break }
|
|
98
|
+
i += a.substring(0, e.index),
|
|
99
|
+
a = a.substring(e.index + e[0].length), "\\" === e[0][0] && e[1] ? i += "\\" + (Number(e[1]) + n) : (i += e[0],
|
|
100
|
+
"(" === e[0] && t++)
|
|
101
|
+
} return i
|
|
102
|
+
})).map((e => `(${e})`)).join(n)
|
|
103
|
+
}
|
|
104
|
+
const f = "[a-zA-Z]\\w*", E = "[a-zA-Z_]\\w*", y = "\\b\\d+(\\.\\d+)?", N = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", w = "\\b(0b[01]+)", v = {
|
|
105
|
+
begin: "\\\\[\\s\\S]", relevance: 0
|
|
106
|
+
}, O = {
|
|
107
|
+
scope: "string", begin: "'", end: "'",
|
|
108
|
+
illegal: "\\n", contains: [v]
|
|
109
|
+
}, k = {
|
|
110
|
+
scope: "string", begin: '"', end: '"', illegal: "\\n",
|
|
111
|
+
contains: [v]
|
|
112
|
+
}, x = (e, n, t = {}) => {
|
|
113
|
+
const i = a({
|
|
114
|
+
scope: "comment", begin: e, end: n,
|
|
115
|
+
contains: []
|
|
116
|
+
}, t); i.contains.push({
|
|
117
|
+
scope: "doctag",
|
|
118
|
+
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
|
|
119
|
+
end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, excludeBegin: !0, relevance: 0
|
|
120
|
+
})
|
|
121
|
+
; const r = m("I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, /[A-Za-z]+[-][a-z]+/, /[A-Za-z][a-z]{2,}/)
|
|
122
|
+
; return i.contains.push({ begin: b(/[ ]+/, "(", r, /[.]?[:]?([.][ ]|[ ])/, "){3}") }), i
|
|
123
|
+
}, M = x("//", "$"), S = x("/\\*", "\\*/"), A = x("#", "$"); var C = Object.freeze({
|
|
124
|
+
__proto__: null, APOS_STRING_MODE: O, BACKSLASH_ESCAPE: v, BINARY_NUMBER_MODE: {
|
|
125
|
+
scope: "number", begin: w, relevance: 0
|
|
126
|
+
}, BINARY_NUMBER_RE: w, COMMENT: x,
|
|
127
|
+
C_BLOCK_COMMENT_MODE: S, C_LINE_COMMENT_MODE: M, C_NUMBER_MODE: {
|
|
128
|
+
scope: "number",
|
|
129
|
+
begin: N, relevance: 0
|
|
130
|
+
}, C_NUMBER_RE: N, END_SAME_AS_BEGIN: e => Object.assign(e, {
|
|
131
|
+
"on:begin": (e, n) => { n.data._beginMatch = e[1] }, "on:end": (e, n) => {
|
|
132
|
+
n.data._beginMatch !== e[1] && n.ignoreMatch()
|
|
133
|
+
}
|
|
134
|
+
}), HASH_COMMENT_MODE: A, IDENT_RE: f,
|
|
135
|
+
MATCH_NOTHING_RE: /\b\B/, METHOD_GUARD: { begin: "\\.\\s*" + E, relevance: 0 },
|
|
136
|
+
NUMBER_MODE: { scope: "number", begin: y, relevance: 0 }, NUMBER_RE: y,
|
|
137
|
+
PHRASAL_WORDS_MODE: {
|
|
138
|
+
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
|
|
139
|
+
}, QUOTE_STRING_MODE: k, REGEXP_MODE: {
|
|
140
|
+
scope: "regexp", begin: /\/(?=[^/\n]*\/)/,
|
|
141
|
+
end: /\/[gimuy]*/, contains: [v, { begin: /\[/, end: /\]/, relevance: 0, contains: [v] }]
|
|
142
|
+
},
|
|
143
|
+
RE_STARTERS_RE: "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
|
|
144
|
+
SHEBANG: (e = {}) => {
|
|
145
|
+
const n = /^#![ ]*\//
|
|
146
|
+
; return e.binary && (e.begin = b(n, /.*\b/, e.binary, /\b.*/)), a({
|
|
147
|
+
scope: "meta", begin: n,
|
|
148
|
+
end: /$/, relevance: 0, "on:begin": (e, n) => { 0 !== e.index && n.ignoreMatch() }
|
|
149
|
+
}, e)
|
|
150
|
+
},
|
|
151
|
+
TITLE_MODE: { scope: "title", begin: f, relevance: 0 }, UNDERSCORE_IDENT_RE: E,
|
|
152
|
+
UNDERSCORE_TITLE_MODE: { scope: "title", begin: E, relevance: 0 }
|
|
153
|
+
}); function T(e, n) {
|
|
154
|
+
"." === e.input[e.index - 1] && n.ignoreMatch()
|
|
155
|
+
} function R(e, n) {
|
|
156
|
+
void 0 !== e.className && (e.scope = e.className, delete e.className)
|
|
157
|
+
} function D(e, n) {
|
|
158
|
+
n && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)",
|
|
159
|
+
e.__beforeBegin = T, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords,
|
|
160
|
+
void 0 === e.relevance && (e.relevance = 0))
|
|
161
|
+
} function I(e, n) {
|
|
162
|
+
Array.isArray(e.illegal) && (e.illegal = m(...e.illegal))
|
|
163
|
+
} function L(e, n) {
|
|
164
|
+
if (e.match) {
|
|
165
|
+
if (e.begin || e.end) throw Error("begin & end are not supported with match")
|
|
166
|
+
; e.begin = e.match, delete e.match
|
|
167
|
+
}
|
|
168
|
+
} function B(e, n) {
|
|
169
|
+
void 0 === e.relevance && (e.relevance = 1)
|
|
170
|
+
} const $ = (e, n) => {
|
|
171
|
+
if (!e.beforeMatch) return
|
|
172
|
+
; if (e.starts) throw Error("beforeMatch cannot be used with starts")
|
|
173
|
+
; const t = Object.assign({}, e); Object.keys(e).forEach((n => {
|
|
174
|
+
delete e[n]
|
|
175
|
+
})), e.keywords = t.keywords, e.begin = b(t.beforeMatch, d(t.begin)), e.starts = {
|
|
176
|
+
relevance: 0, contains: [Object.assign(t, { endsParent: !0 })]
|
|
177
|
+
}, e.relevance = 0, delete t.beforeMatch
|
|
178
|
+
}, z = ["of", "and", "for", "in", "not", "or", "if", "then", "parent", "list", "value"], F = "keyword"
|
|
179
|
+
; function U(e, n, t = F) {
|
|
180
|
+
const a = Object.create(null)
|
|
181
|
+
; return "string" == typeof e ? i(t, e.split(" ")) : Array.isArray(e) ? i(t, e) : Object.keys(e).forEach((t => {
|
|
182
|
+
Object.assign(a, U(e[t], n, t))
|
|
183
|
+
})), a; function i(e, t) {
|
|
184
|
+
n && (t = t.map((e => e.toLowerCase()))), t.forEach((n => {
|
|
185
|
+
const t = n.split("|")
|
|
186
|
+
; a[t[0]] = [e, j(t[0], t[1])]
|
|
187
|
+
}))
|
|
188
|
+
}
|
|
189
|
+
} function j(e, n) {
|
|
190
|
+
return n ? Number(n) : (e => z.includes(e.toLowerCase()))(e) ? 0 : 1
|
|
191
|
+
} const P = {}, K = e => {
|
|
192
|
+
console.error(e)
|
|
193
|
+
}, H = (e, ...n) => { console.log("WARN: " + e, ...n) }, q = (e, n) => {
|
|
194
|
+
P[`${e}/${n}`] || (console.log(`Deprecated as of ${e}. ${n}`), P[`${e}/${n}`] = !0)
|
|
195
|
+
}, G = Error(); function Z(e, n, { key: t }) {
|
|
196
|
+
let a = 0; const i = e[t], r = {}, s = {}
|
|
197
|
+
; for (let e = 1; e <= n.length; e++)s[e + a] = i[e], r[e + a] = !0, a += p(n[e - 1])
|
|
198
|
+
; e[t] = s, e[t]._emit = r, e[t]._multi = !0
|
|
199
|
+
} function W(e) {
|
|
200
|
+
(e => {
|
|
201
|
+
e.scope && "object" == typeof e.scope && null !== e.scope && (e.beginScope = e.scope,
|
|
202
|
+
delete e.scope)
|
|
203
|
+
})(e), "string" == typeof e.beginScope && (e.beginScope = {
|
|
204
|
+
_wrap: e.beginScope
|
|
205
|
+
}), "string" == typeof e.endScope && (e.endScope = {
|
|
206
|
+
_wrap: e.endScope
|
|
207
|
+
}), (e => {
|
|
208
|
+
if (Array.isArray(e.begin)) {
|
|
209
|
+
if (e.skip || e.excludeBegin || e.returnBegin) throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
|
|
210
|
+
G
|
|
211
|
+
; if ("object" != typeof e.beginScope || null === e.beginScope) throw K("beginScope must be object"),
|
|
212
|
+
G; Z(e, e.begin, { key: "beginScope" }), e.begin = h(e.begin, { joinWith: "" })
|
|
213
|
+
}
|
|
214
|
+
})(e), (e => {
|
|
215
|
+
if (Array.isArray(e.end)) {
|
|
216
|
+
if (e.skip || e.excludeEnd || e.returnEnd) throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
|
|
217
|
+
G
|
|
218
|
+
; if ("object" != typeof e.endScope || null === e.endScope) throw K("endScope must be object"),
|
|
219
|
+
G; Z(e, e.end, { key: "endScope" }), e.end = h(e.end, { joinWith: "" })
|
|
220
|
+
}
|
|
221
|
+
})(e)
|
|
222
|
+
} function Q(e) {
|
|
223
|
+
function n(n, t) {
|
|
224
|
+
return RegExp(c(n), "m" + (e.case_insensitive ? "i" : "") + (e.unicodeRegex ? "u" : "") + (t ? "g" : ""))
|
|
225
|
+
} class t {
|
|
226
|
+
constructor() {
|
|
227
|
+
this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0
|
|
228
|
+
}
|
|
229
|
+
addRule(e, n) {
|
|
230
|
+
n.position = this.position++, this.matchIndexes[this.matchAt] = n, this.regexes.push([n, e]),
|
|
231
|
+
this.matchAt += p(e) + 1
|
|
232
|
+
} compile() {
|
|
233
|
+
0 === this.regexes.length && (this.exec = () => null)
|
|
234
|
+
; const e = this.regexes.map((e => e[1])); this.matcherRe = n(h(e, {
|
|
235
|
+
joinWith: "|"
|
|
236
|
+
}), !0), this.lastIndex = 0
|
|
237
|
+
} exec(e) {
|
|
238
|
+
this.matcherRe.lastIndex = this.lastIndex
|
|
239
|
+
; const n = this.matcherRe.exec(e); if (!n) return null
|
|
240
|
+
; const t = n.findIndex(((e, n) => n > 0 && void 0 !== e)), a = this.matchIndexes[t]
|
|
241
|
+
; return n.splice(0, t), Object.assign(n, a)
|
|
242
|
+
}
|
|
243
|
+
} class i {
|
|
244
|
+
constructor() {
|
|
245
|
+
this.rules = [], this.multiRegexes = [],
|
|
246
|
+
this.count = 0, this.lastIndex = 0, this.regexIndex = 0
|
|
247
|
+
} getMatcher(e) {
|
|
248
|
+
if (this.multiRegexes[e]) return this.multiRegexes[e]; const n = new t
|
|
249
|
+
; return this.rules.slice(e).forEach((([e, t]) => n.addRule(e, t))),
|
|
250
|
+
n.compile(), this.multiRegexes[e] = n, n
|
|
251
|
+
} resumingScanAtSamePosition() {
|
|
252
|
+
return 0 !== this.regexIndex
|
|
253
|
+
} considerAll() { this.regexIndex = 0 } addRule(e, n) {
|
|
254
|
+
this.rules.push([e, n]), "begin" === n.type && this.count++
|
|
255
|
+
} exec(e) {
|
|
256
|
+
const n = this.getMatcher(this.regexIndex); n.lastIndex = this.lastIndex
|
|
257
|
+
; let t = n.exec(e)
|
|
258
|
+
; if (this.resumingScanAtSamePosition()) if (t && t.index === this.lastIndex); else {
|
|
259
|
+
const n = this.getMatcher(0); n.lastIndex = this.lastIndex + 1, t = n.exec(e)
|
|
260
|
+
}
|
|
261
|
+
return t && (this.regexIndex += t.position + 1,
|
|
262
|
+
this.regexIndex === this.count && this.considerAll()), t
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (e.compilerExtensions || (e.compilerExtensions = []),
|
|
266
|
+
e.contains && e.contains.includes("self")) throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")
|
|
267
|
+
; return e.classNameAliases = a(e.classNameAliases || {}), function t(r, s) {
|
|
268
|
+
const o = r
|
|
269
|
+
; if (r.isCompiled) return o
|
|
270
|
+
;[R, L, W, $].forEach((e => e(r, s))), e.compilerExtensions.forEach((e => e(r, s))),
|
|
271
|
+
r.__beforeBegin = null, [D, I, B].forEach((e => e(r, s))), r.isCompiled = !0; let l = null
|
|
272
|
+
; return "object" == typeof r.keywords && r.keywords.$pattern && (r.keywords = Object.assign({}, r.keywords),
|
|
273
|
+
l = r.keywords.$pattern,
|
|
274
|
+
delete r.keywords.$pattern), l = l || /\w+/, r.keywords && (r.keywords = U(r.keywords, e.case_insensitive)),
|
|
275
|
+
o.keywordPatternRe = n(l, !0),
|
|
276
|
+
s && (r.begin || (r.begin = /\B|\b/), o.beginRe = n(o.begin), r.end || r.endsWithParent || (r.end = /\B|\b/),
|
|
277
|
+
r.end && (o.endRe = n(o.end)),
|
|
278
|
+
o.terminatorEnd = c(o.end) || "", r.endsWithParent && s.terminatorEnd && (o.terminatorEnd += (r.end ? "|" : "") + s.terminatorEnd)),
|
|
279
|
+
r.illegal && (o.illegalRe = n(r.illegal)),
|
|
280
|
+
r.contains || (r.contains = []), r.contains = [].concat(...r.contains.map((e => (e => (e.variants && !e.cachedVariants && (e.cachedVariants = e.variants.map((n => a(e, {
|
|
281
|
+
variants: null
|
|
282
|
+
}, n)))), e.cachedVariants ? e.cachedVariants : X(e) ? a(e, {
|
|
283
|
+
starts: e.starts ? a(e.starts) : null
|
|
284
|
+
}) : Object.isFrozen(e) ? a(e) : e))("self" === e ? r : e)))), r.contains.forEach((e => {
|
|
285
|
+
t(e, o)
|
|
286
|
+
})), r.starts && t(r.starts, s), o.matcher = (e => {
|
|
287
|
+
const n = new i
|
|
288
|
+
; return e.contains.forEach((e => n.addRule(e.begin, {
|
|
289
|
+
rule: e, type: "begin"
|
|
290
|
+
}))), e.terminatorEnd && n.addRule(e.terminatorEnd, {
|
|
291
|
+
type: "end"
|
|
292
|
+
}), e.illegal && n.addRule(e.illegal, { type: "illegal" }), n
|
|
293
|
+
})(o), o
|
|
294
|
+
}(e)
|
|
295
|
+
} function X(e) {
|
|
296
|
+
return !!e && (e.endsWithParent || X(e.starts))
|
|
297
|
+
} class V extends Error {
|
|
298
|
+
constructor(e, n) { super(e), this.name = "HTMLInjectionError", this.html = n }
|
|
299
|
+
}
|
|
300
|
+
const J = t, Y = a, ee = Symbol("nomatch"), ne = t => {
|
|
301
|
+
const a = Object.create(null), i = Object.create(null), r = []; let s = !0
|
|
302
|
+
; const o = "Could not find the language '{}', did you forget to load/include a language module?", c = {
|
|
303
|
+
disableAutodetect: !0, name: "Plain text", contains: []
|
|
304
|
+
}; let p = {
|
|
305
|
+
ignoreUnescapedHTML: !1, throwUnescapedHTML: !1, noHighlightRe: /^(no-?highlight)$/i,
|
|
306
|
+
languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, classPrefix: "hljs-",
|
|
307
|
+
cssSelector: "pre code", languages: null, __emitter: l
|
|
308
|
+
}; function _(e) {
|
|
309
|
+
return p.noHighlightRe.test(e)
|
|
310
|
+
} function h(e, n, t) {
|
|
311
|
+
let a = "", i = ""
|
|
312
|
+
; "object" == typeof n ? (a = e,
|
|
313
|
+
t = n.ignoreIllegals, i = n.language) : (q("10.7.0", "highlight(lang, code, ...args) has been deprecated."),
|
|
314
|
+
q("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
|
|
315
|
+
i = e, a = n), void 0 === t && (t = !0); const r = { code: a, language: i }; x("before:highlight", r)
|
|
316
|
+
; const s = r.result ? r.result : f(r.language, r.code, t)
|
|
317
|
+
; return s.code = r.code, x("after:highlight", s), s
|
|
318
|
+
} function f(e, t, i, r) {
|
|
319
|
+
const l = Object.create(null); function c() {
|
|
320
|
+
if (!x.keywords) return void S.addText(A)
|
|
321
|
+
; let e = 0; x.keywordPatternRe.lastIndex = 0; let n = x.keywordPatternRe.exec(A), t = ""
|
|
322
|
+
; for (; n;) {
|
|
323
|
+
t += A.substring(e, n.index)
|
|
324
|
+
; const i = w.case_insensitive ? n[0].toLowerCase() : n[0], r = (a = i, x.keywords[a]); if (r) {
|
|
325
|
+
const [e, a] = r
|
|
326
|
+
; if (S.addText(t), t = "", l[i] = (l[i] || 0) + 1, l[i] <= 7 && (C += a), e.startsWith("_")) t += n[0]; else {
|
|
327
|
+
const t = w.classNameAliases[e] || e; g(n[0], t)
|
|
328
|
+
}
|
|
329
|
+
} else t += n[0]
|
|
330
|
+
; e = x.keywordPatternRe.lastIndex, n = x.keywordPatternRe.exec(A)
|
|
331
|
+
} var a
|
|
332
|
+
; t += A.substring(e), S.addText(t)
|
|
333
|
+
} function d() {
|
|
334
|
+
null != x.subLanguage ? (() => {
|
|
335
|
+
if ("" === A) return; let e = null; if ("string" == typeof x.subLanguage) {
|
|
336
|
+
if (!a[x.subLanguage]) return void S.addText(A)
|
|
337
|
+
; e = f(x.subLanguage, A, !0, M[x.subLanguage]), M[x.subLanguage] = e._top
|
|
338
|
+
} else e = E(A, x.subLanguage.length ? x.subLanguage : null)
|
|
339
|
+
; x.relevance > 0 && (C += e.relevance), S.__addSublanguage(e._emitter, e.language)
|
|
340
|
+
})() : c(), A = ""
|
|
341
|
+
} function g(e, n) {
|
|
342
|
+
"" !== e && (S.startScope(n), S.addText(e), S.endScope())
|
|
343
|
+
} function u(e, n) {
|
|
344
|
+
let t = 1
|
|
345
|
+
; const a = n.length - 1; for (; t <= a;) {
|
|
346
|
+
if (!e._emit[t]) { t++; continue }
|
|
347
|
+
const a = w.classNameAliases[e[t]] || e[t], i = n[t]; a ? g(i, a) : (A = i, c(), A = ""), t++
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
function b(e, n) {
|
|
351
|
+
return e.scope && "string" == typeof e.scope && S.openNode(w.classNameAliases[e.scope] || e.scope),
|
|
352
|
+
e.beginScope && (e.beginScope._wrap ? (g(A, w.classNameAliases[e.beginScope._wrap] || e.beginScope._wrap),
|
|
353
|
+
A = "") : e.beginScope._multi && (u(e.beginScope, n), A = "")), x = Object.create(e, {
|
|
354
|
+
parent: {
|
|
355
|
+
value: x
|
|
356
|
+
}
|
|
357
|
+
}), x
|
|
358
|
+
} function m(e, t, a) {
|
|
359
|
+
let i = ((e, n) => {
|
|
360
|
+
const t = e && e.exec(n)
|
|
361
|
+
; return t && 0 === t.index
|
|
362
|
+
})(e.endRe, a); if (i) {
|
|
363
|
+
if (e["on:end"]) {
|
|
364
|
+
const a = new n(e)
|
|
365
|
+
; e["on:end"](t, a), a.isMatchIgnored && (i = !1)
|
|
366
|
+
} if (i) {
|
|
367
|
+
for (; e.endsParent && e.parent;)e = e.parent; return e
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (e.endsWithParent) return m(e.parent, t, a)
|
|
371
|
+
} function _(e) {
|
|
372
|
+
return 0 === x.matcher.regexIndex ? (A += e[0], 1) : (D = !0, 0)
|
|
373
|
+
} function h(e) {
|
|
374
|
+
const n = e[0], a = t.substring(e.index), i = m(x, e, a); if (!i) return ee; const r = x
|
|
375
|
+
; x.endScope && x.endScope._wrap ? (d(),
|
|
376
|
+
g(n, x.endScope._wrap)) : x.endScope && x.endScope._multi ? (d(),
|
|
377
|
+
u(x.endScope, e)) : r.skip ? A += n : (r.returnEnd || r.excludeEnd || (A += n),
|
|
378
|
+
d(), r.excludeEnd && (A = n)); do {
|
|
379
|
+
x.scope && S.closeNode(), x.skip || x.subLanguage || (C += x.relevance), x = x.parent
|
|
380
|
+
} while (x !== i.parent); return i.starts && b(i.starts, e), r.returnEnd ? 0 : n.length
|
|
381
|
+
}
|
|
382
|
+
let y = {}; function N(a, r) {
|
|
383
|
+
const o = r && r[0]; if (A += a, null == o) return d(), 0
|
|
384
|
+
; if ("begin" === y.type && "end" === r.type && y.index === r.index && "" === o) {
|
|
385
|
+
if (A += t.slice(r.index, r.index + 1), !s) {
|
|
386
|
+
const n = Error(`0 width match regex (${e})`)
|
|
387
|
+
; throw n.languageName = e, n.badRule = y.rule, n
|
|
388
|
+
} return 1
|
|
389
|
+
}
|
|
390
|
+
if (y = r, "begin" === r.type) return (e => {
|
|
391
|
+
const t = e[0], a = e.rule, i = new n(a), r = [a.__beforeBegin, a["on:begin"]]
|
|
392
|
+
; for (const n of r) if (n && (n(e, i), i.isMatchIgnored)) return _(t)
|
|
393
|
+
; return a.skip ? A += t : (a.excludeBegin && (A += t),
|
|
394
|
+
d(), a.returnBegin || a.excludeBegin || (A = t)), b(a, e), a.returnBegin ? 0 : t.length
|
|
395
|
+
})(r)
|
|
396
|
+
; if ("illegal" === r.type && !i) {
|
|
397
|
+
const e = Error('Illegal lexeme "' + o + '" for mode "' + (x.scope || "<unnamed>") + '"')
|
|
398
|
+
; throw e.mode = x, e
|
|
399
|
+
} if ("end" === r.type) { const e = h(r); if (e !== ee) return e }
|
|
400
|
+
if ("illegal" === r.type && "" === o) return 1
|
|
401
|
+
; if (R > 1e5 && R > 3 * r.index) throw Error("potential infinite loop, way more iterations than matches")
|
|
402
|
+
; return A += o, o.length
|
|
403
|
+
} const w = v(e)
|
|
404
|
+
; if (!w) throw K(o.replace("{}", e)), Error('Unknown language: "' + e + '"')
|
|
405
|
+
; const O = Q(w); let k = "", x = r || O; const M = {}, S = new p.__emitter(p); (() => {
|
|
406
|
+
const e = []
|
|
407
|
+
; for (let n = x; n !== w; n = n.parent)n.scope && e.unshift(n.scope)
|
|
408
|
+
; e.forEach((e => S.openNode(e)))
|
|
409
|
+
})(); let A = "", C = 0, T = 0, R = 0, D = !1; try {
|
|
410
|
+
if (w.__emitTokens) w.__emitTokens(t, S); else {
|
|
411
|
+
for (x.matcher.considerAll(); ;) {
|
|
412
|
+
R++, D ? D = !1 : x.matcher.considerAll(), x.matcher.lastIndex = T
|
|
413
|
+
; const e = x.matcher.exec(t); if (!e) break; const n = N(t.substring(T, e.index), e)
|
|
414
|
+
; T = e.index + n
|
|
415
|
+
} N(t.substring(T))
|
|
416
|
+
} return S.finalize(), k = S.toHTML(), {
|
|
417
|
+
language: e,
|
|
418
|
+
value: k, relevance: C, illegal: !1, _emitter: S, _top: x
|
|
419
|
+
}
|
|
420
|
+
} catch (n) {
|
|
421
|
+
if (n.message && n.message.includes("Illegal")) return {
|
|
422
|
+
language: e, value: J(t),
|
|
423
|
+
illegal: !0, relevance: 0, _illegalBy: {
|
|
424
|
+
message: n.message, index: T,
|
|
425
|
+
context: t.slice(T - 100, T + 100), mode: n.mode, resultSoFar: k
|
|
426
|
+
}, _emitter: S
|
|
427
|
+
}; if (s) return {
|
|
428
|
+
language: e, value: J(t), illegal: !1, relevance: 0, errorRaised: n, _emitter: S, _top: x
|
|
429
|
+
}
|
|
430
|
+
; throw n
|
|
431
|
+
}
|
|
432
|
+
} function E(e, n) {
|
|
433
|
+
n = n || p.languages || Object.keys(a); const t = (e => {
|
|
434
|
+
const n = { value: J(e), illegal: !1, relevance: 0, _top: c, _emitter: new p.__emitter(p) }
|
|
435
|
+
; return n._emitter.addText(e), n
|
|
436
|
+
})(e), i = n.filter(v).filter(k).map((n => f(n, e, !1)))
|
|
437
|
+
; i.unshift(t); const r = i.sort(((e, n) => {
|
|
438
|
+
if (e.relevance !== n.relevance) return n.relevance - e.relevance
|
|
439
|
+
; if (e.language && n.language) {
|
|
440
|
+
if (v(e.language).supersetOf === n.language) return 1
|
|
441
|
+
; if (v(n.language).supersetOf === e.language) return -1
|
|
442
|
+
} return 0
|
|
443
|
+
})), [s, o] = r, l = s
|
|
444
|
+
; return l.secondBest = o, l
|
|
445
|
+
} function y(e) {
|
|
446
|
+
let n = null; const t = (e => {
|
|
447
|
+
let n = e.className + " "; n += e.parentNode ? e.parentNode.className : ""
|
|
448
|
+
; const t = p.languageDetectRe.exec(n); if (t) {
|
|
449
|
+
const n = v(t[1])
|
|
450
|
+
; return n || (H(o.replace("{}", t[1])),
|
|
451
|
+
H("Falling back to no-highlight mode for this block.", e)), n ? t[1] : "no-highlight"
|
|
452
|
+
}
|
|
453
|
+
return n.split(/\s+/).find((e => _(e) || v(e)))
|
|
454
|
+
})(e); if (_(t)) return
|
|
455
|
+
; if (x("before:highlightElement", {
|
|
456
|
+
el: e, language: t
|
|
457
|
+
}), e.dataset.highlighted) return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", e)
|
|
458
|
+
; if (e.children.length > 0 && (p.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
|
|
459
|
+
console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
|
|
460
|
+
console.warn("The element with unescaped HTML:"),
|
|
461
|
+
console.warn(e)), p.throwUnescapedHTML)) throw new V("One of your code blocks includes unescaped HTML.", e.innerHTML)
|
|
462
|
+
; n = e; const a = n.textContent, r = t ? h(a, { language: t, ignoreIllegals: !0 }) : E(a)
|
|
463
|
+
; e.innerHTML = r.value, e.dataset.highlighted = "yes", ((e, n, t) => {
|
|
464
|
+
const a = n && i[n] || t
|
|
465
|
+
; e.classList.add("hljs"), e.classList.add("language-" + a)
|
|
466
|
+
})(e, t, r.language), e.result = {
|
|
467
|
+
language: r.language, re: r.relevance,
|
|
468
|
+
relevance: r.relevance
|
|
469
|
+
}, r.secondBest && (e.secondBest = {
|
|
470
|
+
language: r.secondBest.language, relevance: r.secondBest.relevance
|
|
471
|
+
}), x("after:highlightElement", { el: e, result: r, text: a })
|
|
472
|
+
} let N = !1; function w() {
|
|
473
|
+
"loading" !== document.readyState ? document.querySelectorAll(p.cssSelector).forEach(y) : N = !0
|
|
474
|
+
} function v(e) { return e = (e || "").toLowerCase(), a[e] || a[i[e]] }
|
|
475
|
+
function O(e, { languageName: n }) {
|
|
476
|
+
"string" == typeof e && (e = [e]), e.forEach((e => {
|
|
477
|
+
i[e.toLowerCase()] = n
|
|
478
|
+
}))
|
|
479
|
+
} function k(e) {
|
|
480
|
+
const n = v(e)
|
|
481
|
+
; return n && !n.disableAutodetect
|
|
482
|
+
} function x(e, n) {
|
|
483
|
+
const t = e; r.forEach((e => {
|
|
484
|
+
e[t] && e[t](n)
|
|
485
|
+
}))
|
|
486
|
+
}
|
|
487
|
+
"undefined" != typeof window && window.addEventListener && window.addEventListener("DOMContentLoaded", (() => {
|
|
488
|
+
N && w()
|
|
489
|
+
}), !1), Object.assign(t, {
|
|
490
|
+
highlight: h, highlightAuto: E, highlightAll: w,
|
|
491
|
+
highlightElement: y,
|
|
492
|
+
highlightBlock: e => (q("10.7.0", "highlightBlock will be removed entirely in v12.0"),
|
|
493
|
+
q("10.7.0", "Please use highlightElement now."), y(e)), configure: e => { p = Y(p, e) },
|
|
494
|
+
initHighlighting: () => {
|
|
495
|
+
w(), q("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.")
|
|
496
|
+
},
|
|
497
|
+
initHighlightingOnLoad: () => {
|
|
498
|
+
w(), q("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.")
|
|
499
|
+
}, registerLanguage: (e, n) => {
|
|
500
|
+
let i = null; try { i = n(t) } catch (n) {
|
|
501
|
+
if (K("Language definition for '{}' could not be registered.".replace("{}", e)),
|
|
502
|
+
!s) throw n; K(n), i = c
|
|
503
|
+
}
|
|
504
|
+
i.name || (i.name = e), a[e] = i, i.rawDefinition = n.bind(null, t), i.aliases && O(i.aliases, {
|
|
505
|
+
languageName: e
|
|
506
|
+
})
|
|
507
|
+
}, unregisterLanguage: e => {
|
|
508
|
+
delete a[e]
|
|
509
|
+
; for (const n of Object.keys(i)) i[n] === e && delete i[n]
|
|
510
|
+
},
|
|
511
|
+
listLanguages: () => Object.keys(a), getLanguage: v, registerAliases: O,
|
|
512
|
+
autoDetection: k, inherit: Y, addPlugin: e => {
|
|
513
|
+
(e => {
|
|
514
|
+
e["before:highlightBlock"] && !e["before:highlightElement"] && (e["before:highlightElement"] = n => {
|
|
515
|
+
e["before:highlightBlock"](Object.assign({ block: n.el }, n))
|
|
516
|
+
}), e["after:highlightBlock"] && !e["after:highlightElement"] && (e["after:highlightElement"] = n => {
|
|
517
|
+
e["after:highlightBlock"](Object.assign({ block: n.el }, n))
|
|
518
|
+
})
|
|
519
|
+
})(e), r.push(e)
|
|
520
|
+
},
|
|
521
|
+
removePlugin: e => { const n = r.indexOf(e); -1 !== n && r.splice(n, 1) }
|
|
522
|
+
}), t.debugMode = () => {
|
|
523
|
+
s = !1
|
|
524
|
+
}, t.safeMode = () => { s = !0 }, t.versionString = "11.9.0", t.regex = {
|
|
525
|
+
concat: b,
|
|
526
|
+
lookahead: d, either: m, optional: u, anyNumberOfTimes: g
|
|
527
|
+
}
|
|
528
|
+
; for (const n in C) "object" == typeof C[n] && e(C[n]); return Object.assign(t, C), t
|
|
529
|
+
}, te = ne({}); te.newInstance = () => ne({}); var ae = te; const ie = e => ({
|
|
530
|
+
IMPORTANT: {
|
|
531
|
+
scope: "meta", begin: "!important"
|
|
532
|
+
}, BLOCK_COMMENT: e.C_BLOCK_COMMENT_MODE, HEXCOLOR: {
|
|
533
|
+
scope: "number", begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
|
|
534
|
+
},
|
|
535
|
+
FUNCTION_DISPATCH: { className: "built_in", begin: /[\w-]+(?=\()/ },
|
|
536
|
+
ATTRIBUTE_SELECTOR_MODE: {
|
|
537
|
+
scope: "selector-attr", begin: /\[/, end: /\]/, illegal: "$",
|
|
538
|
+
contains: [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE]
|
|
539
|
+
}, CSS_NUMBER_MODE: {
|
|
540
|
+
scope: "number",
|
|
541
|
+
begin: e.NUMBER_RE + "(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
|
|
542
|
+
relevance: 0
|
|
543
|
+
}, CSS_VARIABLE: { className: "attr", begin: /--[A-Za-z_][A-Za-z0-9_-]*/ }
|
|
544
|
+
}), re = ["a", "abbr", "address", "article", "aside", "audio", "b", "blockquote", "body", "button", "canvas", "caption", "cite", "code", "dd", "del", "details", "dfn", "div", "dl", "dt", "em", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "mark", "menu", "nav", "object", "ol", "p", "q", "quote", "samp", "section", "span", "strong", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "tr", "ul", "var", "video"], se = ["any-hover", "any-pointer", "aspect-ratio", "color", "color-gamut", "color-index", "device-aspect-ratio", "device-height", "device-width", "display-mode", "forced-colors", "grid", "height", "hover", "inverted-colors", "monochrome", "orientation", "overflow-block", "overflow-inline", "pointer", "prefers-color-scheme", "prefers-contrast", "prefers-reduced-motion", "prefers-reduced-transparency", "resolution", "scan", "scripting", "update", "width", "min-width", "max-width", "min-height", "max-height"], oe = ["active", "any-link", "blank", "checked", "current", "default", "defined", "dir", "disabled", "drop", "empty", "enabled", "first", "first-child", "first-of-type", "fullscreen", "future", "focus", "focus-visible", "focus-within", "has", "host", "host-context", "hover", "indeterminate", "in-range", "invalid", "is", "lang", "last-child", "last-of-type", "left", "link", "local-link", "not", "nth-child", "nth-col", "nth-last-child", "nth-last-col", "nth-last-of-type", "nth-of-type", "only-child", "only-of-type", "optional", "out-of-range", "past", "placeholder-shown", "read-only", "read-write", "required", "right", "root", "scope", "target", "target-within", "user-invalid", "valid", "visited", "where"], le = ["after", "backdrop", "before", "cue", "cue-region", "first-letter", "first-line", "grammar-error", "marker", "part", "placeholder", "selection", "slotted", "spelling-error"], ce = ["align-content", "align-items", "align-self", "all", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-fill-mode", "animation-iteration-count", "animation-name", "animation-play-state", "animation-timing-function", "backface-visibility", "background", "background-attachment", "background-blend-mode", "background-clip", "background-color", "background-image", "background-origin", "background-position", "background-repeat", "background-size", "block-size", "border", "border-block", "border-block-color", "border-block-end", "border-block-end-color", "border-block-end-style", "border-block-end-width", "border-block-start", "border-block-start-color", "border-block-start-style", "border-block-start-width", "border-block-style", "border-block-width", "border-bottom", "border-bottom-color", "border-bottom-left-radius", "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", "border-image-width", "border-inline", "border-inline-color", "border-inline-end", "border-inline-end-color", "border-inline-end-style", "border-inline-end-width", "border-inline-start", "border-inline-start-color", "border-inline-start-style", "border-inline-start-width", "border-inline-style", "border-inline-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-spacing", "border-style", "border-top", "border-top-color", "border-top-left-radius", "border-top-right-radius", "border-top-style", "border-top-width", "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", "caption-side", "caret-color", "clear", "clip", "clip-path", "clip-rule", "color", "column-count", "column-fill", "column-gap", "column-rule", "column-rule-color", "column-rule-style", "column-rule-width", "column-span", "column-width", "columns", "contain", "content", "content-visibility", "counter-increment", "counter-reset", "cue", "cue-after", "cue-before", "cursor", "direction", "display", "empty-cells", "filter", "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", "flow", "font", "font-display", "font-family", "font-feature-settings", "font-kerning", "font-language-override", "font-size", "font-size-adjust", "font-smoothing", "font-stretch", "font-style", "font-synthesis", "font-variant", "font-variant-caps", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-variation-settings", "font-weight", "gap", "glyph-orientation-vertical", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns", "grid-template-rows", "hanging-punctuation", "height", "hyphens", "icon", "image-orientation", "image-rendering", "image-resolution", "ime-mode", "inline-size", "isolation", "justify-content", "left", "letter-spacing", "line-break", "line-height", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", "margin-block", "margin-block-end", "margin-block-start", "margin-bottom", "margin-inline", "margin-inline-end", "margin-inline-start", "margin-left", "margin-right", "margin-top", "marks", "mask", "mask-border", "mask-border-mode", "mask-border-outset", "mask-border-repeat", "mask-border-slice", "mask-border-source", "mask-border-width", "mask-clip", "mask-composite", "mask-image", "mask-mode", "mask-origin", "mask-position", "mask-repeat", "mask-size", "mask-type", "max-block-size", "max-height", "max-inline-size", "max-width", "min-block-size", "min-height", "min-inline-size", "min-width", "mix-blend-mode", "nav-down", "nav-index", "nav-left", "nav-right", "nav-up", "none", "normal", "object-fit", "object-position", "opacity", "order", "orphans", "outline", "outline-color", "outline-offset", "outline-style", "outline-width", "overflow", "overflow-wrap", "overflow-x", "overflow-y", "padding", "padding-block", "padding-block-end", "padding-block-start", "padding-bottom", "padding-inline", "padding-inline-end", "padding-inline-start", "padding-left", "padding-right", "padding-top", "page-break-after", "page-break-before", "page-break-inside", "pause", "pause-after", "pause-before", "perspective", "perspective-origin", "pointer-events", "position", "quotes", "resize", "rest", "rest-after", "rest-before", "right", "row-gap", "scroll-margin", "scroll-margin-block", "scroll-margin-block-end", "scroll-margin-block-start", "scroll-margin-bottom", "scroll-margin-inline", "scroll-margin-inline-end", "scroll-margin-inline-start", "scroll-margin-left", "scroll-margin-right", "scroll-margin-top", "scroll-padding", "scroll-padding-block", "scroll-padding-block-end", "scroll-padding-block-start", "scroll-padding-bottom", "scroll-padding-inline", "scroll-padding-inline-end", "scroll-padding-inline-start", "scroll-padding-left", "scroll-padding-right", "scroll-padding-top", "scroll-snap-align", "scroll-snap-stop", "scroll-snap-type", "scrollbar-color", "scrollbar-gutter", "scrollbar-width", "shape-image-threshold", "shape-margin", "shape-outside", "speak", "speak-as", "src", "tab-size", "table-layout", "text-align", "text-align-all", "text-align-last", "text-combine-upright", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-style", "text-emphasis", "text-emphasis-color", "text-emphasis-position", "text-emphasis-style", "text-indent", "text-justify", "text-orientation", "text-overflow", "text-rendering", "text-shadow", "text-transform", "text-underline-position", "top", "transform", "transform-box", "transform-origin", "transform-style", "transition", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "unicode-bidi", "vertical-align", "visibility", "voice-balance", "voice-duration", "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", "voice-volume", "white-space", "widows", "width", "will-change", "word-break", "word-spacing", "word-wrap", "writing-mode", "z-index"].reverse(), de = oe.concat(le)
|
|
545
|
+
; var ge = "[0-9](_*[0-9])*", ue = `\\.(${ge})`, be = "[0-9a-fA-F](_*[0-9a-fA-F])*", me = {
|
|
546
|
+
className: "number", variants: [{
|
|
547
|
+
begin: `(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`
|
|
548
|
+
}, {
|
|
549
|
+
begin: `\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`
|
|
550
|
+
}, {
|
|
551
|
+
begin: `(${ue})[fFdD]?\\b`
|
|
552
|
+
}, { begin: `\\b(${ge})[fFdD]\\b` }, {
|
|
553
|
+
begin: `\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`
|
|
554
|
+
}, {
|
|
555
|
+
begin: "\\b(0|[1-9](_*[0-9])*)[lL]?\\b"
|
|
556
|
+
}, { begin: `\\b0[xX](${be})[lL]?\\b` }, {
|
|
557
|
+
begin: "\\b0(_*[0-7])*[lL]?\\b"
|
|
558
|
+
}, { begin: "\\b0[bB][01](_*[01])*[lL]?\\b" }],
|
|
559
|
+
relevance: 0
|
|
560
|
+
}; function pe(e, n, t) { return -1 === t ? "" : e.replace(n, (a => pe(e, n, t - 1))) }
|
|
561
|
+
const _e = "[A-Za-z$_][0-9A-Za-z$_]*", he = ["as", "in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", "debugger", "async", "await", "static", "import", "from", "export", "extends"], fe = ["true", "false", "null", "undefined", "NaN", "Infinity"], Ee = ["Object", "Function", "Boolean", "Symbol", "Math", "Date", "Number", "BigInt", "String", "RegExp", "Array", "Float32Array", "Float64Array", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Int32Array", "Uint16Array", "Uint32Array", "BigInt64Array", "BigUint64Array", "Set", "Map", "WeakSet", "WeakMap", "ArrayBuffer", "SharedArrayBuffer", "Atomics", "DataView", "JSON", "Promise", "Generator", "GeneratorFunction", "AsyncFunction", "Reflect", "Proxy", "Intl", "WebAssembly"], ye = ["Error", "EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"], Ne = ["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"], we = ["arguments", "this", "super", "console", "window", "document", "localStorage", "sessionStorage", "module", "global"], ve = [].concat(Ne, Ee, ye)
|
|
562
|
+
; function Oe(e) {
|
|
563
|
+
const n = e.regex, t = _e, a = {
|
|
564
|
+
begin: /<[A-Za-z0-9\\._:-]+/,
|
|
565
|
+
end: /\/[A-Za-z0-9\\._:-]+>|\/>/, isTrulyOpeningTag: (e, n) => {
|
|
566
|
+
const t = e[0].length + e.index, a = e.input[t]
|
|
567
|
+
; if ("<" === a || "," === a) return void n.ignoreMatch(); let i
|
|
568
|
+
; ">" === a && (((e, { after: n }) => {
|
|
569
|
+
const t = "</" + e[0].slice(1)
|
|
570
|
+
; return -1 !== e.input.indexOf(t, n)
|
|
571
|
+
})(e, { after: t }) || n.ignoreMatch())
|
|
572
|
+
; const r = e.input.substring(t)
|
|
573
|
+
; ((i = r.match(/^\s*=/)) || (i = r.match(/^\s+extends\s+/)) && 0 === i.index) && n.ignoreMatch()
|
|
574
|
+
}
|
|
575
|
+
}, i = {
|
|
576
|
+
$pattern: _e, keyword: he, literal: fe, built_in: ve, "variable.language": we
|
|
577
|
+
}, r = "[0-9](_?[0-9])*", s = `\\.(${r})`, o = "0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*", l = {
|
|
578
|
+
className: "number", variants: [{
|
|
579
|
+
begin: `(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`
|
|
580
|
+
}, {
|
|
581
|
+
begin: `\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`
|
|
582
|
+
}, {
|
|
583
|
+
begin: "\\b(0|[1-9](_?[0-9])*)n\\b"
|
|
584
|
+
}, {
|
|
585
|
+
begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"
|
|
586
|
+
}, {
|
|
587
|
+
begin: "\\b0[bB][0-1](_?[0-1])*n?\\b"
|
|
588
|
+
}, { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" }, {
|
|
589
|
+
begin: "\\b0[0-7]+n?\\b"
|
|
590
|
+
}], relevance: 0
|
|
591
|
+
}, c = {
|
|
592
|
+
className: "subst", begin: "\\$\\{",
|
|
593
|
+
end: "\\}", keywords: i, contains: []
|
|
594
|
+
}, d = {
|
|
595
|
+
begin: "html`", end: "", starts: {
|
|
596
|
+
end: "`",
|
|
597
|
+
returnEnd: !1, contains: [e.BACKSLASH_ESCAPE, c], subLanguage: "xml"
|
|
598
|
+
}
|
|
599
|
+
}, g = {
|
|
600
|
+
begin: "css`", end: "", starts: {
|
|
601
|
+
end: "`", returnEnd: !1,
|
|
602
|
+
contains: [e.BACKSLASH_ESCAPE, c], subLanguage: "css"
|
|
603
|
+
}
|
|
604
|
+
}, u = {
|
|
605
|
+
begin: "gql`", end: "",
|
|
606
|
+
starts: {
|
|
607
|
+
end: "`", returnEnd: !1, contains: [e.BACKSLASH_ESCAPE, c],
|
|
608
|
+
subLanguage: "graphql"
|
|
609
|
+
}
|
|
610
|
+
}, b = {
|
|
611
|
+
className: "string", begin: "`", end: "`",
|
|
612
|
+
contains: [e.BACKSLASH_ESCAPE, c]
|
|
613
|
+
}, m = {
|
|
614
|
+
className: "comment",
|
|
615
|
+
variants: [e.COMMENT(/\/\*\*(?!\/)/, "\\*/", {
|
|
616
|
+
relevance: 0, contains: [{
|
|
617
|
+
begin: "(?=@[A-Za-z]+)", relevance: 0, contains: [{
|
|
618
|
+
className: "doctag",
|
|
619
|
+
begin: "@[A-Za-z]+"
|
|
620
|
+
}, {
|
|
621
|
+
className: "type", begin: "\\{", end: "\\}", excludeEnd: !0,
|
|
622
|
+
excludeBegin: !0, relevance: 0
|
|
623
|
+
}, {
|
|
624
|
+
className: "variable", begin: t + "(?=\\s*(-)|$)",
|
|
625
|
+
endsParent: !0, relevance: 0
|
|
626
|
+
}, { begin: /(?=[^\n])\s/, relevance: 0 }]
|
|
627
|
+
}]
|
|
628
|
+
}), e.C_BLOCK_COMMENT_MODE, e.C_LINE_COMMENT_MODE]
|
|
629
|
+
}, p = [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, d, g, u, b, { match: /\$\d+/ }, l]
|
|
630
|
+
; c.contains = p.concat({
|
|
631
|
+
begin: /\{/, end: /\}/, keywords: i, contains: ["self"].concat(p)
|
|
632
|
+
}); const _ = [].concat(m, c.contains), h = _.concat([{
|
|
633
|
+
begin: /\(/, end: /\)/, keywords: i,
|
|
634
|
+
contains: ["self"].concat(_)
|
|
635
|
+
}]), f = {
|
|
636
|
+
className: "params", begin: /\(/, end: /\)/,
|
|
637
|
+
excludeBegin: !0, excludeEnd: !0, keywords: i, contains: h
|
|
638
|
+
}, E = {
|
|
639
|
+
variants: [{
|
|
640
|
+
match: [/class/, /\s+/, t, /\s+/, /extends/, /\s+/, n.concat(t, "(", n.concat(/\./, t), ")*")],
|
|
641
|
+
scope: { 1: "keyword", 3: "title.class", 5: "keyword", 7: "title.class.inherited" }
|
|
642
|
+
}, {
|
|
643
|
+
match: [/class/, /\s+/, t], scope: { 1: "keyword", 3: "title.class" }
|
|
644
|
+
}]
|
|
645
|
+
}, y = {
|
|
646
|
+
relevance: 0,
|
|
647
|
+
match: n.either(/\bJSON/, /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/, /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/, /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
|
|
648
|
+
className: "title.class", keywords: { _: [...Ee, ...ye] }
|
|
649
|
+
}, N = {
|
|
650
|
+
variants: [{
|
|
651
|
+
match: [/function/, /\s+/, t, /(?=\s*\()/]
|
|
652
|
+
}, { match: [/function/, /\s*(?=\()/] }],
|
|
653
|
+
className: { 1: "keyword", 3: "title.function" }, label: "func.def", contains: [f],
|
|
654
|
+
illegal: /%/
|
|
655
|
+
}, w = {
|
|
656
|
+
match: n.concat(/\b/, (v = [...Ne, "super", "import"], n.concat("(?!", v.join("|"), ")")), t, n.lookahead(/\(/)),
|
|
657
|
+
className: "title.function", relevance: 0
|
|
658
|
+
}; var v; const O = {
|
|
659
|
+
begin: n.concat(/\./, n.lookahead(n.concat(t, /(?![0-9A-Za-z$_(])/))), end: t,
|
|
660
|
+
excludeBegin: !0, keywords: "prototype", className: "property", relevance: 0
|
|
661
|
+
}, k = {
|
|
662
|
+
match: [/get|set/, /\s+/, t, /(?=\()/], className: { 1: "keyword", 3: "title.function" },
|
|
663
|
+
contains: [{ begin: /\(\)/ }, f]
|
|
664
|
+
}, x = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", M = {
|
|
665
|
+
match: [/const|var|let/, /\s+/, t, /\s*/, /=\s*/, /(async\s*)?/, n.lookahead(x)],
|
|
666
|
+
keywords: "async", className: { 1: "keyword", 3: "title.function" }, contains: [f]
|
|
667
|
+
}
|
|
668
|
+
; return {
|
|
669
|
+
name: "JavaScript", aliases: ["js", "jsx", "mjs", "cjs"], keywords: i, exports: {
|
|
670
|
+
PARAMS_CONTAINS: h, CLASS_REFERENCE: y
|
|
671
|
+
}, illegal: /#(?![$_A-z])/,
|
|
672
|
+
contains: [e.SHEBANG({ label: "shebang", binary: "node", relevance: 5 }), {
|
|
673
|
+
label: "use_strict", className: "meta", relevance: 10,
|
|
674
|
+
begin: /^\s*['"]use (strict|asm)['"]/
|
|
675
|
+
}, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, d, g, u, b, m, { match: /\$\d+/ }, l, y, {
|
|
676
|
+
className: "attr", begin: t + n.lookahead(":"), relevance: 0
|
|
677
|
+
}, M, {
|
|
678
|
+
begin: "(" + e.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
|
|
679
|
+
keywords: "return throw case", relevance: 0, contains: [m, e.REGEXP_MODE, {
|
|
680
|
+
className: "function", begin: x, returnBegin: !0, end: "\\s*=>", contains: [{
|
|
681
|
+
className: "params", variants: [{ begin: e.UNDERSCORE_IDENT_RE, relevance: 0 }, {
|
|
682
|
+
className: null, begin: /\(\s*\)/, skip: !0
|
|
683
|
+
}, {
|
|
684
|
+
begin: /\(/, end: /\)/, excludeBegin: !0,
|
|
685
|
+
excludeEnd: !0, keywords: i, contains: h
|
|
686
|
+
}]
|
|
687
|
+
}]
|
|
688
|
+
}, { begin: /,/, relevance: 0 }, {
|
|
689
|
+
match: /\s+/,
|
|
690
|
+
relevance: 0
|
|
691
|
+
}, {
|
|
692
|
+
variants: [{ begin: "<>", end: "</>" }, {
|
|
693
|
+
match: /<[A-Za-z0-9\\._:-]+\s*\/>/
|
|
694
|
+
}, {
|
|
695
|
+
begin: a.begin,
|
|
696
|
+
"on:begin": a.isTrulyOpeningTag, end: a.end
|
|
697
|
+
}], subLanguage: "xml", contains: [{
|
|
698
|
+
begin: a.begin, end: a.end, skip: !0, contains: ["self"]
|
|
699
|
+
}]
|
|
700
|
+
}]
|
|
701
|
+
}, N, {
|
|
702
|
+
beginKeywords: "while if switch catch for"
|
|
703
|
+
}, {
|
|
704
|
+
begin: "\\b(?!function)" + e.UNDERSCORE_IDENT_RE + "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
|
|
705
|
+
returnBegin: !0, label: "func.def", contains: [f, e.inherit(e.TITLE_MODE, {
|
|
706
|
+
begin: t,
|
|
707
|
+
className: "title.function"
|
|
708
|
+
})]
|
|
709
|
+
}, { match: /\.\.\./, relevance: 0 }, O, {
|
|
710
|
+
match: "\\$" + t,
|
|
711
|
+
relevance: 0
|
|
712
|
+
}, {
|
|
713
|
+
match: [/\bconstructor(?=\s*\()/], className: { 1: "title.function" },
|
|
714
|
+
contains: [f]
|
|
715
|
+
}, w, {
|
|
716
|
+
relevance: 0, match: /\b[A-Z][A-Z_0-9]+\b/,
|
|
717
|
+
className: "variable.constant"
|
|
718
|
+
}, E, k, { match: /\$[(.]/ }]
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
const ke = e => b(/\b/, e, /\w$/.test(e) ? /\b/ : /\B/), xe = ["Protocol", "Type"].map(ke), Me = ["init", "self"].map(ke), Se = ["Any", "Self"], Ae = ["actor", "any", "associatedtype", "async", "await", /as\?/, /as!/, "as", "borrowing", "break", "case", "catch", "class", "consume", "consuming", "continue", "convenience", "copy", "default", "defer", "deinit", "didSet", "distributed", "do", "dynamic", "each", "else", "enum", "extension", "fallthrough", /fileprivate\(set\)/, "fileprivate", "final", "for", "func", "get", "guard", "if", "import", "indirect", "infix", /init\?/, /init!/, "inout", /internal\(set\)/, "internal", "in", "is", "isolated", "nonisolated", "lazy", "let", "macro", "mutating", "nonmutating", /open\(set\)/, "open", "operator", "optional", "override", "postfix", "precedencegroup", "prefix", /private\(set\)/, "private", "protocol", /public\(set\)/, "public", "repeat", "required", "rethrows", "return", "set", "some", "static", "struct", "subscript", "super", "switch", "throws", "throw", /try\?/, /try!/, "try", "typealias", /unowned\(safe\)/, /unowned\(unsafe\)/, "unowned", "var", "weak", "where", "while", "willSet"], Ce = ["false", "nil", "true"], Te = ["assignment", "associativity", "higherThan", "left", "lowerThan", "none", "right"], Re = ["#colorLiteral", "#column", "#dsohandle", "#else", "#elseif", "#endif", "#error", "#file", "#fileID", "#fileLiteral", "#filePath", "#function", "#if", "#imageLiteral", "#keyPath", "#line", "#selector", "#sourceLocation", "#warning"], De = ["abs", "all", "any", "assert", "assertionFailure", "debugPrint", "dump", "fatalError", "getVaList", "isKnownUniquelyReferenced", "max", "min", "numericCast", "pointwiseMax", "pointwiseMin", "precondition", "preconditionFailure", "print", "readLine", "repeatElement", "sequence", "stride", "swap", "swift_unboxFromSwiftValueWithType", "transcode", "type", "unsafeBitCast", "unsafeDowncast", "withExtendedLifetime", "withUnsafeMutablePointer", "withUnsafePointer", "withVaList", "withoutActuallyEscaping", "zip"], Ie = m(/[/=\-+!*%<>&|^~?]/, /[\u00A1-\u00A7]/, /[\u00A9\u00AB]/, /[\u00AC\u00AE]/, /[\u00B0\u00B1]/, /[\u00B6\u00BB\u00BF\u00D7\u00F7]/, /[\u2016-\u2017]/, /[\u2020-\u2027]/, /[\u2030-\u203E]/, /[\u2041-\u2053]/, /[\u2055-\u205E]/, /[\u2190-\u23FF]/, /[\u2500-\u2775]/, /[\u2794-\u2BFF]/, /[\u2E00-\u2E7F]/, /[\u3001-\u3003]/, /[\u3008-\u3020]/, /[\u3030]/), Le = m(Ie, /[\u0300-\u036F]/, /[\u1DC0-\u1DFF]/, /[\u20D0-\u20FF]/, /[\uFE00-\uFE0F]/, /[\uFE20-\uFE2F]/), Be = b(Ie, Le, "*"), $e = m(/[a-zA-Z_]/, /[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/, /[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/, /[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/, /[\u1E00-\u1FFF]/, /[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/, /[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/, /[\u2C00-\u2DFF\u2E80-\u2FFF]/, /[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/, /[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/, /[\uFE47-\uFEFE\uFF00-\uFFFD]/), ze = m($e, /\d/, /[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/), Fe = b($e, ze, "*"), Ue = b(/[A-Z]/, ze, "*"), je = ["attached", "autoclosure", b(/convention\(/, m("swift", "block", "c"), /\)/), "discardableResult", "dynamicCallable", "dynamicMemberLookup", "escaping", "freestanding", "frozen", "GKInspectable", "IBAction", "IBDesignable", "IBInspectable", "IBOutlet", "IBSegueAction", "inlinable", "main", "nonobjc", "NSApplicationMain", "NSCopying", "NSManaged", b(/objc\(/, Fe, /\)/), "objc", "objcMembers", "propertyWrapper", "requires_stored_property_inits", "resultBuilder", "Sendable", "testable", "UIApplicationMain", "unchecked", "unknown", "usableFromInline", "warn_unqualified_access"], Pe = ["iOS", "iOSApplicationExtension", "macOS", "macOSApplicationExtension", "macCatalyst", "macCatalystApplicationExtension", "watchOS", "watchOSApplicationExtension", "tvOS", "tvOSApplicationExtension", "swift"]
|
|
722
|
+
; var Ke = Object.freeze({
|
|
723
|
+
__proto__: null, grmr_bash: e => {
|
|
724
|
+
const n = e.regex, t = {}, a = {
|
|
725
|
+
begin: /\$\{/, end: /\}/, contains: ["self", { begin: /:-/, contains: [t] }]
|
|
726
|
+
}
|
|
727
|
+
; Object.assign(t, {
|
|
728
|
+
className: "variable", variants: [{
|
|
729
|
+
begin: n.concat(/\$[\w\d#@][\w\d_]*/, "(?![\\w\\d])(?![$])")
|
|
730
|
+
}, a]
|
|
731
|
+
}); const i = {
|
|
732
|
+
className: "subst", begin: /\$\(/, end: /\)/, contains: [e.BACKSLASH_ESCAPE]
|
|
733
|
+
}, r = {
|
|
734
|
+
begin: /<<-?\s*(?=\w+)/, starts: {
|
|
735
|
+
contains: [e.END_SAME_AS_BEGIN({
|
|
736
|
+
begin: /(\w+)/,
|
|
737
|
+
end: /(\w+)/, className: "string"
|
|
738
|
+
})]
|
|
739
|
+
}
|
|
740
|
+
}, s = {
|
|
741
|
+
className: "string", begin: /"/, end: /"/,
|
|
742
|
+
contains: [e.BACKSLASH_ESCAPE, t, i]
|
|
743
|
+
}; i.contains.push(s); const o = {
|
|
744
|
+
begin: /\$?\(\(/,
|
|
745
|
+
end: /\)\)/, contains: [{ begin: /\d+#[0-9a-f]+/, className: "number" }, e.NUMBER_MODE, t]
|
|
746
|
+
}, l = e.SHEBANG({
|
|
747
|
+
binary: "(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)", relevance: 10
|
|
748
|
+
}), c = {
|
|
749
|
+
className: "function", begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, returnBegin: !0,
|
|
750
|
+
contains: [e.inherit(e.TITLE_MODE, { begin: /\w[\w\d_]*/ })], relevance: 0
|
|
751
|
+
}; return {
|
|
752
|
+
name: "Bash", aliases: ["sh"], keywords: {
|
|
753
|
+
$pattern: /\b[a-z][a-z0-9._-]+\b/,
|
|
754
|
+
keyword: ["if", "then", "else", "elif", "fi", "for", "while", "until", "in", "do", "done", "case", "esac", "function", "select"],
|
|
755
|
+
literal: ["true", "false"],
|
|
756
|
+
built_in: ["break", "cd", "continue", "eval", "exec", "exit", "export", "getopts", "hash", "pwd", "readonly", "return", "shift", "test", "times", "trap", "umask", "unset", "alias", "bind", "builtin", "caller", "command", "declare", "echo", "enable", "help", "let", "local", "logout", "mapfile", "printf", "read", "readarray", "source", "type", "typeset", "ulimit", "unalias", "set", "shopt", "autoload", "bg", "bindkey", "bye", "cap", "chdir", "clone", "comparguments", "compcall", "compctl", "compdescribe", "compfiles", "compgroups", "compquote", "comptags", "comptry", "compvalues", "dirs", "disable", "disown", "echotc", "echoti", "emulate", "fc", "fg", "float", "functions", "getcap", "getln", "history", "integer", "jobs", "kill", "limit", "log", "noglob", "popd", "print", "pushd", "pushln", "rehash", "sched", "setcap", "setopt", "stat", "suspend", "ttyctl", "unfunction", "unhash", "unlimit", "unsetopt", "vared", "wait", "whence", "where", "which", "zcompile", "zformat", "zftp", "zle", "zmodload", "zparseopts", "zprof", "zpty", "zregexparse", "zsocket", "zstyle", "ztcp", "chcon", "chgrp", "chown", "chmod", "cp", "dd", "df", "dir", "dircolors", "ln", "ls", "mkdir", "mkfifo", "mknod", "mktemp", "mv", "realpath", "rm", "rmdir", "shred", "sync", "touch", "truncate", "vdir", "b2sum", "base32", "base64", "cat", "cksum", "comm", "csplit", "cut", "expand", "fmt", "fold", "head", "join", "md5sum", "nl", "numfmt", "od", "paste", "ptx", "pr", "sha1sum", "sha224sum", "sha256sum", "sha384sum", "sha512sum", "shuf", "sort", "split", "sum", "tac", "tail", "tr", "tsort", "unexpand", "uniq", "wc", "arch", "basename", "chroot", "date", "dirname", "du", "echo", "env", "expr", "factor", "groups", "hostid", "id", "link", "logname", "nice", "nohup", "nproc", "pathchk", "pinky", "printenv", "printf", "pwd", "readlink", "runcon", "seq", "sleep", "stat", "stdbuf", "stty", "tee", "test", "timeout", "tty", "uname", "unlink", "uptime", "users", "who", "whoami", "yes"]
|
|
757
|
+
}, contains: [l, e.SHEBANG(), c, o, e.HASH_COMMENT_MODE, r, { match: /(\/[a-z._-]+)+/ }, s, {
|
|
758
|
+
match: /\\"/
|
|
759
|
+
}, { className: "string", begin: /'/, end: /'/ }, { match: /\\'/ }, t]
|
|
760
|
+
}
|
|
761
|
+
},
|
|
762
|
+
grmr_c: e => {
|
|
763
|
+
const n = e.regex, t = e.COMMENT("//", "$", {
|
|
764
|
+
contains: [{ begin: /\\\n/ }]
|
|
765
|
+
}), a = "decltype\\(auto\\)", i = "[a-zA-Z_]\\w*::", r = "(" + a + "|" + n.optional(i) + "[a-zA-Z_]\\w*" + n.optional("<[^<>]+>") + ")", s = {
|
|
766
|
+
className: "type", variants: [{ begin: "\\b[a-z\\d_]*_t\\b" }, {
|
|
767
|
+
match: /\batomic_[a-z]{3,6}\b/
|
|
768
|
+
}]
|
|
769
|
+
}, o = {
|
|
770
|
+
className: "string", variants: [{
|
|
771
|
+
begin: '(u8?|U|L)?"', end: '"', illegal: "\\n", contains: [e.BACKSLASH_ESCAPE]
|
|
772
|
+
}, {
|
|
773
|
+
begin: "(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
|
|
774
|
+
end: "'", illegal: "."
|
|
775
|
+
}, e.END_SAME_AS_BEGIN({
|
|
776
|
+
begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/, end: /\)([^()\\ ]{0,16})"/
|
|
777
|
+
})]
|
|
778
|
+
}, l = {
|
|
779
|
+
className: "number", variants: [{ begin: "\\b(0b[01']+)" }, {
|
|
780
|
+
begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
|
|
781
|
+
}, {
|
|
782
|
+
begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
|
|
783
|
+
}], relevance: 0
|
|
784
|
+
}, c = {
|
|
785
|
+
className: "meta", begin: /#\s*[a-z]+\b/, end: /$/, keywords: {
|
|
786
|
+
keyword: "if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
|
|
787
|
+
}, contains: [{ begin: /\\\n/, relevance: 0 }, e.inherit(o, { className: "string" }), {
|
|
788
|
+
className: "string", begin: /<.*?>/
|
|
789
|
+
}, t, e.C_BLOCK_COMMENT_MODE]
|
|
790
|
+
}, d = {
|
|
791
|
+
className: "title", begin: n.optional(i) + e.IDENT_RE, relevance: 0
|
|
792
|
+
}, g = n.optional(i) + e.IDENT_RE + "\\s*\\(", u = {
|
|
793
|
+
keyword: ["asm", "auto", "break", "case", "continue", "default", "do", "else", "enum", "extern", "for", "fortran", "goto", "if", "inline", "register", "restrict", "return", "sizeof", "struct", "switch", "typedef", "union", "volatile", "while", "_Alignas", "_Alignof", "_Atomic", "_Generic", "_Noreturn", "_Static_assert", "_Thread_local", "alignas", "alignof", "noreturn", "static_assert", "thread_local", "_Pragma"],
|
|
794
|
+
type: ["float", "double", "signed", "unsigned", "int", "short", "long", "char", "void", "_Bool", "_Complex", "_Imaginary", "_Decimal32", "_Decimal64", "_Decimal128", "const", "static", "complex", "bool", "imaginary"],
|
|
795
|
+
literal: "true false NULL",
|
|
796
|
+
built_in: "std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
|
|
797
|
+
}, b = [c, s, t, e.C_BLOCK_COMMENT_MODE, l, o], m = {
|
|
798
|
+
variants: [{ begin: /=/, end: /;/ }, {
|
|
799
|
+
begin: /\(/, end: /\)/
|
|
800
|
+
}, { beginKeywords: "new throw return else", end: /;/ }],
|
|
801
|
+
keywords: u, contains: b.concat([{
|
|
802
|
+
begin: /\(/, end: /\)/, keywords: u,
|
|
803
|
+
contains: b.concat(["self"]), relevance: 0
|
|
804
|
+
}]), relevance: 0
|
|
805
|
+
}, p = {
|
|
806
|
+
begin: "(" + r + "[\\*&\\s]+)+" + g, returnBegin: !0, end: /[{;=]/, excludeEnd: !0,
|
|
807
|
+
keywords: u, illegal: /[^\w\s\*&:<>.]/, contains: [{ begin: a, keywords: u, relevance: 0 }, {
|
|
808
|
+
begin: g, returnBegin: !0, contains: [e.inherit(d, { className: "title.function" })],
|
|
809
|
+
relevance: 0
|
|
810
|
+
}, { relevance: 0, match: /,/ }, {
|
|
811
|
+
className: "params", begin: /\(/, end: /\)/,
|
|
812
|
+
keywords: u, relevance: 0, contains: [t, e.C_BLOCK_COMMENT_MODE, o, l, s, {
|
|
813
|
+
begin: /\(/,
|
|
814
|
+
end: /\)/, keywords: u, relevance: 0, contains: ["self", t, e.C_BLOCK_COMMENT_MODE, o, l, s]
|
|
815
|
+
}]
|
|
816
|
+
}, s, t, e.C_BLOCK_COMMENT_MODE, c]
|
|
817
|
+
}; return {
|
|
818
|
+
name: "C", aliases: ["h"], keywords: u,
|
|
819
|
+
disableAutodetect: !0, illegal: "</", contains: [].concat(m, p, b, [c, {
|
|
820
|
+
begin: e.IDENT_RE + "::", keywords: u
|
|
821
|
+
}, {
|
|
822
|
+
className: "class",
|
|
823
|
+
beginKeywords: "enum class struct union", end: /[{;:<>=]/, contains: [{
|
|
824
|
+
beginKeywords: "final class struct"
|
|
825
|
+
}, e.TITLE_MODE]
|
|
826
|
+
}]), exports: {
|
|
827
|
+
preprocessor: c,
|
|
828
|
+
strings: o, keywords: u
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
}, grmr_cpp: e => {
|
|
832
|
+
const n = e.regex, t = e.COMMENT("//", "$", {
|
|
833
|
+
contains: [{ begin: /\\\n/ }]
|
|
834
|
+
}), a = "decltype\\(auto\\)", i = "[a-zA-Z_]\\w*::", r = "(?!struct)(" + a + "|" + n.optional(i) + "[a-zA-Z_]\\w*" + n.optional("<[^<>]+>") + ")", s = {
|
|
835
|
+
className: "type", begin: "\\b[a-z\\d_]*_t\\b"
|
|
836
|
+
}, o = {
|
|
837
|
+
className: "string", variants: [{
|
|
838
|
+
begin: '(u8?|U|L)?"', end: '"', illegal: "\\n", contains: [e.BACKSLASH_ESCAPE]
|
|
839
|
+
}, {
|
|
840
|
+
begin: "(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
|
|
841
|
+
end: "'", illegal: "."
|
|
842
|
+
}, e.END_SAME_AS_BEGIN({
|
|
843
|
+
begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/, end: /\)([^()\\ ]{0,16})"/
|
|
844
|
+
})]
|
|
845
|
+
}, l = {
|
|
846
|
+
className: "number", variants: [{ begin: "\\b(0b[01']+)" }, {
|
|
847
|
+
begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
|
|
848
|
+
}, {
|
|
849
|
+
begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
|
|
850
|
+
}], relevance: 0
|
|
851
|
+
}, c = {
|
|
852
|
+
className: "meta", begin: /#\s*[a-z]+\b/, end: /$/, keywords: {
|
|
853
|
+
keyword: "if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
|
|
854
|
+
}, contains: [{ begin: /\\\n/, relevance: 0 }, e.inherit(o, { className: "string" }), {
|
|
855
|
+
className: "string", begin: /<.*?>/
|
|
856
|
+
}, t, e.C_BLOCK_COMMENT_MODE]
|
|
857
|
+
}, d = {
|
|
858
|
+
className: "title", begin: n.optional(i) + e.IDENT_RE, relevance: 0
|
|
859
|
+
}, g = n.optional(i) + e.IDENT_RE + "\\s*\\(", u = {
|
|
860
|
+
type: ["bool", "char", "char16_t", "char32_t", "char8_t", "double", "float", "int", "long", "short", "void", "wchar_t", "unsigned", "signed", "const", "static"],
|
|
861
|
+
keyword: ["alignas", "alignof", "and", "and_eq", "asm", "atomic_cancel", "atomic_commit", "atomic_noexcept", "auto", "bitand", "bitor", "break", "case", "catch", "class", "co_await", "co_return", "co_yield", "compl", "concept", "const_cast|10", "consteval", "constexpr", "constinit", "continue", "decltype", "default", "delete", "do", "dynamic_cast|10", "else", "enum", "explicit", "export", "extern", "false", "final", "for", "friend", "goto", "if", "import", "inline", "module", "mutable", "namespace", "new", "noexcept", "not", "not_eq", "nullptr", "operator", "or", "or_eq", "override", "private", "protected", "public", "reflexpr", "register", "reinterpret_cast|10", "requires", "return", "sizeof", "static_assert", "static_cast|10", "struct", "switch", "synchronized", "template", "this", "thread_local", "throw", "transaction_safe", "transaction_safe_dynamic", "true", "try", "typedef", "typeid", "typename", "union", "using", "virtual", "volatile", "while", "xor", "xor_eq"],
|
|
862
|
+
literal: ["NULL", "false", "nullopt", "nullptr", "true"], built_in: ["_Pragma"],
|
|
863
|
+
_type_hints: ["any", "auto_ptr", "barrier", "binary_semaphore", "bitset", "complex", "condition_variable", "condition_variable_any", "counting_semaphore", "deque", "false_type", "future", "imaginary", "initializer_list", "istringstream", "jthread", "latch", "lock_guard", "multimap", "multiset", "mutex", "optional", "ostringstream", "packaged_task", "pair", "promise", "priority_queue", "queue", "recursive_mutex", "recursive_timed_mutex", "scoped_lock", "set", "shared_future", "shared_lock", "shared_mutex", "shared_timed_mutex", "shared_ptr", "stack", "string_view", "stringstream", "timed_mutex", "thread", "true_type", "tuple", "unique_lock", "unique_ptr", "unordered_map", "unordered_multimap", "unordered_multiset", "unordered_set", "variant", "vector", "weak_ptr", "wstring", "wstring_view"]
|
|
864
|
+
}, b = {
|
|
865
|
+
className: "function.dispatch", relevance: 0, keywords: {
|
|
866
|
+
_hint: ["abort", "abs", "acos", "apply", "as_const", "asin", "atan", "atan2", "calloc", "ceil", "cerr", "cin", "clog", "cos", "cosh", "cout", "declval", "endl", "exchange", "exit", "exp", "fabs", "floor", "fmod", "forward", "fprintf", "fputs", "free", "frexp", "fscanf", "future", "invoke", "isalnum", "isalpha", "iscntrl", "isdigit", "isgraph", "islower", "isprint", "ispunct", "isspace", "isupper", "isxdigit", "labs", "launder", "ldexp", "log", "log10", "make_pair", "make_shared", "make_shared_for_overwrite", "make_tuple", "make_unique", "malloc", "memchr", "memcmp", "memcpy", "memset", "modf", "move", "pow", "printf", "putchar", "puts", "realloc", "scanf", "sin", "sinh", "snprintf", "sprintf", "sqrt", "sscanf", "std", "stderr", "stdin", "stdout", "strcat", "strchr", "strcmp", "strcpy", "strcspn", "strlen", "strncat", "strncmp", "strncpy", "strpbrk", "strrchr", "strspn", "strstr", "swap", "tan", "tanh", "terminate", "to_underlying", "tolower", "toupper", "vfprintf", "visit", "vprintf", "vsprintf"]
|
|
867
|
+
},
|
|
868
|
+
begin: n.concat(/\b/, /(?!decltype)/, /(?!if)/, /(?!for)/, /(?!switch)/, /(?!while)/, e.IDENT_RE, n.lookahead(/(<[^<>]+>|)\s*\(/))
|
|
869
|
+
}, m = [b, c, s, t, e.C_BLOCK_COMMENT_MODE, l, o], p = {
|
|
870
|
+
variants: [{ begin: /=/, end: /;/ }, {
|
|
871
|
+
begin: /\(/, end: /\)/
|
|
872
|
+
}, { beginKeywords: "new throw return else", end: /;/ }],
|
|
873
|
+
keywords: u, contains: m.concat([{
|
|
874
|
+
begin: /\(/, end: /\)/, keywords: u,
|
|
875
|
+
contains: m.concat(["self"]), relevance: 0
|
|
876
|
+
}]), relevance: 0
|
|
877
|
+
}, _ = {
|
|
878
|
+
className: "function",
|
|
879
|
+
begin: "(" + r + "[\\*&\\s]+)+" + g, returnBegin: !0, end: /[{;=]/, excludeEnd: !0,
|
|
880
|
+
keywords: u, illegal: /[^\w\s\*&:<>.]/, contains: [{ begin: a, keywords: u, relevance: 0 }, {
|
|
881
|
+
begin: g, returnBegin: !0, contains: [d], relevance: 0
|
|
882
|
+
}, { begin: /::/, relevance: 0 }, {
|
|
883
|
+
begin: /:/, endsWithParent: !0, contains: [o, l]
|
|
884
|
+
}, { relevance: 0, match: /,/ }, {
|
|
885
|
+
className: "params", begin: /\(/, end: /\)/, keywords: u, relevance: 0,
|
|
886
|
+
contains: [t, e.C_BLOCK_COMMENT_MODE, o, l, s, {
|
|
887
|
+
begin: /\(/, end: /\)/, keywords: u,
|
|
888
|
+
relevance: 0, contains: ["self", t, e.C_BLOCK_COMMENT_MODE, o, l, s]
|
|
889
|
+
}]
|
|
890
|
+
}, s, t, e.C_BLOCK_COMMENT_MODE, c]
|
|
891
|
+
}; return {
|
|
892
|
+
name: "C++",
|
|
893
|
+
aliases: ["cc", "c++", "h++", "hpp", "hh", "hxx", "cxx"], keywords: u, illegal: "</",
|
|
894
|
+
classNameAliases: { "function.dispatch": "built_in" },
|
|
895
|
+
contains: [].concat(p, _, b, m, [c, {
|
|
896
|
+
begin: "\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",
|
|
897
|
+
end: ">", keywords: u, contains: ["self", s]
|
|
898
|
+
}, { begin: e.IDENT_RE + "::", keywords: u }, {
|
|
899
|
+
match: [/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/, /\s+/, /\w+/],
|
|
900
|
+
className: { 1: "keyword", 3: "title.class" }
|
|
901
|
+
}])
|
|
902
|
+
}
|
|
903
|
+
}, grmr_csharp: e => {
|
|
904
|
+
const n = {
|
|
905
|
+
keyword: ["abstract", "as", "base", "break", "case", "catch", "class", "const", "continue", "do", "else", "event", "explicit", "extern", "finally", "fixed", "for", "foreach", "goto", "if", "implicit", "in", "interface", "internal", "is", "lock", "namespace", "new", "operator", "out", "override", "params", "private", "protected", "public", "readonly", "record", "ref", "return", "scoped", "sealed", "sizeof", "stackalloc", "static", "struct", "switch", "this", "throw", "try", "typeof", "unchecked", "unsafe", "using", "virtual", "void", "volatile", "while"].concat(["add", "alias", "and", "ascending", "async", "await", "by", "descending", "equals", "from", "get", "global", "group", "init", "into", "join", "let", "nameof", "not", "notnull", "on", "or", "orderby", "partial", "remove", "select", "set", "unmanaged", "value|0", "var", "when", "where", "with", "yield"]),
|
|
906
|
+
built_in: ["bool", "byte", "char", "decimal", "delegate", "double", "dynamic", "enum", "float", "int", "long", "nint", "nuint", "object", "sbyte", "short", "string", "ulong", "uint", "ushort"],
|
|
907
|
+
literal: ["default", "false", "null", "true"]
|
|
908
|
+
}, t = e.inherit(e.TITLE_MODE, {
|
|
909
|
+
begin: "[a-zA-Z](\\.?\\w)*"
|
|
910
|
+
}), a = {
|
|
911
|
+
className: "number", variants: [{
|
|
912
|
+
begin: "\\b(0b[01']+)"
|
|
913
|
+
}, {
|
|
914
|
+
begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"
|
|
915
|
+
}, {
|
|
916
|
+
begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
|
|
917
|
+
}], relevance: 0
|
|
918
|
+
}, i = {
|
|
919
|
+
className: "string", begin: '@"', end: '"', contains: [{ begin: '""' }]
|
|
920
|
+
}, r = e.inherit(i, { illegal: /\n/ }), s = {
|
|
921
|
+
className: "subst", begin: /\{/, end: /\}/,
|
|
922
|
+
keywords: n
|
|
923
|
+
}, o = e.inherit(s, { illegal: /\n/ }), l = {
|
|
924
|
+
className: "string", begin: /\$"/,
|
|
925
|
+
end: '"', illegal: /\n/, contains: [{ begin: /\{\{/ }, {
|
|
926
|
+
begin: /\}\}/
|
|
927
|
+
}, e.BACKSLASH_ESCAPE, o]
|
|
928
|
+
}, c = {
|
|
929
|
+
className: "string", begin: /\$@"/, end: '"', contains: [{
|
|
930
|
+
begin: /\{\{/
|
|
931
|
+
}, { begin: /\}\}/ }, { begin: '""' }, s]
|
|
932
|
+
}, d = e.inherit(c, {
|
|
933
|
+
illegal: /\n/,
|
|
934
|
+
contains: [{ begin: /\{\{/ }, { begin: /\}\}/ }, { begin: '""' }, o]
|
|
935
|
+
})
|
|
936
|
+
; s.contains = [c, l, i, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, a, e.C_BLOCK_COMMENT_MODE],
|
|
937
|
+
o.contains = [d, l, r, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, a, e.inherit(e.C_BLOCK_COMMENT_MODE, {
|
|
938
|
+
illegal: /\n/
|
|
939
|
+
})]; const g = {
|
|
940
|
+
variants: [c, l, i, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE]
|
|
941
|
+
}, u = {
|
|
942
|
+
begin: "<", end: ">", contains: [{ beginKeywords: "in out" }, t]
|
|
943
|
+
}, b = e.IDENT_RE + "(<" + e.IDENT_RE + "(\\s*,\\s*" + e.IDENT_RE + ")*>)?(\\[\\])?", m = {
|
|
944
|
+
begin: "@" + e.IDENT_RE, relevance: 0
|
|
945
|
+
}; return {
|
|
946
|
+
name: "C#", aliases: ["cs", "c#"],
|
|
947
|
+
keywords: n, illegal: /::/, contains: [e.COMMENT("///", "$", {
|
|
948
|
+
returnBegin: !0,
|
|
949
|
+
contains: [{
|
|
950
|
+
className: "doctag", variants: [{ begin: "///", relevance: 0 }, {
|
|
951
|
+
begin: "\x3c!--|--\x3e"
|
|
952
|
+
}, { begin: "</?", end: ">" }]
|
|
953
|
+
}]
|
|
954
|
+
}), e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, {
|
|
955
|
+
className: "meta", begin: "#",
|
|
956
|
+
end: "$", keywords: {
|
|
957
|
+
keyword: "if else elif endif define undef warning error line region endregion pragma checksum"
|
|
958
|
+
}
|
|
959
|
+
}, g, a, {
|
|
960
|
+
beginKeywords: "class interface", relevance: 0, end: /[{;=]/,
|
|
961
|
+
illegal: /[^\s:,]/, contains: [{
|
|
962
|
+
beginKeywords: "where class"
|
|
963
|
+
}, t, u, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
964
|
+
}, {
|
|
965
|
+
beginKeywords: "namespace",
|
|
966
|
+
relevance: 0, end: /[{;=]/, illegal: /[^\s:]/,
|
|
967
|
+
contains: [t, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
968
|
+
}, {
|
|
969
|
+
beginKeywords: "record", relevance: 0, end: /[{;=]/, illegal: /[^\s:]/,
|
|
970
|
+
contains: [t, u, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
971
|
+
}, {
|
|
972
|
+
className: "meta",
|
|
973
|
+
begin: "^\\s*\\[(?=[\\w])", excludeBegin: !0, end: "\\]", excludeEnd: !0, contains: [{
|
|
974
|
+
className: "string", begin: /"/, end: /"/
|
|
975
|
+
}]
|
|
976
|
+
}, {
|
|
977
|
+
beginKeywords: "new return throw await else", relevance: 0
|
|
978
|
+
}, {
|
|
979
|
+
className: "function",
|
|
980
|
+
begin: "(" + b + "\\s+)+" + e.IDENT_RE + "\\s*(<[^=]+>\\s*)?\\(", returnBegin: !0,
|
|
981
|
+
end: /\s*[{;=]/, excludeEnd: !0, keywords: n, contains: [{
|
|
982
|
+
beginKeywords: "public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
|
|
983
|
+
relevance: 0
|
|
984
|
+
}, {
|
|
985
|
+
begin: e.IDENT_RE + "\\s*(<[^=]+>\\s*)?\\(", returnBegin: !0,
|
|
986
|
+
contains: [e.TITLE_MODE, u], relevance: 0
|
|
987
|
+
}, { match: /\(\)/ }, {
|
|
988
|
+
className: "params",
|
|
989
|
+
begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: n, relevance: 0,
|
|
990
|
+
contains: [g, a, e.C_BLOCK_COMMENT_MODE]
|
|
991
|
+
}, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
992
|
+
}, m]
|
|
993
|
+
}
|
|
994
|
+
}, grmr_css: e => {
|
|
995
|
+
const n = e.regex, t = ie(e), a = [e.APOS_STRING_MODE, e.QUOTE_STRING_MODE]; return {
|
|
996
|
+
name: "CSS", case_insensitive: !0, illegal: /[=|'\$]/, keywords: {
|
|
997
|
+
keyframePosition: "from to"
|
|
998
|
+
}, classNameAliases: { keyframePosition: "selector-tag" },
|
|
999
|
+
contains: [t.BLOCK_COMMENT, {
|
|
1000
|
+
begin: /-(webkit|moz|ms|o)-(?=[a-z])/
|
|
1001
|
+
}, t.CSS_NUMBER_MODE, {
|
|
1002
|
+
className: "selector-id", begin: /#[A-Za-z0-9_-]+/, relevance: 0
|
|
1003
|
+
}, {
|
|
1004
|
+
className: "selector-class", begin: "\\.[a-zA-Z-][a-zA-Z0-9_-]*", relevance: 0
|
|
1005
|
+
}, t.ATTRIBUTE_SELECTOR_MODE, {
|
|
1006
|
+
className: "selector-pseudo", variants: [{
|
|
1007
|
+
begin: ":(" + oe.join("|") + ")"
|
|
1008
|
+
}, { begin: ":(:)?(" + le.join("|") + ")" }]
|
|
1009
|
+
}, t.CSS_VARIABLE, { className: "attribute", begin: "\\b(" + ce.join("|") + ")\\b" }, {
|
|
1010
|
+
begin: /:/, end: /[;}{]/,
|
|
1011
|
+
contains: [t.BLOCK_COMMENT, t.HEXCOLOR, t.IMPORTANT, t.CSS_NUMBER_MODE, ...a, {
|
|
1012
|
+
begin: /(url|data-uri)\(/, end: /\)/, relevance: 0, keywords: {
|
|
1013
|
+
built_in: "url data-uri"
|
|
1014
|
+
}, contains: [...a, {
|
|
1015
|
+
className: "string", begin: /[^)]/, endsWithParent: !0,
|
|
1016
|
+
excludeEnd: !0
|
|
1017
|
+
}]
|
|
1018
|
+
}, t.FUNCTION_DISPATCH]
|
|
1019
|
+
}, {
|
|
1020
|
+
begin: n.lookahead(/@/), end: "[{;]",
|
|
1021
|
+
relevance: 0, illegal: /:/, contains: [{
|
|
1022
|
+
className: "keyword", begin: /@-?\w[\w]*(-\w+)*/
|
|
1023
|
+
}, {
|
|
1024
|
+
begin: /\s/, endsWithParent: !0, excludeEnd: !0, relevance: 0, keywords: {
|
|
1025
|
+
$pattern: /[a-z-]+/, keyword: "and or not only", attribute: se.join(" ")
|
|
1026
|
+
}, contains: [{
|
|
1027
|
+
begin: /[a-z-]+(?=:)/, className: "attribute"
|
|
1028
|
+
}, ...a, t.CSS_NUMBER_MODE]
|
|
1029
|
+
}]
|
|
1030
|
+
}, {
|
|
1031
|
+
className: "selector-tag", begin: "\\b(" + re.join("|") + ")\\b"
|
|
1032
|
+
}]
|
|
1033
|
+
}
|
|
1034
|
+
}, grmr_diff: e => {
|
|
1035
|
+
const n = e.regex; return {
|
|
1036
|
+
name: "Diff", aliases: ["patch"], contains: [{
|
|
1037
|
+
className: "meta", relevance: 10,
|
|
1038
|
+
match: n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/, /^\*\*\* +\d+,\d+ +\*\*\*\*$/, /^--- +\d+,\d+ +----$/)
|
|
1039
|
+
}, {
|
|
1040
|
+
className: "comment", variants: [{
|
|
1041
|
+
begin: n.either(/Index: /, /^index/, /={3,}/, /^-{3}/, /^\*{3} /, /^\+{3}/, /^diff --git/),
|
|
1042
|
+
end: /$/
|
|
1043
|
+
}, { match: /^\*{15}$/ }]
|
|
1044
|
+
}, { className: "addition", begin: /^\+/, end: /$/ }, {
|
|
1045
|
+
className: "deletion", begin: /^-/, end: /$/
|
|
1046
|
+
}, {
|
|
1047
|
+
className: "addition", begin: /^!/,
|
|
1048
|
+
end: /$/
|
|
1049
|
+
}]
|
|
1050
|
+
}
|
|
1051
|
+
}, grmr_go: e => {
|
|
1052
|
+
const n = {
|
|
1053
|
+
keyword: ["break", "case", "chan", "const", "continue", "default", "defer", "else", "fallthrough", "for", "func", "go", "goto", "if", "import", "interface", "map", "package", "range", "return", "select", "struct", "switch", "type", "var"],
|
|
1054
|
+
type: ["bool", "byte", "complex64", "complex128", "error", "float32", "float64", "int8", "int16", "int32", "int64", "string", "uint8", "uint16", "uint32", "uint64", "int", "uint", "uintptr", "rune"],
|
|
1055
|
+
literal: ["true", "false", "iota", "nil"],
|
|
1056
|
+
built_in: ["append", "cap", "close", "complex", "copy", "imag", "len", "make", "new", "panic", "print", "println", "real", "recover", "delete"]
|
|
1057
|
+
}; return {
|
|
1058
|
+
name: "Go", aliases: ["golang"], keywords: n, illegal: "</",
|
|
1059
|
+
contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, {
|
|
1060
|
+
className: "string",
|
|
1061
|
+
variants: [e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, { begin: "`", end: "`" }]
|
|
1062
|
+
}, {
|
|
1063
|
+
className: "number", variants: [{
|
|
1064
|
+
begin: e.C_NUMBER_RE + "[i]", relevance: 1
|
|
1065
|
+
}, e.C_NUMBER_MODE]
|
|
1066
|
+
}, { begin: /:=/ }, {
|
|
1067
|
+
className: "function", beginKeywords: "func",
|
|
1068
|
+
end: "\\s*(\\{|$)", excludeEnd: !0, contains: [e.TITLE_MODE, {
|
|
1069
|
+
className: "params",
|
|
1070
|
+
begin: /\(/, end: /\)/, endsParent: !0, keywords: n, illegal: /["']/
|
|
1071
|
+
}]
|
|
1072
|
+
}]
|
|
1073
|
+
}
|
|
1074
|
+
},
|
|
1075
|
+
grmr_graphql: e => {
|
|
1076
|
+
const n = e.regex; return {
|
|
1077
|
+
name: "GraphQL", aliases: ["gql"],
|
|
1078
|
+
case_insensitive: !0, disableAutodetect: !1, keywords: {
|
|
1079
|
+
keyword: ["query", "mutation", "subscription", "type", "input", "schema", "directive", "interface", "union", "scalar", "fragment", "enum", "on"],
|
|
1080
|
+
literal: ["true", "false", "null"]
|
|
1081
|
+
},
|
|
1082
|
+
contains: [e.HASH_COMMENT_MODE, e.QUOTE_STRING_MODE, e.NUMBER_MODE, {
|
|
1083
|
+
scope: "punctuation", match: /[.]{3}/, relevance: 0
|
|
1084
|
+
}, {
|
|
1085
|
+
scope: "punctuation",
|
|
1086
|
+
begin: /[\!\(\)\:\=\[\]\{\|\}]{1}/, relevance: 0
|
|
1087
|
+
}, {
|
|
1088
|
+
scope: "variable", begin: /\$/,
|
|
1089
|
+
end: /\W/, excludeEnd: !0, relevance: 0
|
|
1090
|
+
}, { scope: "meta", match: /@\w+/, excludeEnd: !0 }, {
|
|
1091
|
+
scope: "symbol", begin: n.concat(/[_A-Za-z][_0-9A-Za-z]*/, n.lookahead(/\s*:/)),
|
|
1092
|
+
relevance: 0
|
|
1093
|
+
}], illegal: [/[;<']/, /BEGIN/]
|
|
1094
|
+
}
|
|
1095
|
+
}, grmr_ini: e => {
|
|
1096
|
+
const n = e.regex, t = {
|
|
1097
|
+
className: "number", relevance: 0, variants: [{ begin: /([+-]+)?[\d]+_[\d_]+/ }, {
|
|
1098
|
+
begin: e.NUMBER_RE
|
|
1099
|
+
}]
|
|
1100
|
+
}, a = e.COMMENT(); a.variants = [{ begin: /;/, end: /$/ }, {
|
|
1101
|
+
begin: /#/,
|
|
1102
|
+
end: /$/
|
|
1103
|
+
}]; const i = {
|
|
1104
|
+
className: "variable", variants: [{ begin: /\$[\w\d"][\w\d_]*/ }, {
|
|
1105
|
+
begin: /\$\{(.*?)\}/
|
|
1106
|
+
}]
|
|
1107
|
+
}, r = {
|
|
1108
|
+
className: "literal",
|
|
1109
|
+
begin: /\bon|off|true|false|yes|no\b/
|
|
1110
|
+
}, s = {
|
|
1111
|
+
className: "string",
|
|
1112
|
+
contains: [e.BACKSLASH_ESCAPE], variants: [{ begin: "'''", end: "'''", relevance: 10 }, {
|
|
1113
|
+
begin: '"""', end: '"""', relevance: 10
|
|
1114
|
+
}, { begin: '"', end: '"' }, { begin: "'", end: "'" }]
|
|
1115
|
+
}, o = {
|
|
1116
|
+
begin: /\[/, end: /\]/, contains: [a, r, i, s, t, "self"], relevance: 0
|
|
1117
|
+
}, l = n.either(/[A-Za-z0-9_-]+/, /"(\\"|[^"])*"/, /'[^']*'/); return {
|
|
1118
|
+
name: "TOML, also INI", aliases: ["toml"], case_insensitive: !0, illegal: /\S/,
|
|
1119
|
+
contains: [a, { className: "section", begin: /\[+/, end: /\]+/ }, {
|
|
1120
|
+
begin: n.concat(l, "(\\s*\\.\\s*", l, ")*", n.lookahead(/\s*=\s*[^#\s]/)),
|
|
1121
|
+
className: "attr", starts: { end: /$/, contains: [a, o, r, i, s, t] }
|
|
1122
|
+
}]
|
|
1123
|
+
}
|
|
1124
|
+
}, grmr_java: e => {
|
|
1125
|
+
const n = e.regex, t = "[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*", a = t + pe("(?:<" + t + "~~~(?:\\s*,\\s*" + t + "~~~)*>)?", /~~~/g, 2), i = {
|
|
1126
|
+
keyword: ["synchronized", "abstract", "private", "var", "static", "if", "const ", "for", "while", "strictfp", "finally", "protected", "import", "native", "final", "void", "enum", "else", "break", "transient", "catch", "instanceof", "volatile", "case", "assert", "package", "default", "public", "try", "switch", "continue", "throws", "protected", "public", "private", "module", "requires", "exports", "do", "sealed", "yield", "permits"],
|
|
1127
|
+
literal: ["false", "true", "null"],
|
|
1128
|
+
type: ["char", "boolean", "long", "float", "int", "byte", "short", "double"],
|
|
1129
|
+
built_in: ["super", "this"]
|
|
1130
|
+
}, r = {
|
|
1131
|
+
className: "meta", begin: "@" + t, contains: [{
|
|
1132
|
+
begin: /\(/, end: /\)/, contains: ["self"]
|
|
1133
|
+
}]
|
|
1134
|
+
}, s = {
|
|
1135
|
+
className: "params", begin: /\(/,
|
|
1136
|
+
end: /\)/, keywords: i, relevance: 0, contains: [e.C_BLOCK_COMMENT_MODE], endsParent: !0
|
|
1137
|
+
}
|
|
1138
|
+
; return {
|
|
1139
|
+
name: "Java", aliases: ["jsp"], keywords: i, illegal: /<\/|#/,
|
|
1140
|
+
contains: [e.COMMENT("/\\*\\*", "\\*/", {
|
|
1141
|
+
relevance: 0, contains: [{
|
|
1142
|
+
begin: /\w+@/,
|
|
1143
|
+
relevance: 0
|
|
1144
|
+
}, { className: "doctag", begin: "@[A-Za-z]+" }]
|
|
1145
|
+
}), {
|
|
1146
|
+
begin: /import java\.[a-z]+\./, keywords: "import", relevance: 2
|
|
1147
|
+
}, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, {
|
|
1148
|
+
begin: /"""/, end: /"""/,
|
|
1149
|
+
className: "string", contains: [e.BACKSLASH_ESCAPE]
|
|
1150
|
+
}, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, {
|
|
1151
|
+
match: [/\b(?:class|interface|enum|extends|implements|new)/, /\s+/, t], className: {
|
|
1152
|
+
1: "keyword", 3: "title.class"
|
|
1153
|
+
}
|
|
1154
|
+
}, { match: /non-sealed/, scope: "keyword" }, {
|
|
1155
|
+
begin: [n.concat(/(?!else)/, t), /\s+/, t, /\s+/, /=(?!=)/], className: {
|
|
1156
|
+
1: "type",
|
|
1157
|
+
3: "variable", 5: "operator"
|
|
1158
|
+
}
|
|
1159
|
+
}, {
|
|
1160
|
+
begin: [/record/, /\s+/, t], className: {
|
|
1161
|
+
1: "keyword",
|
|
1162
|
+
3: "title.class"
|
|
1163
|
+
}, contains: [s, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
1164
|
+
}, {
|
|
1165
|
+
beginKeywords: "new throw return else", relevance: 0
|
|
1166
|
+
}, {
|
|
1167
|
+
begin: ["(?:" + a + "\\s+)", e.UNDERSCORE_IDENT_RE, /\s*(?=\()/], className: {
|
|
1168
|
+
2: "title.function"
|
|
1169
|
+
}, keywords: i, contains: [{
|
|
1170
|
+
className: "params", begin: /\(/,
|
|
1171
|
+
end: /\)/, keywords: i, relevance: 0,
|
|
1172
|
+
contains: [r, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, me, e.C_BLOCK_COMMENT_MODE]
|
|
1173
|
+
}, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
1174
|
+
}, me, r]
|
|
1175
|
+
}
|
|
1176
|
+
}, grmr_javascript: Oe,
|
|
1177
|
+
grmr_json: e => {
|
|
1178
|
+
const n = ["true", "false", "null"], t = {
|
|
1179
|
+
scope: "literal",
|
|
1180
|
+
beginKeywords: n.join(" ")
|
|
1181
|
+
}; return {
|
|
1182
|
+
name: "JSON", keywords: { literal: n }, contains: [{
|
|
1183
|
+
className: "attr", begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/, relevance: 1.01
|
|
1184
|
+
}, {
|
|
1185
|
+
match: /[{}[\],:]/, className: "punctuation", relevance: 0
|
|
1186
|
+
}, e.QUOTE_STRING_MODE, t, e.C_NUMBER_MODE, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE],
|
|
1187
|
+
illegal: "\\S"
|
|
1188
|
+
}
|
|
1189
|
+
}, grmr_kotlin: e => {
|
|
1190
|
+
const n = {
|
|
1191
|
+
keyword: "abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
|
|
1192
|
+
built_in: "Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
|
|
1193
|
+
literal: "true false null"
|
|
1194
|
+
}, t = {
|
|
1195
|
+
className: "symbol", begin: e.UNDERSCORE_IDENT_RE + "@"
|
|
1196
|
+
}, a = { className: "subst", begin: /\$\{/, end: /\}/, contains: [e.C_NUMBER_MODE] }, i = {
|
|
1197
|
+
className: "variable", begin: "\\$" + e.UNDERSCORE_IDENT_RE
|
|
1198
|
+
}, r = {
|
|
1199
|
+
className: "string",
|
|
1200
|
+
variants: [{ begin: '"""', end: '"""(?=[^"])', contains: [i, a] }, {
|
|
1201
|
+
begin: "'", end: "'",
|
|
1202
|
+
illegal: /\n/, contains: [e.BACKSLASH_ESCAPE]
|
|
1203
|
+
}, {
|
|
1204
|
+
begin: '"', end: '"', illegal: /\n/,
|
|
1205
|
+
contains: [e.BACKSLASH_ESCAPE, i, a]
|
|
1206
|
+
}]
|
|
1207
|
+
}; a.contains.push(r); const s = {
|
|
1208
|
+
className: "meta",
|
|
1209
|
+
begin: "@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*" + e.UNDERSCORE_IDENT_RE + ")?"
|
|
1210
|
+
}, o = {
|
|
1211
|
+
className: "meta", begin: "@" + e.UNDERSCORE_IDENT_RE, contains: [{
|
|
1212
|
+
begin: /\(/,
|
|
1213
|
+
end: /\)/, contains: [e.inherit(r, { className: "string" }), "self"]
|
|
1214
|
+
}]
|
|
1215
|
+
}, l = me, c = e.COMMENT("/\\*", "\\*/", { contains: [e.C_BLOCK_COMMENT_MODE] }), d = {
|
|
1216
|
+
variants: [{ className: "type", begin: e.UNDERSCORE_IDENT_RE }, {
|
|
1217
|
+
begin: /\(/, end: /\)/,
|
|
1218
|
+
contains: []
|
|
1219
|
+
}]
|
|
1220
|
+
}, g = d; return g.variants[1].contains = [d], d.variants[1].contains = [g],
|
|
1221
|
+
{
|
|
1222
|
+
name: "Kotlin", aliases: ["kt", "kts"], keywords: n,
|
|
1223
|
+
contains: [e.COMMENT("/\\*\\*", "\\*/", {
|
|
1224
|
+
relevance: 0, contains: [{
|
|
1225
|
+
className: "doctag",
|
|
1226
|
+
begin: "@[A-Za-z]+"
|
|
1227
|
+
}]
|
|
1228
|
+
}), e.C_LINE_COMMENT_MODE, c, {
|
|
1229
|
+
className: "keyword",
|
|
1230
|
+
begin: /\b(break|continue|return|this)\b/, starts: {
|
|
1231
|
+
contains: [{
|
|
1232
|
+
className: "symbol",
|
|
1233
|
+
begin: /@\w+/
|
|
1234
|
+
}]
|
|
1235
|
+
}
|
|
1236
|
+
}, t, s, o, {
|
|
1237
|
+
className: "function", beginKeywords: "fun", end: "[(]|$",
|
|
1238
|
+
returnBegin: !0, excludeEnd: !0, keywords: n, relevance: 5, contains: [{
|
|
1239
|
+
begin: e.UNDERSCORE_IDENT_RE + "\\s*\\(", returnBegin: !0, relevance: 0,
|
|
1240
|
+
contains: [e.UNDERSCORE_TITLE_MODE]
|
|
1241
|
+
}, {
|
|
1242
|
+
className: "type", begin: /</, end: />/,
|
|
1243
|
+
keywords: "reified", relevance: 0
|
|
1244
|
+
}, {
|
|
1245
|
+
className: "params", begin: /\(/, end: /\)/,
|
|
1246
|
+
endsParent: !0, keywords: n, relevance: 0, contains: [{
|
|
1247
|
+
begin: /:/, end: /[=,\/]/,
|
|
1248
|
+
endsWithParent: !0, contains: [d, e.C_LINE_COMMENT_MODE, c], relevance: 0
|
|
1249
|
+
}, e.C_LINE_COMMENT_MODE, c, s, o, r, e.C_NUMBER_MODE]
|
|
1250
|
+
}, c]
|
|
1251
|
+
}, {
|
|
1252
|
+
begin: [/class|interface|trait/, /\s+/, e.UNDERSCORE_IDENT_RE], beginScope: {
|
|
1253
|
+
3: "title.class"
|
|
1254
|
+
}, keywords: "class interface trait", end: /[:\{(]|$/, excludeEnd: !0,
|
|
1255
|
+
illegal: "extends implements", contains: [{
|
|
1256
|
+
beginKeywords: "public protected internal private constructor"
|
|
1257
|
+
}, e.UNDERSCORE_TITLE_MODE, {
|
|
1258
|
+
className: "type", begin: /</, end: />/, excludeBegin: !0,
|
|
1259
|
+
excludeEnd: !0, relevance: 0
|
|
1260
|
+
}, {
|
|
1261
|
+
className: "type", begin: /[,:]\s*/, end: /[<\(,){\s]|$/,
|
|
1262
|
+
excludeBegin: !0, returnEnd: !0
|
|
1263
|
+
}, s, o]
|
|
1264
|
+
}, r, {
|
|
1265
|
+
className: "meta", begin: "^#!/usr/bin/env",
|
|
1266
|
+
end: "$", illegal: "\n"
|
|
1267
|
+
}, l]
|
|
1268
|
+
}
|
|
1269
|
+
}, grmr_less: e => {
|
|
1270
|
+
const n = ie(e), t = de, a = "[\\w-]+", i = "(" + a + "|@\\{" + a + "\\})", r = [], s = [], o = e => ({
|
|
1271
|
+
className: "string", begin: "~?" + e + ".*?" + e
|
|
1272
|
+
}), l = (e, n, t) => ({
|
|
1273
|
+
className: e, begin: n,
|
|
1274
|
+
relevance: t
|
|
1275
|
+
}), c = {
|
|
1276
|
+
$pattern: /[a-z-]+/, keyword: "and or not only",
|
|
1277
|
+
attribute: se.join(" ")
|
|
1278
|
+
}, d = {
|
|
1279
|
+
begin: "\\(", end: "\\)", contains: s, keywords: c,
|
|
1280
|
+
relevance: 0
|
|
1281
|
+
}
|
|
1282
|
+
; s.push(e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, o("'"), o('"'), n.CSS_NUMBER_MODE, {
|
|
1283
|
+
begin: "(url|data-uri)\\(", starts: {
|
|
1284
|
+
className: "string", end: "[\\)\\n]",
|
|
1285
|
+
excludeEnd: !0
|
|
1286
|
+
}
|
|
1287
|
+
}, n.HEXCOLOR, d, l("variable", "@@?" + a, 10), l("variable", "@\\{" + a + "\\}"), l("built_in", "~?`[^`]*?`"), {
|
|
1288
|
+
className: "attribute", begin: a + "\\s*:", end: ":", returnBegin: !0, excludeEnd: !0
|
|
1289
|
+
}, n.IMPORTANT, { beginKeywords: "and not" }, n.FUNCTION_DISPATCH); const g = s.concat({
|
|
1290
|
+
begin: /\{/, end: /\}/, contains: r
|
|
1291
|
+
}), u = {
|
|
1292
|
+
beginKeywords: "when", endsWithParent: !0,
|
|
1293
|
+
contains: [{ beginKeywords: "and not" }].concat(s)
|
|
1294
|
+
}, b = {
|
|
1295
|
+
begin: i + "\\s*:",
|
|
1296
|
+
returnBegin: !0, end: /[;}]/, relevance: 0, contains: [{
|
|
1297
|
+
begin: /-(webkit|moz|ms|o)-/
|
|
1298
|
+
}, n.CSS_VARIABLE, {
|
|
1299
|
+
className: "attribute", begin: "\\b(" + ce.join("|") + ")\\b",
|
|
1300
|
+
end: /(?=:)/, starts: { endsWithParent: !0, illegal: "[<=$]", relevance: 0, contains: s }
|
|
1301
|
+
}]
|
|
1302
|
+
}, m = {
|
|
1303
|
+
className: "keyword",
|
|
1304
|
+
begin: "@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
|
|
1305
|
+
starts: { end: "[;{}]", keywords: c, returnEnd: !0, contains: s, relevance: 0 }
|
|
1306
|
+
}, p = {
|
|
1307
|
+
className: "variable", variants: [{ begin: "@" + a + "\\s*:", relevance: 15 }, {
|
|
1308
|
+
begin: "@" + a
|
|
1309
|
+
}], starts: { end: "[;}]", returnEnd: !0, contains: g }
|
|
1310
|
+
}, _ = {
|
|
1311
|
+
variants: [{
|
|
1312
|
+
begin: "[\\.#:&\\[>]", end: "[;{}]"
|
|
1313
|
+
}, { begin: i, end: /\{/ }], returnBegin: !0,
|
|
1314
|
+
returnEnd: !0, illegal: "[<='$\"]", relevance: 0,
|
|
1315
|
+
contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, u, l("keyword", "all\\b"), l("variable", "@\\{" + a + "\\}"), {
|
|
1316
|
+
begin: "\\b(" + re.join("|") + ")\\b", className: "selector-tag"
|
|
1317
|
+
}, n.CSS_NUMBER_MODE, l("selector-tag", i, 0), l("selector-id", "#" + i), l("selector-class", "\\." + i, 0), l("selector-tag", "&", 0), n.ATTRIBUTE_SELECTOR_MODE, {
|
|
1318
|
+
className: "selector-pseudo", begin: ":(" + oe.join("|") + ")"
|
|
1319
|
+
}, {
|
|
1320
|
+
className: "selector-pseudo", begin: ":(:)?(" + le.join("|") + ")"
|
|
1321
|
+
}, {
|
|
1322
|
+
begin: /\(/,
|
|
1323
|
+
end: /\)/, relevance: 0, contains: g
|
|
1324
|
+
}, { begin: "!important" }, n.FUNCTION_DISPATCH]
|
|
1325
|
+
}, h = {
|
|
1326
|
+
begin: a + ":(:)?" + `(${t.join("|")})`, returnBegin: !0, contains: [_]
|
|
1327
|
+
}
|
|
1328
|
+
; return r.push(e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, m, p, h, b, _, u, n.FUNCTION_DISPATCH),
|
|
1329
|
+
{ name: "Less", case_insensitive: !0, illegal: "[=>'/<($\"]", contains: r }
|
|
1330
|
+
},
|
|
1331
|
+
grmr_lua: e => {
|
|
1332
|
+
const n = "\\[=*\\[", t = "\\]=*\\]", a = {
|
|
1333
|
+
begin: n, end: t, contains: ["self"]
|
|
1334
|
+
}, i = [e.COMMENT("--(?!" + n + ")", "$"), e.COMMENT("--" + n, t, {
|
|
1335
|
+
contains: [a], relevance: 10
|
|
1336
|
+
})]; return {
|
|
1337
|
+
name: "Lua", keywords: {
|
|
1338
|
+
$pattern: e.UNDERSCORE_IDENT_RE,
|
|
1339
|
+
literal: "true false nil",
|
|
1340
|
+
keyword: "and break do else elseif end for goto if in local not or repeat return then until while",
|
|
1341
|
+
built_in: "_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
|
|
1342
|
+
}, contains: i.concat([{
|
|
1343
|
+
className: "function", beginKeywords: "function", end: "\\)",
|
|
1344
|
+
contains: [e.inherit(e.TITLE_MODE, {
|
|
1345
|
+
begin: "([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"
|
|
1346
|
+
}), {
|
|
1347
|
+
className: "params",
|
|
1348
|
+
begin: "\\(", endsWithParent: !0, contains: i
|
|
1349
|
+
}].concat(i)
|
|
1350
|
+
}, e.C_NUMBER_MODE, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE, {
|
|
1351
|
+
className: "string",
|
|
1352
|
+
begin: n, end: t, contains: [a], relevance: 5
|
|
1353
|
+
}])
|
|
1354
|
+
}
|
|
1355
|
+
}, grmr_makefile: e => {
|
|
1356
|
+
const n = {
|
|
1357
|
+
className: "variable", variants: [{
|
|
1358
|
+
begin: "\\$\\(" + e.UNDERSCORE_IDENT_RE + "\\)",
|
|
1359
|
+
contains: [e.BACKSLASH_ESCAPE]
|
|
1360
|
+
}, { begin: /\$[@%<?\^\+\*]/ }]
|
|
1361
|
+
}, t = {
|
|
1362
|
+
className: "string",
|
|
1363
|
+
begin: /"/, end: /"/, contains: [e.BACKSLASH_ESCAPE, n]
|
|
1364
|
+
}, a = {
|
|
1365
|
+
className: "variable",
|
|
1366
|
+
begin: /\$\([\w-]+\s/, end: /\)/, keywords: {
|
|
1367
|
+
built_in: "subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
|
|
1368
|
+
}, contains: [n]
|
|
1369
|
+
}, i = { begin: "^" + e.UNDERSCORE_IDENT_RE + "\\s*(?=[:+?]?=)" }, r = {
|
|
1370
|
+
className: "section", begin: /^[^\s]+:/, end: /$/, contains: [n]
|
|
1371
|
+
}; return {
|
|
1372
|
+
name: "Makefile", aliases: ["mk", "mak", "make"], keywords: {
|
|
1373
|
+
$pattern: /[\w-]+/,
|
|
1374
|
+
keyword: "define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
|
|
1375
|
+
}, contains: [e.HASH_COMMENT_MODE, n, t, a, i, {
|
|
1376
|
+
className: "meta", begin: /^\.PHONY:/,
|
|
1377
|
+
end: /$/, keywords: { $pattern: /[\.\w]+/, keyword: ".PHONY" }
|
|
1378
|
+
}, r]
|
|
1379
|
+
}
|
|
1380
|
+
}, grmr_markdown: e => {
|
|
1381
|
+
const n = { begin: /<\/?[A-Za-z_]/, end: ">", subLanguage: "xml", relevance: 0 }, t = {
|
|
1382
|
+
variants: [{ begin: /\[.+?\]\[.*?\]/, relevance: 0 }, {
|
|
1383
|
+
begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
|
|
1384
|
+
relevance: 2
|
|
1385
|
+
}, {
|
|
1386
|
+
begin: e.regex.concat(/\[.+?\]\(/, /[A-Za-z][A-Za-z0-9+.-]*/, /:\/\/.*?\)/),
|
|
1387
|
+
relevance: 2
|
|
1388
|
+
}, { begin: /\[.+?\]\([./?&#].*?\)/, relevance: 1 }, {
|
|
1389
|
+
begin: /\[.*?\]\(.*?\)/, relevance: 0
|
|
1390
|
+
}], returnBegin: !0, contains: [{
|
|
1391
|
+
match: /\[(?=\])/
|
|
1392
|
+
}, {
|
|
1393
|
+
className: "string", relevance: 0, begin: "\\[", end: "\\]", excludeBegin: !0,
|
|
1394
|
+
returnEnd: !0
|
|
1395
|
+
}, {
|
|
1396
|
+
className: "link", relevance: 0, begin: "\\]\\(", end: "\\)",
|
|
1397
|
+
excludeBegin: !0, excludeEnd: !0
|
|
1398
|
+
}, {
|
|
1399
|
+
className: "symbol", relevance: 0, begin: "\\]\\[",
|
|
1400
|
+
end: "\\]", excludeBegin: !0, excludeEnd: !0
|
|
1401
|
+
}]
|
|
1402
|
+
}, a = {
|
|
1403
|
+
className: "strong", contains: [],
|
|
1404
|
+
variants: [{ begin: /_{2}(?!\s)/, end: /_{2}/ }, { begin: /\*{2}(?!\s)/, end: /\*{2}/ }]
|
|
1405
|
+
}, i = {
|
|
1406
|
+
className: "emphasis", contains: [], variants: [{ begin: /\*(?![*\s])/, end: /\*/ }, {
|
|
1407
|
+
begin: /_(?![_\s])/, end: /_/, relevance: 0
|
|
1408
|
+
}]
|
|
1409
|
+
}, r = e.inherit(a, {
|
|
1410
|
+
contains: []
|
|
1411
|
+
}), s = e.inherit(i, { contains: [] }); a.contains.push(s), i.contains.push(r)
|
|
1412
|
+
; let o = [n, t]; return [a, i, r, s].forEach((e => {
|
|
1413
|
+
e.contains = e.contains.concat(o)
|
|
1414
|
+
})), o = o.concat(a, i), {
|
|
1415
|
+
name: "Markdown", aliases: ["md", "mkdown", "mkd"], contains: [{
|
|
1416
|
+
className: "section", variants: [{ begin: "^#{1,6}", end: "$", contains: o }, {
|
|
1417
|
+
begin: "(?=^.+?\\n[=-]{2,}$)", contains: [{ begin: "^[=-]*$" }, {
|
|
1418
|
+
begin: "^", end: "\\n",
|
|
1419
|
+
contains: o
|
|
1420
|
+
}]
|
|
1421
|
+
}]
|
|
1422
|
+
}, n, {
|
|
1423
|
+
className: "bullet", begin: "^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
|
|
1424
|
+
end: "\\s+", excludeEnd: !0
|
|
1425
|
+
}, a, i, {
|
|
1426
|
+
className: "quote", begin: "^>\\s+", contains: o,
|
|
1427
|
+
end: "$"
|
|
1428
|
+
}, {
|
|
1429
|
+
className: "code", variants: [{ begin: "(`{3,})[^`](.|\\n)*?\\1`*[ ]*" }, {
|
|
1430
|
+
begin: "(~{3,})[^~](.|\\n)*?\\1~*[ ]*"
|
|
1431
|
+
}, { begin: "```", end: "```+[ ]*$" }, {
|
|
1432
|
+
begin: "~~~", end: "~~~+[ ]*$"
|
|
1433
|
+
}, { begin: "`.+?`" }, {
|
|
1434
|
+
begin: "(?=^( {4}|\\t))",
|
|
1435
|
+
contains: [{ begin: "^( {4}|\\t)", end: "(\\n)$" }], relevance: 0
|
|
1436
|
+
}]
|
|
1437
|
+
}, {
|
|
1438
|
+
begin: "^[-\\*]{3,}", end: "$"
|
|
1439
|
+
}, t, {
|
|
1440
|
+
begin: /^\[[^\n]+\]:/, returnBegin: !0, contains: [{
|
|
1441
|
+
className: "symbol", begin: /\[/, end: /\]/, excludeBegin: !0, excludeEnd: !0
|
|
1442
|
+
}, {
|
|
1443
|
+
className: "link", begin: /:\s*/, end: /$/, excludeBegin: !0
|
|
1444
|
+
}]
|
|
1445
|
+
}]
|
|
1446
|
+
}
|
|
1447
|
+
}, grmr_objectivec: e => {
|
|
1448
|
+
const n = /[a-zA-Z@][a-zA-Z0-9_]*/, t = {
|
|
1449
|
+
$pattern: n,
|
|
1450
|
+
keyword: ["@interface", "@class", "@protocol", "@implementation"]
|
|
1451
|
+
}; return {
|
|
1452
|
+
name: "Objective-C", aliases: ["mm", "objc", "obj-c", "obj-c++", "objective-c++"],
|
|
1453
|
+
keywords: {
|
|
1454
|
+
"variable.language": ["this", "super"], $pattern: n,
|
|
1455
|
+
keyword: ["while", "export", "sizeof", "typedef", "const", "struct", "for", "union", "volatile", "static", "mutable", "if", "do", "return", "goto", "enum", "else", "break", "extern", "asm", "case", "default", "register", "explicit", "typename", "switch", "continue", "inline", "readonly", "assign", "readwrite", "self", "@synchronized", "id", "typeof", "nonatomic", "IBOutlet", "IBAction", "strong", "weak", "copy", "in", "out", "inout", "bycopy", "byref", "oneway", "__strong", "__weak", "__block", "__autoreleasing", "@private", "@protected", "@public", "@try", "@property", "@end", "@throw", "@catch", "@finally", "@autoreleasepool", "@synthesize", "@dynamic", "@selector", "@optional", "@required", "@encode", "@package", "@import", "@defs", "@compatibility_alias", "__bridge", "__bridge_transfer", "__bridge_retained", "__bridge_retain", "__covariant", "__contravariant", "__kindof", "_Nonnull", "_Nullable", "_Null_unspecified", "__FUNCTION__", "__PRETTY_FUNCTION__", "__attribute__", "getter", "setter", "retain", "unsafe_unretained", "nonnull", "nullable", "null_unspecified", "null_resettable", "class", "instancetype", "NS_DESIGNATED_INITIALIZER", "NS_UNAVAILABLE", "NS_REQUIRES_SUPER", "NS_RETURNS_INNER_POINTER", "NS_INLINE", "NS_AVAILABLE", "NS_DEPRECATED", "NS_ENUM", "NS_OPTIONS", "NS_SWIFT_UNAVAILABLE", "NS_ASSUME_NONNULL_BEGIN", "NS_ASSUME_NONNULL_END", "NS_REFINED_FOR_SWIFT", "NS_SWIFT_NAME", "NS_SWIFT_NOTHROW", "NS_DURING", "NS_HANDLER", "NS_ENDHANDLER", "NS_VALUERETURN", "NS_VOIDRETURN"],
|
|
1456
|
+
literal: ["false", "true", "FALSE", "TRUE", "nil", "YES", "NO", "NULL"],
|
|
1457
|
+
built_in: ["dispatch_once_t", "dispatch_queue_t", "dispatch_sync", "dispatch_async", "dispatch_once"],
|
|
1458
|
+
type: ["int", "float", "char", "unsigned", "signed", "short", "long", "double", "wchar_t", "unichar", "void", "bool", "BOOL", "id|0", "_Bool"]
|
|
1459
|
+
}, illegal: "</", contains: [{
|
|
1460
|
+
className: "built_in",
|
|
1461
|
+
begin: "\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
|
|
1462
|
+
}, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, e.C_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, {
|
|
1463
|
+
className: "string", variants: [{
|
|
1464
|
+
begin: '@"', end: '"', illegal: "\\n",
|
|
1465
|
+
contains: [e.BACKSLASH_ESCAPE]
|
|
1466
|
+
}]
|
|
1467
|
+
}, {
|
|
1468
|
+
className: "meta", begin: /#\s*[a-z]+\b/, end: /$/,
|
|
1469
|
+
keywords: {
|
|
1470
|
+
keyword: "if else elif endif define undef warning error line pragma ifdef ifndef include"
|
|
1471
|
+
}, contains: [{ begin: /\\\n/, relevance: 0 }, e.inherit(e.QUOTE_STRING_MODE, {
|
|
1472
|
+
className: "string"
|
|
1473
|
+
}), {
|
|
1474
|
+
className: "string", begin: /<.*?>/, end: /$/, illegal: "\\n"
|
|
1475
|
+
}, e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE]
|
|
1476
|
+
}, {
|
|
1477
|
+
className: "class",
|
|
1478
|
+
begin: "(" + t.keyword.join("|") + ")\\b", end: /(\{|$)/, excludeEnd: !0, keywords: t,
|
|
1479
|
+
contains: [e.UNDERSCORE_TITLE_MODE]
|
|
1480
|
+
}, {
|
|
1481
|
+
begin: "\\." + e.UNDERSCORE_IDENT_RE,
|
|
1482
|
+
relevance: 0
|
|
1483
|
+
}]
|
|
1484
|
+
}
|
|
1485
|
+
}, grmr_perl: e => {
|
|
1486
|
+
const n = e.regex, t = /[dualxmsipngr]{0,12}/, a = {
|
|
1487
|
+
$pattern: /[\w.]+/,
|
|
1488
|
+
keyword: "abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
|
|
1489
|
+
}, i = { className: "subst", begin: "[$@]\\{", end: "\\}", keywords: a }, r = {
|
|
1490
|
+
begin: /->\{/,
|
|
1491
|
+
end: /\}/
|
|
1492
|
+
}, s = {
|
|
1493
|
+
variants: [{ begin: /\$\d/ }, {
|
|
1494
|
+
begin: n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/, "(?![A-Za-z])(?![@$%])")
|
|
1495
|
+
}, { begin: /[$%@][^\s\w{]/, relevance: 0 }]
|
|
1496
|
+
}, o = [e.BACKSLASH_ESCAPE, i, s], l = [/!/, /\//, /\|/, /\?/, /'/, /"/, /#/], c = (e, a, i = "\\1") => {
|
|
1497
|
+
const r = "\\1" === i ? i : n.concat(i, a)
|
|
1498
|
+
; return n.concat(n.concat("(?:", e, ")"), a, /(?:\\.|[^\\\/])*?/, r, /(?:\\.|[^\\\/])*?/, i, t)
|
|
1499
|
+
}, d = (e, a, i) => n.concat(n.concat("(?:", e, ")"), a, /(?:\\.|[^\\\/])*?/, i, t), g = [s, e.HASH_COMMENT_MODE, e.COMMENT(/^=\w/, /=cut/, {
|
|
1500
|
+
endsWithParent: !0
|
|
1501
|
+
}), r, {
|
|
1502
|
+
className: "string", contains: o, variants: [{
|
|
1503
|
+
begin: "q[qwxr]?\\s*\\(", end: "\\)", relevance: 5
|
|
1504
|
+
}, {
|
|
1505
|
+
begin: "q[qwxr]?\\s*\\[",
|
|
1506
|
+
end: "\\]", relevance: 5
|
|
1507
|
+
}, { begin: "q[qwxr]?\\s*\\{", end: "\\}", relevance: 5 }, {
|
|
1508
|
+
begin: "q[qwxr]?\\s*\\|", end: "\\|", relevance: 5
|
|
1509
|
+
}, {
|
|
1510
|
+
begin: "q[qwxr]?\\s*<", end: ">",
|
|
1511
|
+
relevance: 5
|
|
1512
|
+
}, { begin: "qw\\s+q", end: "q", relevance: 5 }, {
|
|
1513
|
+
begin: "'", end: "'",
|
|
1514
|
+
contains: [e.BACKSLASH_ESCAPE]
|
|
1515
|
+
}, { begin: '"', end: '"' }, {
|
|
1516
|
+
begin: "`", end: "`",
|
|
1517
|
+
contains: [e.BACKSLASH_ESCAPE]
|
|
1518
|
+
}, { begin: /\{\w+\}/, relevance: 0 }, {
|
|
1519
|
+
begin: "-?\\w+\\s*=>", relevance: 0
|
|
1520
|
+
}]
|
|
1521
|
+
}, {
|
|
1522
|
+
className: "number",
|
|
1523
|
+
begin: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
|
|
1524
|
+
relevance: 0
|
|
1525
|
+
}, {
|
|
1526
|
+
begin: "(\\/\\/|" + e.RE_STARTERS_RE + "|\\b(split|return|print|reverse|grep)\\b)\\s*",
|
|
1527
|
+
keywords: "split return print reverse grep", relevance: 0,
|
|
1528
|
+
contains: [e.HASH_COMMENT_MODE, {
|
|
1529
|
+
className: "regexp", variants: [{
|
|
1530
|
+
begin: c("s|tr|y", n.either(...l, { capture: !0 }))
|
|
1531
|
+
}, { begin: c("s|tr|y", "\\(", "\\)") }, {
|
|
1532
|
+
begin: c("s|tr|y", "\\[", "\\]")
|
|
1533
|
+
}, { begin: c("s|tr|y", "\\{", "\\}") }], relevance: 2
|
|
1534
|
+
}, {
|
|
1535
|
+
className: "regexp", variants: [{ begin: /(m|qr)\/\//, relevance: 0 }, {
|
|
1536
|
+
begin: d("(?:m|qr)?", /\//, /\//)
|
|
1537
|
+
}, {
|
|
1538
|
+
begin: d("m|qr", n.either(...l, {
|
|
1539
|
+
capture: !0
|
|
1540
|
+
}), /\1/)
|
|
1541
|
+
}, { begin: d("m|qr", /\(/, /\)/) }, { begin: d("m|qr", /\[/, /\]/) }, {
|
|
1542
|
+
begin: d("m|qr", /\{/, /\}/)
|
|
1543
|
+
}]
|
|
1544
|
+
}]
|
|
1545
|
+
}, {
|
|
1546
|
+
className: "function", beginKeywords: "sub",
|
|
1547
|
+
end: "(\\s*\\(.*?\\))?[;{]", excludeEnd: !0, relevance: 5, contains: [e.TITLE_MODE]
|
|
1548
|
+
}, {
|
|
1549
|
+
begin: "-\\w\\b", relevance: 0
|
|
1550
|
+
}, {
|
|
1551
|
+
begin: "^__DATA__$", end: "^__END__$",
|
|
1552
|
+
subLanguage: "mojolicious", contains: [{ begin: "^@@.*", end: "$", className: "comment" }]
|
|
1553
|
+
}]; return i.contains = g, r.contains = g, {
|
|
1554
|
+
name: "Perl", aliases: ["pl", "pm"], keywords: a,
|
|
1555
|
+
contains: g
|
|
1556
|
+
}
|
|
1557
|
+
}, grmr_php: e => {
|
|
1558
|
+
const n = e.regex, t = /(?![A-Za-z0-9])(?![$])/, a = n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/, t), i = n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/, t), r = {
|
|
1559
|
+
scope: "variable", match: "\\$+" + a
|
|
1560
|
+
}, s = {
|
|
1561
|
+
scope: "subst", variants: [{ begin: /\$\w+/ }, {
|
|
1562
|
+
begin: /\{\$/, end: /\}/
|
|
1563
|
+
}]
|
|
1564
|
+
}, o = e.inherit(e.APOS_STRING_MODE, {
|
|
1565
|
+
illegal: null
|
|
1566
|
+
}), l = "[ \t\n]", c = {
|
|
1567
|
+
scope: "string", variants: [e.inherit(e.QUOTE_STRING_MODE, {
|
|
1568
|
+
illegal: null, contains: e.QUOTE_STRING_MODE.contains.concat(s)
|
|
1569
|
+
}), o, {
|
|
1570
|
+
begin: /<<<[ \t]*(?:(\w+)|"(\w+)")\n/, end: /[ \t]*(\w+)\b/,
|
|
1571
|
+
contains: e.QUOTE_STRING_MODE.contains.concat(s), "on:begin": (e, n) => {
|
|
1572
|
+
n.data._beginMatch = e[1] || e[2]
|
|
1573
|
+
}, "on:end": (e, n) => {
|
|
1574
|
+
n.data._beginMatch !== e[1] && n.ignoreMatch()
|
|
1575
|
+
}
|
|
1576
|
+
}, e.END_SAME_AS_BEGIN({
|
|
1577
|
+
begin: /<<<[ \t]*'(\w+)'\n/, end: /[ \t]*(\w+)\b/
|
|
1578
|
+
})]
|
|
1579
|
+
}, d = {
|
|
1580
|
+
scope: "number", variants: [{
|
|
1581
|
+
begin: "\\b0[bB][01]+(?:_[01]+)*\\b"
|
|
1582
|
+
}, { begin: "\\b0[oO][0-7]+(?:_[0-7]+)*\\b" }, {
|
|
1583
|
+
begin: "\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"
|
|
1584
|
+
}, {
|
|
1585
|
+
begin: "(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
|
|
1586
|
+
}], relevance: 0
|
|
1587
|
+
}, g = ["false", "null", "true"], u = ["__CLASS__", "__DIR__", "__FILE__", "__FUNCTION__", "__COMPILER_HALT_OFFSET__", "__LINE__", "__METHOD__", "__NAMESPACE__", "__TRAIT__", "die", "echo", "exit", "include", "include_once", "print", "require", "require_once", "array", "abstract", "and", "as", "binary", "bool", "boolean", "break", "callable", "case", "catch", "class", "clone", "const", "continue", "declare", "default", "do", "double", "else", "elseif", "empty", "enddeclare", "endfor", "endforeach", "endif", "endswitch", "endwhile", "enum", "eval", "extends", "final", "finally", "float", "for", "foreach", "from", "global", "goto", "if", "implements", "instanceof", "insteadof", "int", "integer", "interface", "isset", "iterable", "list", "match|0", "mixed", "new", "never", "object", "or", "private", "protected", "public", "readonly", "real", "return", "string", "switch", "throw", "trait", "try", "unset", "use", "var", "void", "while", "xor", "yield"], b = ["Error|0", "AppendIterator", "ArgumentCountError", "ArithmeticError", "ArrayIterator", "ArrayObject", "AssertionError", "BadFunctionCallException", "BadMethodCallException", "CachingIterator", "CallbackFilterIterator", "CompileError", "Countable", "DirectoryIterator", "DivisionByZeroError", "DomainException", "EmptyIterator", "ErrorException", "Exception", "FilesystemIterator", "FilterIterator", "GlobIterator", "InfiniteIterator", "InvalidArgumentException", "IteratorIterator", "LengthException", "LimitIterator", "LogicException", "MultipleIterator", "NoRewindIterator", "OutOfBoundsException", "OutOfRangeException", "OuterIterator", "OverflowException", "ParentIterator", "ParseError", "RangeException", "RecursiveArrayIterator", "RecursiveCachingIterator", "RecursiveCallbackFilterIterator", "RecursiveDirectoryIterator", "RecursiveFilterIterator", "RecursiveIterator", "RecursiveIteratorIterator", "RecursiveRegexIterator", "RecursiveTreeIterator", "RegexIterator", "RuntimeException", "SeekableIterator", "SplDoublyLinkedList", "SplFileInfo", "SplFileObject", "SplFixedArray", "SplHeap", "SplMaxHeap", "SplMinHeap", "SplObjectStorage", "SplObserver", "SplPriorityQueue", "SplQueue", "SplStack", "SplSubject", "SplTempFileObject", "TypeError", "UnderflowException", "UnexpectedValueException", "UnhandledMatchError", "ArrayAccess", "BackedEnum", "Closure", "Fiber", "Generator", "Iterator", "IteratorAggregate", "Serializable", "Stringable", "Throwable", "Traversable", "UnitEnum", "WeakReference", "WeakMap", "Directory", "__PHP_Incomplete_Class", "parent", "php_user_filter", "self", "static", "stdClass"], m = {
|
|
1588
|
+
keyword: u, literal: (e => {
|
|
1589
|
+
const n = []; return e.forEach((e => {
|
|
1590
|
+
n.push(e), e.toLowerCase() === e ? n.push(e.toUpperCase()) : n.push(e.toLowerCase())
|
|
1591
|
+
})), n
|
|
1592
|
+
})(g), built_in: b
|
|
1593
|
+
}, p = e => e.map((e => e.replace(/\|\d+$/, ""))), _ = {
|
|
1594
|
+
variants: [{
|
|
1595
|
+
match: [/new/, n.concat(l, "+"), n.concat("(?!", p(b).join("\\b|"), "\\b)"), i], scope: {
|
|
1596
|
+
1: "keyword", 4: "title.class"
|
|
1597
|
+
}
|
|
1598
|
+
}]
|
|
1599
|
+
}, h = n.concat(a, "\\b(?!\\()"), f = {
|
|
1600
|
+
variants: [{
|
|
1601
|
+
match: [n.concat(/::/, n.lookahead(/(?!class\b)/)), h], scope: {
|
|
1602
|
+
2: "variable.constant"
|
|
1603
|
+
}
|
|
1604
|
+
}, { match: [/::/, /class/], scope: { 2: "variable.language" } }, {
|
|
1605
|
+
match: [i, n.concat(/::/, n.lookahead(/(?!class\b)/)), h], scope: {
|
|
1606
|
+
1: "title.class",
|
|
1607
|
+
3: "variable.constant"
|
|
1608
|
+
}
|
|
1609
|
+
}, {
|
|
1610
|
+
match: [i, n.concat("::", n.lookahead(/(?!class\b)/))],
|
|
1611
|
+
scope: { 1: "title.class" }
|
|
1612
|
+
}, {
|
|
1613
|
+
match: [i, /::/, /class/], scope: {
|
|
1614
|
+
1: "title.class",
|
|
1615
|
+
3: "variable.language"
|
|
1616
|
+
}
|
|
1617
|
+
}]
|
|
1618
|
+
}, E = {
|
|
1619
|
+
scope: "attr",
|
|
1620
|
+
match: n.concat(a, n.lookahead(":"), n.lookahead(/(?!::)/))
|
|
1621
|
+
}, y = {
|
|
1622
|
+
relevance: 0,
|
|
1623
|
+
begin: /\(/, end: /\)/, keywords: m, contains: [E, r, f, e.C_BLOCK_COMMENT_MODE, c, d, _]
|
|
1624
|
+
}, N = {
|
|
1625
|
+
relevance: 0,
|
|
1626
|
+
match: [/\b/, n.concat("(?!fn\\b|function\\b|", p(u).join("\\b|"), "|", p(b).join("\\b|"), "\\b)"), a, n.concat(l, "*"), n.lookahead(/(?=\()/)],
|
|
1627
|
+
scope: { 3: "title.function.invoke" }, contains: [y]
|
|
1628
|
+
}; y.contains.push(N)
|
|
1629
|
+
; const w = [E, f, e.C_BLOCK_COMMENT_MODE, c, d, _]; return {
|
|
1630
|
+
case_insensitive: !1,
|
|
1631
|
+
keywords: m, contains: [{
|
|
1632
|
+
begin: n.concat(/#\[\s*/, i), beginScope: "meta", end: /]/,
|
|
1633
|
+
endScope: "meta", keywords: { literal: g, keyword: ["new", "array"] }, contains: [{
|
|
1634
|
+
begin: /\[/, end: /]/, keywords: { literal: g, keyword: ["new", "array"] },
|
|
1635
|
+
contains: ["self", ...w]
|
|
1636
|
+
}, ...w, { scope: "meta", match: i }]
|
|
1637
|
+
}, e.HASH_COMMENT_MODE, e.COMMENT("//", "$"), e.COMMENT("/\\*", "\\*/", {
|
|
1638
|
+
contains: [{
|
|
1639
|
+
scope: "doctag", match: "@[A-Za-z]+"
|
|
1640
|
+
}]
|
|
1641
|
+
}), {
|
|
1642
|
+
match: /__halt_compiler\(\);/,
|
|
1643
|
+
keywords: "__halt_compiler", starts: {
|
|
1644
|
+
scope: "comment", end: e.MATCH_NOTHING_RE,
|
|
1645
|
+
contains: [{ match: /\?>/, scope: "meta", endsParent: !0 }]
|
|
1646
|
+
}
|
|
1647
|
+
}, {
|
|
1648
|
+
scope: "meta", variants: [{
|
|
1649
|
+
begin: /<\?php/, relevance: 10
|
|
1650
|
+
}, { begin: /<\?=/ }, { begin: /<\?/, relevance: .1 }, {
|
|
1651
|
+
begin: /\?>/
|
|
1652
|
+
}]
|
|
1653
|
+
}, { scope: "variable.language", match: /\$this\b/ }, r, N, f, {
|
|
1654
|
+
match: [/const/, /\s/, a], scope: { 1: "keyword", 3: "variable.constant" }
|
|
1655
|
+
}, _, {
|
|
1656
|
+
scope: "function", relevance: 0, beginKeywords: "fn function", end: /[;{]/,
|
|
1657
|
+
excludeEnd: !0, illegal: "[$%\\[]", contains: [{
|
|
1658
|
+
beginKeywords: "use"
|
|
1659
|
+
}, e.UNDERSCORE_TITLE_MODE, { begin: "=>", endsParent: !0 }, {
|
|
1660
|
+
scope: "params",
|
|
1661
|
+
begin: "\\(", end: "\\)", excludeBegin: !0, excludeEnd: !0, keywords: m,
|
|
1662
|
+
contains: ["self", r, f, e.C_BLOCK_COMMENT_MODE, c, d]
|
|
1663
|
+
}]
|
|
1664
|
+
}, {
|
|
1665
|
+
scope: "class", variants: [{
|
|
1666
|
+
beginKeywords: "enum", illegal: /[($"]/
|
|
1667
|
+
}, {
|
|
1668
|
+
beginKeywords: "class interface trait",
|
|
1669
|
+
illegal: /[:($"]/
|
|
1670
|
+
}], relevance: 0, end: /\{/, excludeEnd: !0, contains: [{
|
|
1671
|
+
beginKeywords: "extends implements"
|
|
1672
|
+
}, e.UNDERSCORE_TITLE_MODE]
|
|
1673
|
+
}, {
|
|
1674
|
+
beginKeywords: "namespace", relevance: 0, end: ";", illegal: /[.']/,
|
|
1675
|
+
contains: [e.inherit(e.UNDERSCORE_TITLE_MODE, { scope: "title.class" })]
|
|
1676
|
+
}, {
|
|
1677
|
+
beginKeywords: "use", relevance: 0, end: ";", contains: [{
|
|
1678
|
+
match: /\b(as|const|function)\b/, scope: "keyword"
|
|
1679
|
+
}, e.UNDERSCORE_TITLE_MODE]
|
|
1680
|
+
}, c, d]
|
|
1681
|
+
}
|
|
1682
|
+
}, grmr_php_template: e => ({
|
|
1683
|
+
name: "PHP template", subLanguage: "xml", contains: [{
|
|
1684
|
+
begin: /<\?(php|=)?/, end: /\?>/, subLanguage: "php", contains: [{
|
|
1685
|
+
begin: "/\\*",
|
|
1686
|
+
end: "\\*/", skip: !0
|
|
1687
|
+
}, { begin: 'b"', end: '"', skip: !0 }, {
|
|
1688
|
+
begin: "b'", end: "'", skip: !0
|
|
1689
|
+
}, e.inherit(e.APOS_STRING_MODE, {
|
|
1690
|
+
illegal: null, className: null, contains: null,
|
|
1691
|
+
skip: !0
|
|
1692
|
+
}), e.inherit(e.QUOTE_STRING_MODE, {
|
|
1693
|
+
illegal: null, className: null,
|
|
1694
|
+
contains: null, skip: !0
|
|
1695
|
+
})]
|
|
1696
|
+
}]
|
|
1697
|
+
}), grmr_plaintext: e => ({
|
|
1698
|
+
name: "Plain text",
|
|
1699
|
+
aliases: ["text", "txt"], disableAutodetect: !0
|
|
1700
|
+
}), grmr_python: e => {
|
|
1701
|
+
const n = e.regex, t = /[\p{XID_Start}_]\p{XID_Continue}*/u, a = ["and", "as", "assert", "async", "await", "break", "case", "class", "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "match", "nonlocal|10", "not", "or", "pass", "raise", "return", "try", "while", "with", "yield"], i = {
|
|
1702
|
+
$pattern: /[A-Za-z]\w+|__\w+__/, keyword: a,
|
|
1703
|
+
built_in: ["__import__", "abs", "all", "any", "ascii", "bin", "bool", "breakpoint", "bytearray", "bytes", "callable", "chr", "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod", "enumerate", "eval", "exec", "filter", "float", "format", "frozenset", "getattr", "globals", "hasattr", "hash", "help", "hex", "id", "input", "int", "isinstance", "issubclass", "iter", "len", "list", "locals", "map", "max", "memoryview", "min", "next", "object", "oct", "open", "ord", "pow", "print", "property", "range", "repr", "reversed", "round", "set", "setattr", "slice", "sorted", "staticmethod", "str", "sum", "super", "tuple", "type", "vars", "zip"],
|
|
1704
|
+
literal: ["__debug__", "Ellipsis", "False", "None", "NotImplemented", "True"],
|
|
1705
|
+
type: ["Any", "Callable", "Coroutine", "Dict", "List", "Literal", "Generic", "Optional", "Sequence", "Set", "Tuple", "Type", "Union"]
|
|
1706
|
+
}, r = { className: "meta", begin: /^(>>>|\.\.\.) / }, s = {
|
|
1707
|
+
className: "subst", begin: /\{/,
|
|
1708
|
+
end: /\}/, keywords: i, illegal: /#/
|
|
1709
|
+
}, o = { begin: /\{\{/, relevance: 0 }, l = {
|
|
1710
|
+
className: "string", contains: [e.BACKSLASH_ESCAPE], variants: [{
|
|
1711
|
+
begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/, end: /'''/,
|
|
1712
|
+
contains: [e.BACKSLASH_ESCAPE, r], relevance: 10
|
|
1713
|
+
}, {
|
|
1714
|
+
begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/, end: /"""/,
|
|
1715
|
+
contains: [e.BACKSLASH_ESCAPE, r], relevance: 10
|
|
1716
|
+
}, {
|
|
1717
|
+
begin: /([fF][rR]|[rR][fF]|[fF])'''/, end: /'''/,
|
|
1718
|
+
contains: [e.BACKSLASH_ESCAPE, r, o, s]
|
|
1719
|
+
}, {
|
|
1720
|
+
begin: /([fF][rR]|[rR][fF]|[fF])"""/,
|
|
1721
|
+
end: /"""/, contains: [e.BACKSLASH_ESCAPE, r, o, s]
|
|
1722
|
+
}, {
|
|
1723
|
+
begin: /([uU]|[rR])'/, end: /'/,
|
|
1724
|
+
relevance: 10
|
|
1725
|
+
}, { begin: /([uU]|[rR])"/, end: /"/, relevance: 10 }, {
|
|
1726
|
+
begin: /([bB]|[bB][rR]|[rR][bB])'/, end: /'/
|
|
1727
|
+
}, {
|
|
1728
|
+
begin: /([bB]|[bB][rR]|[rR][bB])"/,
|
|
1729
|
+
end: /"/
|
|
1730
|
+
}, {
|
|
1731
|
+
begin: /([fF][rR]|[rR][fF]|[fF])'/, end: /'/,
|
|
1732
|
+
contains: [e.BACKSLASH_ESCAPE, o, s]
|
|
1733
|
+
}, {
|
|
1734
|
+
begin: /([fF][rR]|[rR][fF]|[fF])"/, end: /"/,
|
|
1735
|
+
contains: [e.BACKSLASH_ESCAPE, o, s]
|
|
1736
|
+
}, e.APOS_STRING_MODE, e.QUOTE_STRING_MODE]
|
|
1737
|
+
}, c = "[0-9](_?[0-9])*", d = `(\\b(${c}))?\\.(${c})|\\b(${c})\\.`, g = "\\b|" + a.join("|"), u = {
|
|
1738
|
+
className: "number", relevance: 0, variants: [{
|
|
1739
|
+
begin: `(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`
|
|
1740
|
+
}, { begin: `(${d})[jJ]?` }, {
|
|
1741
|
+
begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`
|
|
1742
|
+
}, {
|
|
1743
|
+
begin: `\\b0[bB](_?[01])+[lL]?(?=${g})`
|
|
1744
|
+
}, {
|
|
1745
|
+
begin: `\\b0[oO](_?[0-7])+[lL]?(?=${g})`
|
|
1746
|
+
}, { begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})` }, {
|
|
1747
|
+
begin: `\\b(${c})[jJ](?=${g})`
|
|
1748
|
+
}]
|
|
1749
|
+
}, b = {
|
|
1750
|
+
className: "comment", begin: n.lookahead(/# type:/), end: /$/, keywords: i,
|
|
1751
|
+
contains: [{ begin: /# type:/ }, { begin: /#/, end: /\b\B/, endsWithParent: !0 }]
|
|
1752
|
+
}, m = {
|
|
1753
|
+
className: "params", variants: [{ className: "", begin: /\(\s*\)/, skip: !0 }, {
|
|
1754
|
+
begin: /\(/,
|
|
1755
|
+
end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: i,
|
|
1756
|
+
contains: ["self", r, u, l, e.HASH_COMMENT_MODE]
|
|
1757
|
+
}]
|
|
1758
|
+
}; return s.contains = [l, u, r], {
|
|
1759
|
+
name: "Python", aliases: ["py", "gyp", "ipython"], unicodeRegex: !0, keywords: i,
|
|
1760
|
+
illegal: /(<\/|\?)|=>/, contains: [r, u, { begin: /\bself\b/ }, {
|
|
1761
|
+
beginKeywords: "if",
|
|
1762
|
+
relevance: 0
|
|
1763
|
+
}, l, b, e.HASH_COMMENT_MODE, {
|
|
1764
|
+
match: [/\bdef/, /\s+/, t], scope: {
|
|
1765
|
+
1: "keyword", 3: "title.function"
|
|
1766
|
+
}, contains: [m]
|
|
1767
|
+
}, {
|
|
1768
|
+
variants: [{
|
|
1769
|
+
match: [/\bclass/, /\s+/, t, /\s*/, /\(\s*/, t, /\s*\)/]
|
|
1770
|
+
}, { match: [/\bclass/, /\s+/, t] }],
|
|
1771
|
+
scope: { 1: "keyword", 3: "title.class", 6: "title.class.inherited" }
|
|
1772
|
+
}, {
|
|
1773
|
+
className: "meta", begin: /^[\t ]*@/, end: /(?=#)|$/, contains: [u, m, l]
|
|
1774
|
+
}]
|
|
1775
|
+
}
|
|
1776
|
+
},
|
|
1777
|
+
grmr_python_repl: e => ({
|
|
1778
|
+
aliases: ["pycon"], contains: [{
|
|
1779
|
+
className: "meta.prompt",
|
|
1780
|
+
starts: { end: / |$/, starts: { end: "$", subLanguage: "python" } }, variants: [{
|
|
1781
|
+
begin: /^>>>(?=[ ]|$)/
|
|
1782
|
+
}, { begin: /^\.\.\.(?=[ ]|$)/ }]
|
|
1783
|
+
}]
|
|
1784
|
+
}), grmr_r: e => {
|
|
1785
|
+
const n = e.regex, t = /(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/, a = n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/, /0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/, /(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/), i = /[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/, r = n.either(/[()]/, /[{}]/, /\[\[/, /[[\]]/, /\\/, /,/)
|
|
1786
|
+
; return {
|
|
1787
|
+
name: "R", keywords: {
|
|
1788
|
+
$pattern: t,
|
|
1789
|
+
keyword: "function if in break next repeat else for while",
|
|
1790
|
+
literal: "NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
|
|
1791
|
+
built_in: "LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
|
|
1792
|
+
}, contains: [e.COMMENT(/#'/, /$/, {
|
|
1793
|
+
contains: [{
|
|
1794
|
+
scope: "doctag", match: /@examples/,
|
|
1795
|
+
starts: {
|
|
1796
|
+
end: n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/, /\n^(?!#')/)),
|
|
1797
|
+
endsParent: !0
|
|
1798
|
+
}
|
|
1799
|
+
}, {
|
|
1800
|
+
scope: "doctag", begin: "@param", end: /$/, contains: [{
|
|
1801
|
+
scope: "variable", variants: [{ match: t }, { match: /`(?:\\.|[^`\\])+`/ }], endsParent: !0
|
|
1802
|
+
}]
|
|
1803
|
+
}, { scope: "doctag", match: /@[a-zA-Z]+/ }, { scope: "keyword", match: /\\[a-zA-Z]+/ }]
|
|
1804
|
+
}), e.HASH_COMMENT_MODE, {
|
|
1805
|
+
scope: "string", contains: [e.BACKSLASH_ESCAPE],
|
|
1806
|
+
variants: [e.END_SAME_AS_BEGIN({
|
|
1807
|
+
begin: /[rR]"(-*)\(/, end: /\)(-*)"/
|
|
1808
|
+
}), e.END_SAME_AS_BEGIN({
|
|
1809
|
+
begin: /[rR]"(-*)\{/, end: /\}(-*)"/
|
|
1810
|
+
}), e.END_SAME_AS_BEGIN({
|
|
1811
|
+
begin: /[rR]"(-*)\[/, end: /\](-*)"/
|
|
1812
|
+
}), e.END_SAME_AS_BEGIN({
|
|
1813
|
+
begin: /[rR]'(-*)\(/, end: /\)(-*)'/
|
|
1814
|
+
}), e.END_SAME_AS_BEGIN({
|
|
1815
|
+
begin: /[rR]'(-*)\{/, end: /\}(-*)'/
|
|
1816
|
+
}), e.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\[/, end: /\](-*)'/ }), {
|
|
1817
|
+
begin: '"', end: '"',
|
|
1818
|
+
relevance: 0
|
|
1819
|
+
}, { begin: "'", end: "'", relevance: 0 }]
|
|
1820
|
+
}, {
|
|
1821
|
+
relevance: 0, variants: [{
|
|
1822
|
+
scope: {
|
|
1823
|
+
1: "operator", 2: "number"
|
|
1824
|
+
}, match: [i, a]
|
|
1825
|
+
}, {
|
|
1826
|
+
scope: { 1: "operator", 2: "number" },
|
|
1827
|
+
match: [/%[^%]*%/, a]
|
|
1828
|
+
}, { scope: { 1: "punctuation", 2: "number" }, match: [r, a] }, {
|
|
1829
|
+
scope: {
|
|
1830
|
+
2: "number"
|
|
1831
|
+
}, match: [/[^a-zA-Z0-9._]|^/, a]
|
|
1832
|
+
}]
|
|
1833
|
+
}, {
|
|
1834
|
+
scope: { 3: "operator" },
|
|
1835
|
+
match: [t, /\s+/, /<-/, /\s+/]
|
|
1836
|
+
}, {
|
|
1837
|
+
scope: "operator", relevance: 0, variants: [{ match: i }, {
|
|
1838
|
+
match: /%[^%]*%/
|
|
1839
|
+
}]
|
|
1840
|
+
}, { scope: "punctuation", relevance: 0, match: r }, {
|
|
1841
|
+
begin: "`", end: "`",
|
|
1842
|
+
contains: [{ begin: /\\./ }]
|
|
1843
|
+
}]
|
|
1844
|
+
}
|
|
1845
|
+
}, grmr_ruby: e => {
|
|
1846
|
+
const n = e.regex, t = "([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)", a = n.either(/\b([A-Z]+[a-z0-9]+)+/, /\b([A-Z]+[a-z0-9]+)+[A-Z]+/), i = n.concat(a, /(::\w+)*/), r = {
|
|
1847
|
+
"variable.constant": ["__FILE__", "__LINE__", "__ENCODING__"],
|
|
1848
|
+
"variable.language": ["self", "super"],
|
|
1849
|
+
keyword: ["alias", "and", "begin", "BEGIN", "break", "case", "class", "defined", "do", "else", "elsif", "end", "END", "ensure", "for", "if", "in", "module", "next", "not", "or", "redo", "require", "rescue", "retry", "return", "then", "undef", "unless", "until", "when", "while", "yield", "include", "extend", "prepend", "public", "private", "protected", "raise", "throw"],
|
|
1850
|
+
built_in: ["proc", "lambda", "attr_accessor", "attr_reader", "attr_writer", "define_method", "private_constant", "module_function"],
|
|
1851
|
+
literal: ["true", "false", "nil"]
|
|
1852
|
+
}, s = { className: "doctag", begin: "@[A-Za-z]+" }, o = {
|
|
1853
|
+
begin: "#<", end: ">"
|
|
1854
|
+
}, l = [e.COMMENT("#", "$", {
|
|
1855
|
+
contains: [s]
|
|
1856
|
+
}), e.COMMENT("^=begin", "^=end", {
|
|
1857
|
+
contains: [s], relevance: 10
|
|
1858
|
+
}), e.COMMENT("^__END__", e.MATCH_NOTHING_RE)], c = {
|
|
1859
|
+
className: "subst", begin: /#\{/,
|
|
1860
|
+
end: /\}/, keywords: r
|
|
1861
|
+
}, d = {
|
|
1862
|
+
className: "string", contains: [e.BACKSLASH_ESCAPE, c],
|
|
1863
|
+
variants: [{ begin: /'/, end: /'/ }, { begin: /"/, end: /"/ }, { begin: /`/, end: /`/ }, {
|
|
1864
|
+
begin: /%[qQwWx]?\(/, end: /\)/
|
|
1865
|
+
}, { begin: /%[qQwWx]?\[/, end: /\]/ }, {
|
|
1866
|
+
begin: /%[qQwWx]?\{/, end: /\}/
|
|
1867
|
+
}, { begin: /%[qQwWx]?</, end: />/ }, {
|
|
1868
|
+
begin: /%[qQwWx]?\//,
|
|
1869
|
+
end: /\//
|
|
1870
|
+
}, { begin: /%[qQwWx]?%/, end: /%/ }, { begin: /%[qQwWx]?-/, end: /-/ }, {
|
|
1871
|
+
begin: /%[qQwWx]?\|/, end: /\|/
|
|
1872
|
+
}, { begin: /\B\?(\\\d{1,3})/ }, {
|
|
1873
|
+
begin: /\B\?(\\x[A-Fa-f0-9]{1,2})/
|
|
1874
|
+
}, { begin: /\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/ }, {
|
|
1875
|
+
begin: /\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/
|
|
1876
|
+
}, {
|
|
1877
|
+
begin: /\B\?\\(c|C-)[\x20-\x7e]/
|
|
1878
|
+
}, { begin: /\B\?\\?\S/ }, {
|
|
1879
|
+
begin: n.concat(/<<[-~]?'?/, n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
|
|
1880
|
+
contains: [e.END_SAME_AS_BEGIN({
|
|
1881
|
+
begin: /(\w+)/, end: /(\w+)/,
|
|
1882
|
+
contains: [e.BACKSLASH_ESCAPE, c]
|
|
1883
|
+
})]
|
|
1884
|
+
}]
|
|
1885
|
+
}, g = "[0-9](_?[0-9])*", u = {
|
|
1886
|
+
className: "number",
|
|
1887
|
+
relevance: 0, variants: [{
|
|
1888
|
+
begin: `\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`
|
|
1889
|
+
}, {
|
|
1890
|
+
begin: "\\b0[dD][0-9](_?[0-9])*r?i?\\b"
|
|
1891
|
+
}, {
|
|
1892
|
+
begin: "\\b0[bB][0-1](_?[0-1])*r?i?\\b"
|
|
1893
|
+
}, { begin: "\\b0[oO][0-7](_?[0-7])*r?i?\\b" }, {
|
|
1894
|
+
begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"
|
|
1895
|
+
}, {
|
|
1896
|
+
begin: "\\b0(_?[0-7])+r?i?\\b"
|
|
1897
|
+
}]
|
|
1898
|
+
}, b = {
|
|
1899
|
+
variants: [{ match: /\(\)/ }, {
|
|
1900
|
+
className: "params", begin: /\(/, end: /(?=\))/, excludeBegin: !0, endsParent: !0,
|
|
1901
|
+
keywords: r
|
|
1902
|
+
}]
|
|
1903
|
+
}, m = [d, {
|
|
1904
|
+
variants: [{ match: [/class\s+/, i, /\s+<\s+/, i] }, {
|
|
1905
|
+
match: [/\b(class|module)\s+/, i]
|
|
1906
|
+
}], scope: {
|
|
1907
|
+
2: "title.class",
|
|
1908
|
+
4: "title.class.inherited"
|
|
1909
|
+
}, keywords: r
|
|
1910
|
+
}, {
|
|
1911
|
+
match: [/(include|extend)\s+/, i], scope: {
|
|
1912
|
+
2: "title.class"
|
|
1913
|
+
}, keywords: r
|
|
1914
|
+
}, {
|
|
1915
|
+
relevance: 0, match: [i, /\.new[. (]/], scope: {
|
|
1916
|
+
1: "title.class"
|
|
1917
|
+
}
|
|
1918
|
+
}, {
|
|
1919
|
+
relevance: 0, match: /\b[A-Z][A-Z_0-9]+\b/,
|
|
1920
|
+
className: "variable.constant"
|
|
1921
|
+
}, { relevance: 0, match: a, scope: "title.class" }, {
|
|
1922
|
+
match: [/def/, /\s+/, t], scope: { 1: "keyword", 3: "title.function" }, contains: [b]
|
|
1923
|
+
}, {
|
|
1924
|
+
begin: e.IDENT_RE + "::"
|
|
1925
|
+
}, {
|
|
1926
|
+
className: "symbol",
|
|
1927
|
+
begin: e.UNDERSCORE_IDENT_RE + "(!|\\?)?:", relevance: 0
|
|
1928
|
+
}, {
|
|
1929
|
+
className: "symbol",
|
|
1930
|
+
begin: ":(?!\\s)", contains: [d, { begin: t }], relevance: 0
|
|
1931
|
+
}, u, {
|
|
1932
|
+
className: "variable",
|
|
1933
|
+
begin: "(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"
|
|
1934
|
+
}, {
|
|
1935
|
+
className: "params", begin: /\|/, end: /\|/, excludeBegin: !0, excludeEnd: !0,
|
|
1936
|
+
relevance: 0, keywords: r
|
|
1937
|
+
}, {
|
|
1938
|
+
begin: "(" + e.RE_STARTERS_RE + "|unless)\\s*",
|
|
1939
|
+
keywords: "unless", contains: [{
|
|
1940
|
+
className: "regexp", contains: [e.BACKSLASH_ESCAPE, c],
|
|
1941
|
+
illegal: /\n/, variants: [{ begin: "/", end: "/[a-z]*" }, { begin: /%r\{/, end: /\}[a-z]*/ }, {
|
|
1942
|
+
begin: "%r\\(", end: "\\)[a-z]*"
|
|
1943
|
+
}, { begin: "%r!", end: "![a-z]*" }, {
|
|
1944
|
+
begin: "%r\\[",
|
|
1945
|
+
end: "\\][a-z]*"
|
|
1946
|
+
}]
|
|
1947
|
+
}].concat(o, l), relevance: 0
|
|
1948
|
+
}].concat(o, l)
|
|
1949
|
+
; c.contains = m, b.contains = m; const p = [{
|
|
1950
|
+
begin: /^\s*=>/, starts: { end: "$", contains: m }
|
|
1951
|
+
}, {
|
|
1952
|
+
className: "meta.prompt",
|
|
1953
|
+
begin: "^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
|
|
1954
|
+
starts: { end: "$", keywords: r, contains: m }
|
|
1955
|
+
}]; return l.unshift(o), {
|
|
1956
|
+
name: "Ruby",
|
|
1957
|
+
aliases: ["rb", "gemspec", "podspec", "thor", "irb"], keywords: r, illegal: /\/\*/,
|
|
1958
|
+
contains: [e.SHEBANG({ binary: "ruby" })].concat(p).concat(l).concat(m)
|
|
1959
|
+
}
|
|
1960
|
+
},
|
|
1961
|
+
grmr_rust: e => {
|
|
1962
|
+
const n = e.regex, t = {
|
|
1963
|
+
className: "title.function.invoke", relevance: 0,
|
|
1964
|
+
begin: n.concat(/\b/, /(?!let|for|while|if|else|match\b)/, e.IDENT_RE, n.lookahead(/\s*\(/))
|
|
1965
|
+
}, a = "([ui](8|16|32|64|128|size)|f(32|64))?", i = ["drop ", "Copy", "Send", "Sized", "Sync", "Drop", "Fn", "FnMut", "FnOnce", "ToOwned", "Clone", "Debug", "PartialEq", "PartialOrd", "Eq", "Ord", "AsRef", "AsMut", "Into", "From", "Default", "Iterator", "Extend", "IntoIterator", "DoubleEndedIterator", "ExactSizeIterator", "SliceConcatExt", "ToString", "assert!", "assert_eq!", "bitflags!", "bytes!", "cfg!", "col!", "concat!", "concat_idents!", "debug_assert!", "debug_assert_eq!", "env!", "eprintln!", "panic!", "file!", "format!", "format_args!", "include_bytes!", "include_str!", "line!", "local_data_key!", "module_path!", "option_env!", "print!", "println!", "select!", "stringify!", "try!", "unimplemented!", "unreachable!", "vec!", "write!", "writeln!", "macro_rules!", "assert_ne!", "debug_assert_ne!"], r = ["i8", "i16", "i32", "i64", "i128", "isize", "u8", "u16", "u32", "u64", "u128", "usize", "f32", "f64", "str", "char", "bool", "Box", "Option", "Result", "String", "Vec"]
|
|
1966
|
+
; return {
|
|
1967
|
+
name: "Rust", aliases: ["rs"], keywords: {
|
|
1968
|
+
$pattern: e.IDENT_RE + "!?", type: r,
|
|
1969
|
+
keyword: ["abstract", "as", "async", "await", "become", "box", "break", "const", "continue", "crate", "do", "dyn", "else", "enum", "extern", "false", "final", "fn", "for", "if", "impl", "in", "let", "loop", "macro", "match", "mod", "move", "mut", "override", "priv", "pub", "ref", "return", "self", "Self", "static", "struct", "super", "trait", "true", "try", "type", "typeof", "unsafe", "unsized", "use", "virtual", "where", "while", "yield"],
|
|
1970
|
+
literal: ["true", "false", "Some", "None", "Ok", "Err"], built_in: i
|
|
1971
|
+
}, illegal: "</",
|
|
1972
|
+
contains: [e.C_LINE_COMMENT_MODE, e.COMMENT("/\\*", "\\*/", {
|
|
1973
|
+
contains: ["self"]
|
|
1974
|
+
}), e.inherit(e.QUOTE_STRING_MODE, { begin: /b?"/, illegal: null }), {
|
|
1975
|
+
className: "string", variants: [{ begin: /b?r(#*)"(.|\n)*?"\1(?!#)/ }, {
|
|
1976
|
+
begin: /b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/
|
|
1977
|
+
}]
|
|
1978
|
+
}, {
|
|
1979
|
+
className: "symbol",
|
|
1980
|
+
begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
|
|
1981
|
+
}, {
|
|
1982
|
+
className: "number", variants: [{
|
|
1983
|
+
begin: "\\b0b([01_]+)" + a
|
|
1984
|
+
}, { begin: "\\b0o([0-7_]+)" + a }, {
|
|
1985
|
+
begin: "\\b0x([A-Fa-f0-9_]+)" + a
|
|
1986
|
+
}, {
|
|
1987
|
+
begin: "\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)" + a
|
|
1988
|
+
}], relevance: 0
|
|
1989
|
+
}, {
|
|
1990
|
+
begin: [/fn/, /\s+/, e.UNDERSCORE_IDENT_RE], className: {
|
|
1991
|
+
1: "keyword",
|
|
1992
|
+
3: "title.function"
|
|
1993
|
+
}
|
|
1994
|
+
}, {
|
|
1995
|
+
className: "meta", begin: "#!?\\[", end: "\\]", contains: [{
|
|
1996
|
+
className: "string", begin: /"/, end: /"/
|
|
1997
|
+
}]
|
|
1998
|
+
}, {
|
|
1999
|
+
begin: [/let/, /\s+/, /(?:mut\s+)?/, e.UNDERSCORE_IDENT_RE], className: {
|
|
2000
|
+
1: "keyword",
|
|
2001
|
+
3: "keyword", 4: "variable"
|
|
2002
|
+
}
|
|
2003
|
+
}, {
|
|
2004
|
+
begin: [/for/, /\s+/, e.UNDERSCORE_IDENT_RE, /\s+/, /in/], className: {
|
|
2005
|
+
1: "keyword",
|
|
2006
|
+
3: "variable", 5: "keyword"
|
|
2007
|
+
}
|
|
2008
|
+
}, {
|
|
2009
|
+
begin: [/type/, /\s+/, e.UNDERSCORE_IDENT_RE],
|
|
2010
|
+
className: { 1: "keyword", 3: "title.class" }
|
|
2011
|
+
}, {
|
|
2012
|
+
begin: [/(?:trait|enum|struct|union|impl|for)/, /\s+/, e.UNDERSCORE_IDENT_RE],
|
|
2013
|
+
className: { 1: "keyword", 3: "title.class" }
|
|
2014
|
+
}, {
|
|
2015
|
+
begin: e.IDENT_RE + "::", keywords: {
|
|
2016
|
+
keyword: "Self", built_in: i, type: r
|
|
2017
|
+
}
|
|
2018
|
+
}, { className: "punctuation", begin: "->" }, t]
|
|
2019
|
+
}
|
|
2020
|
+
},
|
|
2021
|
+
grmr_scss: e => {
|
|
2022
|
+
const n = ie(e), t = le, a = oe, i = "@[a-z-]+", r = {
|
|
2023
|
+
className: "variable",
|
|
2024
|
+
begin: "(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b", relevance: 0
|
|
2025
|
+
}; return {
|
|
2026
|
+
name: "SCSS",
|
|
2027
|
+
case_insensitive: !0, illegal: "[=/|']",
|
|
2028
|
+
contains: [e.C_LINE_COMMENT_MODE, e.C_BLOCK_COMMENT_MODE, n.CSS_NUMBER_MODE, {
|
|
2029
|
+
className: "selector-id", begin: "#[A-Za-z0-9_-]+", relevance: 0
|
|
2030
|
+
}, {
|
|
2031
|
+
className: "selector-class", begin: "\\.[A-Za-z0-9_-]+", relevance: 0
|
|
2032
|
+
}, n.ATTRIBUTE_SELECTOR_MODE, {
|
|
2033
|
+
className: "selector-tag",
|
|
2034
|
+
begin: "\\b(" + re.join("|") + ")\\b", relevance: 0
|
|
2035
|
+
}, {
|
|
2036
|
+
className: "selector-pseudo",
|
|
2037
|
+
begin: ":(" + a.join("|") + ")"
|
|
2038
|
+
}, {
|
|
2039
|
+
className: "selector-pseudo",
|
|
2040
|
+
begin: ":(:)?(" + t.join("|") + ")"
|
|
2041
|
+
}, r, {
|
|
2042
|
+
begin: /\(/, end: /\)/,
|
|
2043
|
+
contains: [n.CSS_NUMBER_MODE]
|
|
2044
|
+
}, n.CSS_VARIABLE, {
|
|
2045
|
+
className: "attribute",
|
|
2046
|
+
begin: "\\b(" + ce.join("|") + ")\\b"
|
|
2047
|
+
}, {
|
|
2048
|
+
begin: "\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
|
|
2049
|
+
}, {
|
|
2050
|
+
begin: /:/, end: /[;}{]/, relevance: 0,
|
|
2051
|
+
contains: [n.BLOCK_COMMENT, r, n.HEXCOLOR, n.CSS_NUMBER_MODE, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, n.IMPORTANT, n.FUNCTION_DISPATCH]
|
|
2052
|
+
}, { begin: "@(page|font-face)", keywords: { $pattern: i, keyword: "@page @font-face" } }, {
|
|
2053
|
+
begin: "@", end: "[{;]", returnBegin: !0, keywords: {
|
|
2054
|
+
$pattern: /[a-z-]+/,
|
|
2055
|
+
keyword: "and or not only", attribute: se.join(" ")
|
|
2056
|
+
}, contains: [{
|
|
2057
|
+
begin: i,
|
|
2058
|
+
className: "keyword"
|
|
2059
|
+
}, {
|
|
2060
|
+
begin: /[a-z-]+(?=:)/, className: "attribute"
|
|
2061
|
+
}, r, e.QUOTE_STRING_MODE, e.APOS_STRING_MODE, n.HEXCOLOR, n.CSS_NUMBER_MODE]
|
|
2062
|
+
}, n.FUNCTION_DISPATCH]
|
|
2063
|
+
}
|
|
2064
|
+
}, grmr_shell: e => ({
|
|
2065
|
+
name: "Shell Session",
|
|
2066
|
+
aliases: ["console", "shellsession"], contains: [{
|
|
2067
|
+
className: "meta.prompt",
|
|
2068
|
+
begin: /^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/, starts: {
|
|
2069
|
+
end: /[^\\](?=\s*$)/,
|
|
2070
|
+
subLanguage: "bash"
|
|
2071
|
+
}
|
|
2072
|
+
}]
|
|
2073
|
+
}), grmr_sql: e => {
|
|
2074
|
+
const n = e.regex, t = e.COMMENT("--", "$"), a = ["true", "false", "unknown"], i = ["bigint", "binary", "blob", "boolean", "char", "character", "clob", "date", "dec", "decfloat", "decimal", "float", "int", "integer", "interval", "nchar", "nclob", "national", "numeric", "real", "row", "smallint", "time", "timestamp", "varchar", "varying", "varbinary"], r = ["abs", "acos", "array_agg", "asin", "atan", "avg", "cast", "ceil", "ceiling", "coalesce", "corr", "cos", "cosh", "count", "covar_pop", "covar_samp", "cume_dist", "dense_rank", "deref", "element", "exp", "extract", "first_value", "floor", "json_array", "json_arrayagg", "json_exists", "json_object", "json_objectagg", "json_query", "json_table", "json_table_primitive", "json_value", "lag", "last_value", "lead", "listagg", "ln", "log", "log10", "lower", "max", "min", "mod", "nth_value", "ntile", "nullif", "percent_rank", "percentile_cont", "percentile_disc", "position", "position_regex", "power", "rank", "regr_avgx", "regr_avgy", "regr_count", "regr_intercept", "regr_r2", "regr_slope", "regr_sxx", "regr_sxy", "regr_syy", "row_number", "sin", "sinh", "sqrt", "stddev_pop", "stddev_samp", "substring", "substring_regex", "sum", "tan", "tanh", "translate", "translate_regex", "treat", "trim", "trim_array", "unnest", "upper", "value_of", "var_pop", "var_samp", "width_bucket"], s = ["create table", "insert into", "primary key", "foreign key", "not null", "alter table", "add constraint", "grouping sets", "on overflow", "character set", "respect nulls", "ignore nulls", "nulls first", "nulls last", "depth first", "breadth first"], o = r, l = ["abs", "acos", "all", "allocate", "alter", "and", "any", "are", "array", "array_agg", "array_max_cardinality", "as", "asensitive", "asin", "asymmetric", "at", "atan", "atomic", "authorization", "avg", "begin", "begin_frame", "begin_partition", "between", "bigint", "binary", "blob", "boolean", "both", "by", "call", "called", "cardinality", "cascaded", "case", "cast", "ceil", "ceiling", "char", "char_length", "character", "character_length", "check", "classifier", "clob", "close", "coalesce", "collate", "collect", "column", "commit", "condition", "connect", "constraint", "contains", "convert", "copy", "corr", "corresponding", "cos", "cosh", "count", "covar_pop", "covar_samp", "create", "cross", "cube", "cume_dist", "current", "current_catalog", "current_date", "current_default_transform_group", "current_path", "current_role", "current_row", "current_schema", "current_time", "current_timestamp", "current_path", "current_role", "current_transform_group_for_type", "current_user", "cursor", "cycle", "date", "day", "deallocate", "dec", "decimal", "decfloat", "declare", "default", "define", "delete", "dense_rank", "deref", "describe", "deterministic", "disconnect", "distinct", "double", "drop", "dynamic", "each", "element", "else", "empty", "end", "end_frame", "end_partition", "end-exec", "equals", "escape", "every", "except", "exec", "execute", "exists", "exp", "external", "extract", "false", "fetch", "filter", "first_value", "float", "floor", "for", "foreign", "frame_row", "free", "from", "full", "function", "fusion", "get", "global", "grant", "group", "grouping", "groups", "having", "hold", "hour", "identity", "in", "indicator", "initial", "inner", "inout", "insensitive", "insert", "int", "integer", "intersect", "intersection", "interval", "into", "is", "join", "json_array", "json_arrayagg", "json_exists", "json_object", "json_objectagg", "json_query", "json_table", "json_table_primitive", "json_value", "lag", "language", "large", "last_value", "lateral", "lead", "leading", "left", "like", "like_regex", "listagg", "ln", "local", "localtime", "localtimestamp", "log", "log10", "lower", "match", "match_number", "match_recognize", "matches", "max", "member", "merge", "method", "min", "minute", "mod", "modifies", "module", "month", "multiset", "national", "natural", "nchar", "nclob", "new", "no", "none", "normalize", "not", "nth_value", "ntile", "null", "nullif", "numeric", "octet_length", "occurrences_regex", "of", "offset", "old", "omit", "on", "one", "only", "open", "or", "order", "out", "outer", "over", "overlaps", "overlay", "parameter", "partition", "pattern", "per", "percent", "percent_rank", "percentile_cont", "percentile_disc", "period", "portion", "position", "position_regex", "power", "precedes", "precision", "prepare", "primary", "procedure", "ptf", "range", "rank", "reads", "real", "recursive", "ref", "references", "referencing", "regr_avgx", "regr_avgy", "regr_count", "regr_intercept", "regr_r2", "regr_slope", "regr_sxx", "regr_sxy", "regr_syy", "release", "result", "return", "returns", "revoke", "right", "rollback", "rollup", "row", "row_number", "rows", "running", "savepoint", "scope", "scroll", "search", "second", "seek", "select", "sensitive", "session_user", "set", "show", "similar", "sin", "sinh", "skip", "smallint", "some", "specific", "specifictype", "sql", "sqlexception", "sqlstate", "sqlwarning", "sqrt", "start", "static", "stddev_pop", "stddev_samp", "submultiset", "subset", "substring", "substring_regex", "succeeds", "sum", "symmetric", "system", "system_time", "system_user", "table", "tablesample", "tan", "tanh", "then", "time", "timestamp", "timezone_hour", "timezone_minute", "to", "trailing", "translate", "translate_regex", "translation", "treat", "trigger", "trim", "trim_array", "true", "truncate", "uescape", "union", "unique", "unknown", "unnest", "update", "upper", "user", "using", "value", "values", "value_of", "var_pop", "var_samp", "varbinary", "varchar", "varying", "versioning", "when", "whenever", "where", "width_bucket", "window", "with", "within", "without", "year", "add", "asc", "collation", "desc", "final", "first", "last", "view"].filter((e => !r.includes(e))), c = {
|
|
2075
|
+
begin: n.concat(/\b/, n.either(...o), /\s*\(/), relevance: 0, keywords: { built_in: o }
|
|
2076
|
+
}
|
|
2077
|
+
; return {
|
|
2078
|
+
name: "SQL", case_insensitive: !0, illegal: /[{}]|<\//, keywords: {
|
|
2079
|
+
$pattern: /\b[\w\.]+/, keyword: ((e, { exceptions: n, when: t } = {}) => {
|
|
2080
|
+
const a = t
|
|
2081
|
+
; return n = n || [], e.map((e => e.match(/\|\d+$/) || n.includes(e) ? e : a(e) ? e + "|0" : e))
|
|
2082
|
+
})(l, { when: e => e.length < 3 }), literal: a, type: i,
|
|
2083
|
+
built_in: ["current_catalog", "current_date", "current_default_transform_group", "current_path", "current_role", "current_schema", "current_transform_group_for_type", "current_user", "session_user", "system_time", "system_user", "current_time", "localtime", "current_timestamp", "localtimestamp"]
|
|
2084
|
+
}, contains: [{
|
|
2085
|
+
begin: n.either(...s), relevance: 0, keywords: {
|
|
2086
|
+
$pattern: /[\w\.]+/,
|
|
2087
|
+
keyword: l.concat(s), literal: a, type: i
|
|
2088
|
+
}
|
|
2089
|
+
}, {
|
|
2090
|
+
className: "type",
|
|
2091
|
+
begin: n.either("double precision", "large object", "with timezone", "without timezone")
|
|
2092
|
+
}, c, { className: "variable", begin: /@[a-z0-9][a-z0-9_]*/ }, {
|
|
2093
|
+
className: "string",
|
|
2094
|
+
variants: [{ begin: /'/, end: /'/, contains: [{ begin: /''/ }] }]
|
|
2095
|
+
}, {
|
|
2096
|
+
begin: /"/, end: /"/,
|
|
2097
|
+
contains: [{ begin: /""/ }]
|
|
2098
|
+
}, e.C_NUMBER_MODE, e.C_BLOCK_COMMENT_MODE, t, {
|
|
2099
|
+
className: "operator", begin: /[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
|
|
2100
|
+
relevance: 0
|
|
2101
|
+
}]
|
|
2102
|
+
}
|
|
2103
|
+
}, grmr_swift: e => {
|
|
2104
|
+
const n = {
|
|
2105
|
+
match: /\s+/, relevance: 0
|
|
2106
|
+
}, t = e.COMMENT("/\\*", "\\*/", { contains: ["self"] }), a = [e.C_LINE_COMMENT_MODE, t], i = {
|
|
2107
|
+
match: [/\./, m(...xe, ...Me)], className: { 2: "keyword" }
|
|
2108
|
+
}, r = {
|
|
2109
|
+
match: b(/\./, m(...Ae)),
|
|
2110
|
+
relevance: 0
|
|
2111
|
+
}, s = Ae.filter((e => "string" == typeof e)).concat(["_|0"]), o = {
|
|
2112
|
+
variants: [{
|
|
2113
|
+
className: "keyword",
|
|
2114
|
+
match: m(...Ae.filter((e => "string" != typeof e)).concat(Se).map(ke), ...Me)
|
|
2115
|
+
}]
|
|
2116
|
+
}, l = {
|
|
2117
|
+
$pattern: m(/\b\w+/, /#\w+/), keyword: s.concat(Re), literal: Ce
|
|
2118
|
+
}, c = [i, r, o], g = [{
|
|
2119
|
+
match: b(/\./, m(...De)), relevance: 0
|
|
2120
|
+
}, {
|
|
2121
|
+
className: "built_in",
|
|
2122
|
+
match: b(/\b/, m(...De), /(?=\()/)
|
|
2123
|
+
}], u = { match: /->/, relevance: 0 }, p = [u, {
|
|
2124
|
+
className: "operator", relevance: 0, variants: [{ match: Be }, { match: `\\.(\\.|${Le})+` }]
|
|
2125
|
+
}], _ = "([0-9]_*)+", h = "([0-9a-fA-F]_*)+", f = {
|
|
2126
|
+
className: "number", relevance: 0,
|
|
2127
|
+
variants: [{ match: `\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b` }, {
|
|
2128
|
+
match: `\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`
|
|
2129
|
+
}, {
|
|
2130
|
+
match: /\b0o([0-7]_*)+\b/
|
|
2131
|
+
}, { match: /\b0b([01]_*)+\b/ }]
|
|
2132
|
+
}, E = (e = "") => ({
|
|
2133
|
+
className: "subst", variants: [{
|
|
2134
|
+
match: b(/\\/, e, /[0\\tnr"']/)
|
|
2135
|
+
}, { match: b(/\\/, e, /u\{[0-9a-fA-F]{1,8}\}/) }]
|
|
2136
|
+
}), y = (e = "") => ({
|
|
2137
|
+
className: "subst", match: b(/\\/, e, /[\t ]*(?:[\r\n]|\r\n)/)
|
|
2138
|
+
}), N = (e = "") => ({
|
|
2139
|
+
className: "subst", label: "interpol", begin: b(/\\/, e, /\(/), end: /\)/
|
|
2140
|
+
}), w = (e = "") => ({
|
|
2141
|
+
begin: b(e, /"""/), end: b(/"""/, e), contains: [E(e), y(e), N(e)]
|
|
2142
|
+
}), v = (e = "") => ({ begin: b(e, /"/), end: b(/"/, e), contains: [E(e), N(e)] }), O = {
|
|
2143
|
+
className: "string",
|
|
2144
|
+
variants: [w(), w("#"), w("##"), w("###"), v(), v("#"), v("##"), v("###")]
|
|
2145
|
+
}, k = [e.BACKSLASH_ESCAPE, {
|
|
2146
|
+
begin: /\[/, end: /\]/, relevance: 0,
|
|
2147
|
+
contains: [e.BACKSLASH_ESCAPE]
|
|
2148
|
+
}], x = {
|
|
2149
|
+
begin: /\/[^\s](?=[^/\n]*\/)/, end: /\//,
|
|
2150
|
+
contains: k
|
|
2151
|
+
}, M = e => {
|
|
2152
|
+
const n = b(e, /\//), t = b(/\//, e); return {
|
|
2153
|
+
begin: n, end: t,
|
|
2154
|
+
contains: [...k, { scope: "comment", begin: `#(?!.*${t})`, end: /$/ }]
|
|
2155
|
+
}
|
|
2156
|
+
}, S = {
|
|
2157
|
+
scope: "regexp", variants: [M("###"), M("##"), M("#"), x]
|
|
2158
|
+
}, A = {
|
|
2159
|
+
match: b(/`/, Fe, /`/)
|
|
2160
|
+
}, C = [A, { className: "variable", match: /\$\d+/ }, {
|
|
2161
|
+
className: "variable",
|
|
2162
|
+
match: `\\$${ze}+`
|
|
2163
|
+
}], T = [{
|
|
2164
|
+
match: /(@|#(un)?)available/, scope: "keyword", starts: {
|
|
2165
|
+
contains: [{ begin: /\(/, end: /\)/, keywords: Pe, contains: [...p, f, O] }]
|
|
2166
|
+
}
|
|
2167
|
+
}, {
|
|
2168
|
+
scope: "keyword", match: b(/@/, m(...je))
|
|
2169
|
+
}, { scope: "meta", match: b(/@/, Fe) }], R = {
|
|
2170
|
+
match: d(/\b[A-Z]/), relevance: 0, contains: [{
|
|
2171
|
+
className: "type",
|
|
2172
|
+
match: b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, ze, "+")
|
|
2173
|
+
}, { className: "type", match: Ue, relevance: 0 }, { match: /[?!]+/, relevance: 0 }, {
|
|
2174
|
+
match: /\.\.\./, relevance: 0
|
|
2175
|
+
}, { match: b(/\s+&\s+/, d(Ue)), relevance: 0 }]
|
|
2176
|
+
}, D = {
|
|
2177
|
+
begin: /</, end: />/, keywords: l, contains: [...a, ...c, ...T, u, R]
|
|
2178
|
+
}; R.contains.push(D)
|
|
2179
|
+
; const I = {
|
|
2180
|
+
begin: /\(/, end: /\)/, relevance: 0, keywords: l, contains: ["self", {
|
|
2181
|
+
match: b(Fe, /\s*:/), keywords: "_|0", relevance: 0
|
|
2182
|
+
}, ...a, S, ...c, ...g, ...p, f, O, ...C, ...T, R]
|
|
2183
|
+
}, L = {
|
|
2184
|
+
begin: /</, end: />/,
|
|
2185
|
+
keywords: "repeat each", contains: [...a, R]
|
|
2186
|
+
}, B = {
|
|
2187
|
+
begin: /\(/, end: /\)/, keywords: l,
|
|
2188
|
+
contains: [{
|
|
2189
|
+
begin: m(d(b(Fe, /\s*:/)), d(b(Fe, /\s+/, Fe, /\s*:/))), end: /:/,
|
|
2190
|
+
relevance: 0, contains: [{ className: "keyword", match: /\b_\b/ }, {
|
|
2191
|
+
className: "params",
|
|
2192
|
+
match: Fe
|
|
2193
|
+
}]
|
|
2194
|
+
}, ...a, ...c, ...p, f, O, ...T, R, I], endsParent: !0, illegal: /["']/
|
|
2195
|
+
}, $ = {
|
|
2196
|
+
match: [/(func|macro)/, /\s+/, m(A.match, Fe, Be)], className: {
|
|
2197
|
+
1: "keyword",
|
|
2198
|
+
3: "title.function"
|
|
2199
|
+
}, contains: [L, B, n], illegal: [/\[/, /%/]
|
|
2200
|
+
}, z = {
|
|
2201
|
+
match: [/\b(?:subscript|init[?!]?)/, /\s*(?=[<(])/], className: { 1: "keyword" },
|
|
2202
|
+
contains: [L, B, n], illegal: /\[|%/
|
|
2203
|
+
}, F = {
|
|
2204
|
+
match: [/operator/, /\s+/, Be], className: {
|
|
2205
|
+
1: "keyword", 3: "title"
|
|
2206
|
+
}
|
|
2207
|
+
}, U = {
|
|
2208
|
+
begin: [/precedencegroup/, /\s+/, Ue], className: {
|
|
2209
|
+
1: "keyword", 3: "title"
|
|
2210
|
+
}, contains: [R], keywords: [...Te, ...Ce], end: /}/
|
|
2211
|
+
}
|
|
2212
|
+
; for (const e of O.variants) {
|
|
2213
|
+
const n = e.contains.find((e => "interpol" === e.label))
|
|
2214
|
+
; n.keywords = l; const t = [...c, ...g, ...p, f, O, ...C]; n.contains = [...t, {
|
|
2215
|
+
begin: /\(/,
|
|
2216
|
+
end: /\)/, contains: ["self", ...t]
|
|
2217
|
+
}]
|
|
2218
|
+
} return {
|
|
2219
|
+
name: "Swift", keywords: l,
|
|
2220
|
+
contains: [...a, $, z, {
|
|
2221
|
+
beginKeywords: "struct protocol class extension enum actor",
|
|
2222
|
+
end: "\\{", excludeEnd: !0, keywords: l, contains: [e.inherit(e.TITLE_MODE, {
|
|
2223
|
+
className: "title.class", begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/
|
|
2224
|
+
}), ...c]
|
|
2225
|
+
}, F, U, {
|
|
2226
|
+
beginKeywords: "import", end: /$/, contains: [...a], relevance: 0
|
|
2227
|
+
}, S, ...c, ...g, ...p, f, O, ...C, ...T, R, I]
|
|
2228
|
+
}
|
|
2229
|
+
}, grmr_typescript: e => {
|
|
2230
|
+
const n = Oe(e), t = _e, a = ["any", "void", "number", "boolean", "string", "object", "never", "symbol", "bigint", "unknown"], i = {
|
|
2231
|
+
beginKeywords: "namespace", end: /\{/, excludeEnd: !0,
|
|
2232
|
+
contains: [n.exports.CLASS_REFERENCE]
|
|
2233
|
+
}, r = {
|
|
2234
|
+
beginKeywords: "interface", end: /\{/,
|
|
2235
|
+
excludeEnd: !0, keywords: { keyword: "interface extends", built_in: a },
|
|
2236
|
+
contains: [n.exports.CLASS_REFERENCE]
|
|
2237
|
+
}, s = {
|
|
2238
|
+
$pattern: _e,
|
|
2239
|
+
keyword: he.concat(["type", "namespace", "interface", "public", "private", "protected", "implements", "declare", "abstract", "readonly", "enum", "override"]),
|
|
2240
|
+
literal: fe, built_in: ve.concat(a), "variable.language": we
|
|
2241
|
+
}, o = {
|
|
2242
|
+
className: "meta",
|
|
2243
|
+
begin: "@" + t
|
|
2244
|
+
}, l = (e, n, t) => {
|
|
2245
|
+
const a = e.contains.findIndex((e => e.label === n))
|
|
2246
|
+
; if (-1 === a) throw Error("can not find mode to replace"); e.contains.splice(a, 1, t)
|
|
2247
|
+
}
|
|
2248
|
+
; return Object.assign(n.keywords, s),
|
|
2249
|
+
n.exports.PARAMS_CONTAINS.push(o), n.contains = n.contains.concat([o, i, r]),
|
|
2250
|
+
l(n, "shebang", e.SHEBANG()), l(n, "use_strict", {
|
|
2251
|
+
className: "meta", relevance: 10,
|
|
2252
|
+
begin: /^\s*['"]use strict['"]/
|
|
2253
|
+
}), n.contains.find((e => "func.def" === e.label)).relevance = 0, Object.assign(n, {
|
|
2254
|
+
name: "TypeScript", aliases: ["ts", "tsx", "mts", "cts"]
|
|
2255
|
+
}), n
|
|
2256
|
+
}, grmr_vbnet: e => {
|
|
2257
|
+
const n = e.regex, t = /\d{1,2}\/\d{1,2}\/\d{4}/, a = /\d{4}-\d{1,2}-\d{1,2}/, i = /(\d|1[012])(:\d+){0,2} *(AM|PM)/, r = /\d{1,2}(:\d{1,2}){1,2}/, s = {
|
|
2258
|
+
className: "literal", variants: [{ begin: n.concat(/# */, n.either(a, t), / *#/) }, {
|
|
2259
|
+
begin: n.concat(/# */, r, / *#/)
|
|
2260
|
+
}, { begin: n.concat(/# */, i, / *#/) }, {
|
|
2261
|
+
begin: n.concat(/# */, n.either(a, t), / +/, n.either(i, r), / *#/)
|
|
2262
|
+
}]
|
|
2263
|
+
}, o = e.COMMENT(/'''/, /$/, {
|
|
2264
|
+
contains: [{ className: "doctag", begin: /<\/?/, end: />/ }]
|
|
2265
|
+
}), l = e.COMMENT(null, /$/, { variants: [{ begin: /'/ }, { begin: /([\t ]|^)REM(?=\s)/ }] })
|
|
2266
|
+
; return {
|
|
2267
|
+
name: "Visual Basic .NET", aliases: ["vb"], case_insensitive: !0,
|
|
2268
|
+
classNameAliases: { label: "symbol" }, keywords: {
|
|
2269
|
+
keyword: "addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
|
|
2270
|
+
built_in: "addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
|
|
2271
|
+
type: "boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
|
|
2272
|
+
literal: "true false nothing"
|
|
2273
|
+
},
|
|
2274
|
+
illegal: "//|\\{|\\}|endif|gosub|variant|wend|^\\$ ", contains: [{
|
|
2275
|
+
className: "string", begin: /"(""|[^/n])"C\b/
|
|
2276
|
+
}, {
|
|
2277
|
+
className: "string", begin: /"/,
|
|
2278
|
+
end: /"/, illegal: /\n/, contains: [{ begin: /""/ }]
|
|
2279
|
+
}, s, {
|
|
2280
|
+
className: "number", relevance: 0,
|
|
2281
|
+
variants: [{
|
|
2282
|
+
begin: /\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
|
|
2283
|
+
}, { begin: /\b\d[\d_]*((U?[SIL])|[%&])?/ }, { begin: /&H[\dA-F_]+((U?[SIL])|[%&])?/ }, {
|
|
2284
|
+
begin: /&O[0-7_]+((U?[SIL])|[%&])?/
|
|
2285
|
+
}, { begin: /&B[01_]+((U?[SIL])|[%&])?/ }]
|
|
2286
|
+
}, {
|
|
2287
|
+
className: "label", begin: /^\w+:/
|
|
2288
|
+
}, o, l, {
|
|
2289
|
+
className: "meta",
|
|
2290
|
+
begin: /[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
|
|
2291
|
+
end: /$/, keywords: {
|
|
2292
|
+
keyword: "const disable else elseif enable end externalsource if region then"
|
|
2293
|
+
},
|
|
2294
|
+
contains: [l]
|
|
2295
|
+
}]
|
|
2296
|
+
}
|
|
2297
|
+
}, grmr_wasm: e => {
|
|
2298
|
+
e.regex; const n = e.COMMENT(/\(;/, /;\)/)
|
|
2299
|
+
; return n.contains.push("self"), {
|
|
2300
|
+
name: "WebAssembly", keywords: {
|
|
2301
|
+
$pattern: /[\w.]+/,
|
|
2302
|
+
keyword: ["anyfunc", "block", "br", "br_if", "br_table", "call", "call_indirect", "data", "drop", "elem", "else", "end", "export", "func", "global.get", "global.set", "local.get", "local.set", "local.tee", "get_global", "get_local", "global", "if", "import", "local", "loop", "memory", "memory.grow", "memory.size", "module", "mut", "nop", "offset", "param", "result", "return", "select", "set_global", "set_local", "start", "table", "tee_local", "then", "type", "unreachable"]
|
|
2303
|
+
}, contains: [e.COMMENT(/;;/, /$/), n, {
|
|
2304
|
+
match: [/(?:offset|align)/, /\s*/, /=/],
|
|
2305
|
+
className: { 1: "keyword", 3: "operator" }
|
|
2306
|
+
}, { className: "variable", begin: /\$[\w_]+/ }, {
|
|
2307
|
+
match: /(\((?!;)|\))+/, className: "punctuation", relevance: 0
|
|
2308
|
+
}, {
|
|
2309
|
+
begin: [/(?:func|call|call_indirect)/, /\s+/, /\$[^\s)]+/], className: {
|
|
2310
|
+
1: "keyword",
|
|
2311
|
+
3: "title.function"
|
|
2312
|
+
}
|
|
2313
|
+
}, e.QUOTE_STRING_MODE, {
|
|
2314
|
+
match: /(i32|i64|f32|f64)(?!\.)/,
|
|
2315
|
+
className: "type"
|
|
2316
|
+
}, {
|
|
2317
|
+
className: "keyword",
|
|
2318
|
+
match: /\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
|
|
2319
|
+
}, {
|
|
2320
|
+
className: "number", relevance: 0,
|
|
2321
|
+
match: /[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
|
|
2322
|
+
}]
|
|
2323
|
+
}
|
|
2324
|
+
}, grmr_xml: e => {
|
|
2325
|
+
const n = e.regex, t = n.concat(/[\p{L}_]/u, n.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), a = {
|
|
2326
|
+
className: "symbol", begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
|
|
2327
|
+
}, i = {
|
|
2328
|
+
begin: /\s/,
|
|
2329
|
+
contains: [{ className: "keyword", begin: /#?[a-z_][a-z1-9_-]+/, illegal: /\n/ }]
|
|
2330
|
+
}, r = e.inherit(i, { begin: /\(/, end: /\)/ }), s = e.inherit(e.APOS_STRING_MODE, {
|
|
2331
|
+
className: "string"
|
|
2332
|
+
}), o = e.inherit(e.QUOTE_STRING_MODE, { className: "string" }), l = {
|
|
2333
|
+
endsWithParent: !0, illegal: /</, relevance: 0, contains: [{
|
|
2334
|
+
className: "attr",
|
|
2335
|
+
begin: /[\p{L}0-9._:-]+/u, relevance: 0
|
|
2336
|
+
}, {
|
|
2337
|
+
begin: /=\s*/, relevance: 0, contains: [{
|
|
2338
|
+
className: "string", endsParent: !0, variants: [{ begin: /"/, end: /"/, contains: [a] }, {
|
|
2339
|
+
begin: /'/, end: /'/, contains: [a]
|
|
2340
|
+
}, { begin: /[^\s"'=<>`]+/ }]
|
|
2341
|
+
}]
|
|
2342
|
+
}]
|
|
2343
|
+
}; return {
|
|
2344
|
+
name: "HTML, XML",
|
|
2345
|
+
aliases: ["html", "xhtml", "rss", "atom", "xjb", "xsd", "xsl", "plist", "wsf", "svg"],
|
|
2346
|
+
case_insensitive: !0, unicodeRegex: !0, contains: [{
|
|
2347
|
+
className: "meta", begin: /<![a-z]/,
|
|
2348
|
+
end: />/, relevance: 10, contains: [i, o, s, r, {
|
|
2349
|
+
begin: /\[/, end: /\]/, contains: [{
|
|
2350
|
+
className: "meta", begin: /<![a-z]/, end: />/, contains: [i, r, o, s]
|
|
2351
|
+
}]
|
|
2352
|
+
}]
|
|
2353
|
+
}, e.COMMENT(/<!--/, /-->/, { relevance: 10 }), {
|
|
2354
|
+
begin: /<!\[CDATA\[/, end: /\]\]>/,
|
|
2355
|
+
relevance: 10
|
|
2356
|
+
}, a, {
|
|
2357
|
+
className: "meta", end: /\?>/, variants: [{
|
|
2358
|
+
begin: /<\?xml/,
|
|
2359
|
+
relevance: 10, contains: [o]
|
|
2360
|
+
}, { begin: /<\?[a-z][a-z0-9]+/ }]
|
|
2361
|
+
}, {
|
|
2362
|
+
className: "tag",
|
|
2363
|
+
begin: /<style(?=\s|>)/, end: />/, keywords: { name: "style" }, contains: [l], starts: {
|
|
2364
|
+
end: /<\/style>/, returnEnd: !0, subLanguage: ["css", "xml"]
|
|
2365
|
+
}
|
|
2366
|
+
}, {
|
|
2367
|
+
className: "tag",
|
|
2368
|
+
begin: /<script(?=\s|>)/, end: />/, keywords: { name: "script" }, contains: [l], starts: {
|
|
2369
|
+
end: /<\/script>/, returnEnd: !0, subLanguage: ["javascript", "handlebars", "xml"]
|
|
2370
|
+
}
|
|
2371
|
+
}, {
|
|
2372
|
+
className: "tag", begin: /<>|<\/>/
|
|
2373
|
+
}, {
|
|
2374
|
+
className: "tag",
|
|
2375
|
+
begin: n.concat(/</, n.lookahead(n.concat(t, n.either(/\/>/, />/, /\s/)))),
|
|
2376
|
+
end: /\/?>/, contains: [{ className: "name", begin: t, relevance: 0, starts: l }]
|
|
2377
|
+
}, {
|
|
2378
|
+
className: "tag", begin: n.concat(/<\//, n.lookahead(n.concat(t, />/))), contains: [{
|
|
2379
|
+
className: "name", begin: t, relevance: 0
|
|
2380
|
+
}, { begin: />/, relevance: 0, endsParent: !0 }]
|
|
2381
|
+
}]
|
|
2382
|
+
}
|
|
2383
|
+
}, grmr_yaml: e => {
|
|
2384
|
+
const n = "true false yes no null", t = "[\\w#;/?:@&=+$,.~*'()[\\]]+", a = {
|
|
2385
|
+
className: "string", relevance: 0, variants: [{ begin: /'/, end: /'/ }, {
|
|
2386
|
+
begin: /"/, end: /"/
|
|
2387
|
+
}, { begin: /\S+/ }], contains: [e.BACKSLASH_ESCAPE, {
|
|
2388
|
+
className: "template-variable",
|
|
2389
|
+
variants: [{ begin: /\{\{/, end: /\}\}/ }, { begin: /%\{/, end: /\}/ }]
|
|
2390
|
+
}]
|
|
2391
|
+
}, i = e.inherit(a, {
|
|
2392
|
+
variants: [{ begin: /'/, end: /'/ }, { begin: /"/, end: /"/ }, { begin: /[^\s,{}[\]]+/ }]
|
|
2393
|
+
}), r = {
|
|
2394
|
+
end: ",", endsWithParent: !0, excludeEnd: !0, keywords: n, relevance: 0
|
|
2395
|
+
}, s = {
|
|
2396
|
+
begin: /\{/,
|
|
2397
|
+
end: /\}/, contains: [r], illegal: "\\n", relevance: 0
|
|
2398
|
+
}, o = {
|
|
2399
|
+
begin: "\\[", end: "\\]",
|
|
2400
|
+
contains: [r], illegal: "\\n", relevance: 0
|
|
2401
|
+
}, l = [{
|
|
2402
|
+
className: "attr", variants: [{
|
|
2403
|
+
begin: "\\w[\\w :\\/.-]*:(?=[ \t]|$)"
|
|
2404
|
+
}, { begin: '"\\w[\\w :\\/.-]*":(?=[ \t]|$)' }, {
|
|
2405
|
+
begin: "'\\w[\\w :\\/.-]*':(?=[ \t]|$)"
|
|
2406
|
+
}]
|
|
2407
|
+
}, {
|
|
2408
|
+
className: "meta", begin: "^---\\s*$",
|
|
2409
|
+
relevance: 10
|
|
2410
|
+
}, {
|
|
2411
|
+
className: "string",
|
|
2412
|
+
begin: "[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"
|
|
2413
|
+
}, {
|
|
2414
|
+
begin: "<%[%=-]?", end: "[%-]?%>", subLanguage: "ruby", excludeBegin: !0, excludeEnd: !0,
|
|
2415
|
+
relevance: 0
|
|
2416
|
+
}, { className: "type", begin: "!\\w+!" + t }, {
|
|
2417
|
+
className: "type",
|
|
2418
|
+
begin: "!<" + t + ">"
|
|
2419
|
+
}, { className: "type", begin: "!" + t }, {
|
|
2420
|
+
className: "type", begin: "!!" + t
|
|
2421
|
+
}, { className: "meta", begin: "&" + e.UNDERSCORE_IDENT_RE + "$" }, {
|
|
2422
|
+
className: "meta",
|
|
2423
|
+
begin: "\\*" + e.UNDERSCORE_IDENT_RE + "$"
|
|
2424
|
+
}, {
|
|
2425
|
+
className: "bullet", begin: "-(?=[ ]|$)",
|
|
2426
|
+
relevance: 0
|
|
2427
|
+
}, e.HASH_COMMENT_MODE, { beginKeywords: n, keywords: { literal: n } }, {
|
|
2428
|
+
className: "number",
|
|
2429
|
+
begin: "\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
|
|
2430
|
+
}, { className: "number", begin: e.C_NUMBER_RE + "\\b", relevance: 0 }, s, o, a], c = [...l]
|
|
2431
|
+
; return c.pop(), c.push(i), r.contains = c, {
|
|
2432
|
+
name: "YAML", case_insensitive: !0,
|
|
2433
|
+
aliases: ["yml"], contains: l
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
}); const He = ae; for (const e of Object.keys(Ke)) {
|
|
2437
|
+
const n = e.replace("grmr_", "").replace("_", "-"); He.registerLanguage(n, Ke[e])
|
|
2438
|
+
}
|
|
2439
|
+
return He
|
|
2440
|
+
}()
|
|
2441
|
+
; "object" == typeof exports && "undefined" != typeof module && (module.exports = hljs);
|