htmlMode.js1863 lines · main
1'use strict'
2/*!-----------------------------------------------------------------------------
3 * Copyright (c) Microsoft Corporation. All rights reserved.
4 * Version: 0.37.0(14a92401d7aff24ad84578a4c8b9a701ff533a84)
5 * Released under the MIT license
6 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
7 *-----------------------------------------------------------------------------*/
8define('vs/language/html/htmlMode', ['require', 'require'], (require) => {
9 var moduleExports = (() => {
10 var nn = Object.create
11 var Q = Object.defineProperty
12 var tn = Object.getOwnPropertyDescriptor
13 var rn = Object.getOwnPropertyNames
14 var on = Object.getPrototypeOf,
15 sn = Object.prototype.hasOwnProperty
16 var an = ((n) =>
17 typeof require != 'undefined'
18 ? require
19 : typeof Proxy != 'undefined'
20 ? new Proxy(n, { get: (t, i) => (typeof require != 'undefined' ? require : t)[i] })
21 : n)(function (n) {
22 if (typeof require != 'undefined') return require.apply(this, arguments)
23 throw new Error('Dynamic require of "' + n + '" is not supported')
24 })
25 var un = (n, t) => () => (t || n((t = { exports: {} }).exports, t), t.exports),
26 dn = (n, t) => {
27 for (var i in t) Q(n, i, { get: t[i], enumerable: !0 })
28 },
29 q = (n, t, i, r) => {
30 if ((t && typeof t == 'object') || typeof t == 'function')
31 for (let e of rn(t))
32 !sn.call(n, e) &&
33 e !== i &&
34 Q(n, e, { get: () => t[e], enumerable: !(r = tn(t, e)) || r.enumerable })
35 return n
36 },
37 he = (n, t, i) => (q(n, t, 'default'), i && q(i, t, 'default')),
38 me = (n, t, i) => (
39 (i = n != null ? nn(on(n)) : {}),
40 q(t || !n || !n.__esModule ? Q(i, 'default', { value: n, enumerable: !0 }) : i, n)
41 ),
42 cn = (n) => q(Q({}, '__esModule', { value: !0 }), n)
43 var Te = un((Ln, ve) => {
44 var ln = me(an('vs/editor/editor.api'))
45 ve.exports = ln
46 })
47 var Rn = {}
48 dn(Rn, {
49 CompletionAdapter: () => B,
50 DefinitionAdapter: () => ce,
51 DiagnosticsAdapter: () => de,
52 DocumentColorAdapter: () => ge,
53 DocumentFormattingEditProvider: () => H,
54 DocumentHighlightAdapter: () => S,
55 DocumentLinkAdapter: () => A,
56 DocumentRangeFormattingEditProvider: () => K,
57 DocumentSymbolAdapter: () => M,
58 FoldingRangeAdapter: () => U,
59 HoverAdapter: () => D,
60 ReferenceAdapter: () => le,
61 RenameAdapter: () => F,
62 SelectionRangeAdapter: () => j,
63 WorkerManager: () => b,
64 fromPosition: () => C,
65 fromRange: () => fe,
66 setupMode: () => Pn,
67 setupMode1: () => En,
68 toRange: () => y,
69 toTextEdit: () => L,
70 })
71 var d = {}
72 he(d, me(Te()))
73 var gn = 2 * 60 * 1e3,
74 b = class {
75 _defaults
76 _idleCheckInterval
77 _lastUsedTime
78 _configChangeListener
79 _worker
80 _client
81 constructor(t) {
82 ;(this._defaults = t),
83 (this._worker = null),
84 (this._client = null),
85 (this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3)),
86 (this._lastUsedTime = 0),
87 (this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()))
88 }
89 _stopWorker() {
90 this._worker && (this._worker.dispose(), (this._worker = null)), (this._client = null)
91 }
92 dispose() {
93 clearInterval(this._idleCheckInterval),
94 this._configChangeListener.dispose(),
95 this._stopWorker()
96 }
97 _checkIfIdle() {
98 if (!this._worker) return
99 Date.now() - this._lastUsedTime > gn && this._stopWorker()
100 }
101 _getClient() {
102 return (
103 (this._lastUsedTime = Date.now()),
104 this._client ||
105 ((this._worker = d.editor.createWebWorker({
106 moduleId: 'vs/language/html/htmlWorker',
107 createData: {
108 languageSettings: this._defaults.options,
109 languageId: this._defaults.languageId,
110 },
111 label: this._defaults.languageId,
112 })),
113 (this._client = this._worker.getProxy())),
114 this._client
115 )
116 }
117 getLanguageServiceWorker(...t) {
118 let i
119 return this._getClient()
120 .then((r) => {
121 i = r
122 })
123 .then((r) => {
124 if (this._worker) return this._worker.withSyncedResources(t)
125 })
126 .then((r) => i)
127 }
128 }
129 var ye
130 ;(function (n) {
131 ;(n.MIN_VALUE = -2147483648), (n.MAX_VALUE = 2147483647)
132 })(ye || (ye = {}))
133 var J
134 ;(function (n) {
135 ;(n.MIN_VALUE = 0), (n.MAX_VALUE = 2147483647)
136 })(J || (J = {}))
137 var x
138 ;(function (n) {
139 function t(r, e) {
140 return (
141 r === Number.MAX_VALUE && (r = J.MAX_VALUE),
142 e === Number.MAX_VALUE && (e = J.MAX_VALUE),
143 { line: r, character: e }
144 )
145 }
146 n.create = t
147 function i(r) {
148 var e = r
149 return a.objectLiteral(e) && a.uinteger(e.line) && a.uinteger(e.character)
150 }
151 n.is = i
152 })(x || (x = {}))
153 var v
154 ;(function (n) {
155 function t(r, e, o, s) {
156 if (a.uinteger(r) && a.uinteger(e) && a.uinteger(o) && a.uinteger(s))
157 return { start: x.create(r, e), end: x.create(o, s) }
158 if (x.is(r) && x.is(e)) return { start: r, end: e }
159 throw new Error(
160 'Range#create called with invalid arguments[' + r + ', ' + e + ', ' + o + ', ' + s + ']'
161 )
162 }
163 n.create = t
164 function i(r) {
165 var e = r
166 return a.objectLiteral(e) && x.is(e.start) && x.is(e.end)
167 }
168 n.is = i
169 })(v || (v = {}))
170 var ie
171 ;(function (n) {
172 function t(r, e) {
173 return { uri: r, range: e }
174 }
175 n.create = t
176 function i(r) {
177 var e = r
178 return a.defined(e) && v.is(e.range) && (a.string(e.uri) || a.undefined(e.uri))
179 }
180 n.is = i
181 })(ie || (ie = {}))
182 var xe
183 ;(function (n) {
184 function t(r, e, o, s) {
185 return { targetUri: r, targetRange: e, targetSelectionRange: o, originSelectionRange: s }
186 }
187 n.create = t
188 function i(r) {
189 var e = r
190 return (
191 a.defined(e) &&
192 v.is(e.targetRange) &&
193 a.string(e.targetUri) &&
194 (v.is(e.targetSelectionRange) || a.undefined(e.targetSelectionRange)) &&
195 (v.is(e.originSelectionRange) || a.undefined(e.originSelectionRange))
196 )
197 }
198 n.is = i
199 })(xe || (xe = {}))
200 var oe
201 ;(function (n) {
202 function t(r, e, o, s) {
203 return { red: r, green: e, blue: o, alpha: s }
204 }
205 n.create = t
206 function i(r) {
207 var e = r
208 return (
209 a.numberRange(e.red, 0, 1) &&
210 a.numberRange(e.green, 0, 1) &&
211 a.numberRange(e.blue, 0, 1) &&
212 a.numberRange(e.alpha, 0, 1)
213 )
214 }
215 n.is = i
216 })(oe || (oe = {}))
217 var ke
218 ;(function (n) {
219 function t(r, e) {
220 return { range: r, color: e }
221 }
222 n.create = t
223 function i(r) {
224 var e = r
225 return v.is(e.range) && oe.is(e.color)
226 }
227 n.is = i
228 })(ke || (ke = {}))
229 var Ie
230 ;(function (n) {
231 function t(r, e, o) {
232 return { label: r, textEdit: e, additionalTextEdits: o }
233 }
234 n.create = t
235 function i(r) {
236 var e = r
237 return (
238 a.string(e.label) &&
239 (a.undefined(e.textEdit) || _.is(e)) &&
240 (a.undefined(e.additionalTextEdits) || a.typedArray(e.additionalTextEdits, _.is))
241 )
242 }
243 n.is = i
244 })(Ie || (Ie = {}))
245 var R
246 ;(function (n) {
247 ;(n.Comment = 'comment'), (n.Imports = 'imports'), (n.Region = 'region')
248 })(R || (R = {}))
249 var _e
250 ;(function (n) {
251 function t(r, e, o, s, u) {
252 var l = { startLine: r, endLine: e }
253 return (
254 a.defined(o) && (l.startCharacter = o),
255 a.defined(s) && (l.endCharacter = s),
256 a.defined(u) && (l.kind = u),
257 l
258 )
259 }
260 n.create = t
261 function i(r) {
262 var e = r
263 return (
264 a.uinteger(e.startLine) &&
265 a.uinteger(e.startLine) &&
266 (a.undefined(e.startCharacter) || a.uinteger(e.startCharacter)) &&
267 (a.undefined(e.endCharacter) || a.uinteger(e.endCharacter)) &&
268 (a.undefined(e.kind) || a.string(e.kind))
269 )
270 }
271 n.is = i
272 })(_e || (_e = {}))
273 var se
274 ;(function (n) {
275 function t(r, e) {
276 return { location: r, message: e }
277 }
278 n.create = t
279 function i(r) {
280 var e = r
281 return a.defined(e) && ie.is(e.location) && a.string(e.message)
282 }
283 n.is = i
284 })(se || (se = {}))
285 var w
286 ;(function (n) {
287 ;(n.Error = 1), (n.Warning = 2), (n.Information = 3), (n.Hint = 4)
288 })(w || (w = {}))
289 var Ce
290 ;(function (n) {
291 ;(n.Unnecessary = 1), (n.Deprecated = 2)
292 })(Ce || (Ce = {}))
293 var be
294 ;(function (n) {
295 function t(i) {
296 var r = i
297 return r != null && a.string(r.href)
298 }
299 n.is = t
300 })(be || (be = {}))
301 var Y
302 ;(function (n) {
303 function t(r, e, o, s, u, l) {
304 var f = { range: r, message: e }
305 return (
306 a.defined(o) && (f.severity = o),
307 a.defined(s) && (f.code = s),
308 a.defined(u) && (f.source = u),
309 a.defined(l) && (f.relatedInformation = l),
310 f
311 )
312 }
313 n.create = t
314 function i(r) {
315 var e,
316 o = r
317 return (
318 a.defined(o) &&
319 v.is(o.range) &&
320 a.string(o.message) &&
321 (a.number(o.severity) || a.undefined(o.severity)) &&
322 (a.integer(o.code) || a.string(o.code) || a.undefined(o.code)) &&
323 (a.undefined(o.codeDescription) ||
324 a.string((e = o.codeDescription) === null || e === void 0 ? void 0 : e.href)) &&
325 (a.string(o.source) || a.undefined(o.source)) &&
326 (a.undefined(o.relatedInformation) || a.typedArray(o.relatedInformation, se.is))
327 )
328 }
329 n.is = i
330 })(Y || (Y = {}))
331 var O
332 ;(function (n) {
333 function t(r, e) {
334 for (var o = [], s = 2; s < arguments.length; s++) o[s - 2] = arguments[s]
335 var u = { title: r, command: e }
336 return a.defined(o) && o.length > 0 && (u.arguments = o), u
337 }
338 n.create = t
339 function i(r) {
340 var e = r
341 return a.defined(e) && a.string(e.title) && a.string(e.command)
342 }
343 n.is = i
344 })(O || (O = {}))
345 var _
346 ;(function (n) {
347 function t(o, s) {
348 return { range: o, newText: s }
349 }
350 n.replace = t
351 function i(o, s) {
352 return { range: { start: o, end: o }, newText: s }
353 }
354 n.insert = i
355 function r(o) {
356 return { range: o, newText: '' }
357 }
358 n.del = r
359 function e(o) {
360 var s = o
361 return a.objectLiteral(s) && a.string(s.newText) && v.is(s.range)
362 }
363 n.is = e
364 })(_ || (_ = {}))
365 var P
366 ;(function (n) {
367 function t(r, e, o) {
368 var s = { label: r }
369 return e !== void 0 && (s.needsConfirmation = e), o !== void 0 && (s.description = o), s
370 }
371 n.create = t
372 function i(r) {
373 var e = r
374 return (
375 e !== void 0 &&
376 a.objectLiteral(e) &&
377 a.string(e.label) &&
378 (a.boolean(e.needsConfirmation) || e.needsConfirmation === void 0) &&
379 (a.string(e.description) || e.description === void 0)
380 )
381 }
382 n.is = i
383 })(P || (P = {}))
384 var T
385 ;(function (n) {
386 function t(i) {
387 var r = i
388 return typeof r == 'string'
389 }
390 n.is = t
391 })(T || (T = {}))
392 var I
393 ;(function (n) {
394 function t(o, s, u) {
395 return { range: o, newText: s, annotationId: u }
396 }
397 n.replace = t
398 function i(o, s, u) {
399 return { range: { start: o, end: o }, newText: s, annotationId: u }
400 }
401 n.insert = i
402 function r(o, s) {
403 return { range: o, newText: '', annotationId: s }
404 }
405 n.del = r
406 function e(o) {
407 var s = o
408 return _.is(s) && (P.is(s.annotationId) || T.is(s.annotationId))
409 }
410 n.is = e
411 })(I || (I = {}))
412 var Z
413 ;(function (n) {
414 function t(r, e) {
415 return { textDocument: r, edits: e }
416 }
417 n.create = t
418 function i(r) {
419 var e = r
420 return a.defined(e) && ee.is(e.textDocument) && Array.isArray(e.edits)
421 }
422 n.is = i
423 })(Z || (Z = {}))
424 var N
425 ;(function (n) {
426 function t(r, e, o) {
427 var s = { kind: 'create', uri: r }
428 return (
429 e !== void 0 &&
430 (e.overwrite !== void 0 || e.ignoreIfExists !== void 0) &&
431 (s.options = e),
432 o !== void 0 && (s.annotationId = o),
433 s
434 )
435 }
436 n.create = t
437 function i(r) {
438 var e = r
439 return (
440 e &&
441 e.kind === 'create' &&
442 a.string(e.uri) &&
443 (e.options === void 0 ||
444 ((e.options.overwrite === void 0 || a.boolean(e.options.overwrite)) &&
445 (e.options.ignoreIfExists === void 0 || a.boolean(e.options.ignoreIfExists)))) &&
446 (e.annotationId === void 0 || T.is(e.annotationId))
447 )
448 }
449 n.is = i
450 })(N || (N = {}))
451 var V
452 ;(function (n) {
453 function t(r, e, o, s) {
454 var u = { kind: 'rename', oldUri: r, newUri: e }
455 return (
456 o !== void 0 &&
457 (o.overwrite !== void 0 || o.ignoreIfExists !== void 0) &&
458 (u.options = o),
459 s !== void 0 && (u.annotationId = s),
460 u
461 )
462 }
463 n.create = t
464 function i(r) {
465 var e = r
466 return (
467 e &&
468 e.kind === 'rename' &&
469 a.string(e.oldUri) &&
470 a.string(e.newUri) &&
471 (e.options === void 0 ||
472 ((e.options.overwrite === void 0 || a.boolean(e.options.overwrite)) &&
473 (e.options.ignoreIfExists === void 0 || a.boolean(e.options.ignoreIfExists)))) &&
474 (e.annotationId === void 0 || T.is(e.annotationId))
475 )
476 }
477 n.is = i
478 })(V || (V = {}))
479 var z
480 ;(function (n) {
481 function t(r, e, o) {
482 var s = { kind: 'delete', uri: r }
483 return (
484 e !== void 0 &&
485 (e.recursive !== void 0 || e.ignoreIfNotExists !== void 0) &&
486 (s.options = e),
487 o !== void 0 && (s.annotationId = o),
488 s
489 )
490 }
491 n.create = t
492 function i(r) {
493 var e = r
494 return (
495 e &&
496 e.kind === 'delete' &&
497 a.string(e.uri) &&
498 (e.options === void 0 ||
499 ((e.options.recursive === void 0 || a.boolean(e.options.recursive)) &&
500 (e.options.ignoreIfNotExists === void 0 ||
501 a.boolean(e.options.ignoreIfNotExists)))) &&
502 (e.annotationId === void 0 || T.is(e.annotationId))
503 )
504 }
505 n.is = i
506 })(z || (z = {}))
507 var ae
508 ;(function (n) {
509 function t(i) {
510 var r = i
511 return (
512 r &&
513 (r.changes !== void 0 || r.documentChanges !== void 0) &&
514 (r.documentChanges === void 0 ||
515 r.documentChanges.every(function (e) {
516 return a.string(e.kind) ? N.is(e) || V.is(e) || z.is(e) : Z.is(e)
517 }))
518 )
519 }
520 n.is = t
521 })(ae || (ae = {}))
522 var G = (function () {
523 function n(t, i) {
524 ;(this.edits = t), (this.changeAnnotations = i)
525 }
526 return (
527 (n.prototype.insert = function (t, i, r) {
528 var e, o
529 if (
530 (r === void 0
531 ? (e = _.insert(t, i))
532 : T.is(r)
533 ? ((o = r), (e = I.insert(t, i, r)))
534 : (this.assertChangeAnnotations(this.changeAnnotations),
535 (o = this.changeAnnotations.manage(r)),
536 (e = I.insert(t, i, o))),
537 this.edits.push(e),
538 o !== void 0)
539 )
540 return o
541 }),
542 (n.prototype.replace = function (t, i, r) {
543 var e, o
544 if (
545 (r === void 0
546 ? (e = _.replace(t, i))
547 : T.is(r)
548 ? ((o = r), (e = I.replace(t, i, r)))
549 : (this.assertChangeAnnotations(this.changeAnnotations),
550 (o = this.changeAnnotations.manage(r)),
551 (e = I.replace(t, i, o))),
552 this.edits.push(e),
553 o !== void 0)
554 )
555 return o
556 }),
557 (n.prototype.delete = function (t, i) {
558 var r, e
559 if (
560 (i === void 0
561 ? (r = _.del(t))
562 : T.is(i)
563 ? ((e = i), (r = I.del(t, i)))
564 : (this.assertChangeAnnotations(this.changeAnnotations),
565 (e = this.changeAnnotations.manage(i)),
566 (r = I.del(t, e))),
567 this.edits.push(r),
568 e !== void 0)
569 )
570 return e
571 }),
572 (n.prototype.add = function (t) {
573 this.edits.push(t)
574 }),
575 (n.prototype.all = function () {
576 return this.edits
577 }),
578 (n.prototype.clear = function () {
579 this.edits.splice(0, this.edits.length)
580 }),
581 (n.prototype.assertChangeAnnotations = function (t) {
582 if (t === void 0)
583 throw new Error('Text edit change is not configured to manage change annotations.')
584 }),
585 n
586 )
587 })(),
588 we = (function () {
589 function n(t) {
590 ;(this._annotations = t === void 0 ? Object.create(null) : t),
591 (this._counter = 0),
592 (this._size = 0)
593 }
594 return (
595 (n.prototype.all = function () {
596 return this._annotations
597 }),
598 Object.defineProperty(n.prototype, 'size', {
599 get: function () {
600 return this._size
601 },
602 enumerable: !1,
603 configurable: !0,
604 }),
605 (n.prototype.manage = function (t, i) {
606 var r
607 if (
608 (T.is(t) ? (r = t) : ((r = this.nextId()), (i = t)), this._annotations[r] !== void 0)
609 )
610 throw new Error('Id ' + r + ' is already in use.')
611 if (i === void 0) throw new Error('No annotation provided for id ' + r)
612 return (this._annotations[r] = i), this._size++, r
613 }),
614 (n.prototype.nextId = function () {
615 return this._counter++, this._counter.toString()
616 }),
617 n
618 )
619 })(),
620 Hn = (function () {
621 function n(t) {
622 var i = this
623 ;(this._textEditChanges = Object.create(null)),
624 t !== void 0
625 ? ((this._workspaceEdit = t),
626 t.documentChanges
627 ? ((this._changeAnnotations = new we(t.changeAnnotations)),
628 (t.changeAnnotations = this._changeAnnotations.all()),
629 t.documentChanges.forEach(function (r) {
630 if (Z.is(r)) {
631 var e = new G(r.edits, i._changeAnnotations)
632 i._textEditChanges[r.textDocument.uri] = e
633 }
634 }))
635 : t.changes &&
636 Object.keys(t.changes).forEach(function (r) {
637 var e = new G(t.changes[r])
638 i._textEditChanges[r] = e
639 }))
640 : (this._workspaceEdit = {})
641 }
642 return (
643 Object.defineProperty(n.prototype, 'edit', {
644 get: function () {
645 return (
646 this.initDocumentChanges(),
647 this._changeAnnotations !== void 0 &&
648 (this._changeAnnotations.size === 0
649 ? (this._workspaceEdit.changeAnnotations = void 0)
650 : (this._workspaceEdit.changeAnnotations = this._changeAnnotations.all())),
651 this._workspaceEdit
652 )
653 },
654 enumerable: !1,
655 configurable: !0,
656 }),
657 (n.prototype.getTextEditChange = function (t) {
658 if (ee.is(t)) {
659 if ((this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0))
660 throw new Error('Workspace edit is not configured for document changes.')
661 var i = { uri: t.uri, version: t.version },
662 r = this._textEditChanges[i.uri]
663 if (!r) {
664 var e = [],
665 o = { textDocument: i, edits: e }
666 this._workspaceEdit.documentChanges.push(o),
667 (r = new G(e, this._changeAnnotations)),
668 (this._textEditChanges[i.uri] = r)
669 }
670 return r
671 } else {
672 if ((this.initChanges(), this._workspaceEdit.changes === void 0))
673 throw new Error('Workspace edit is not configured for normal text edit changes.')
674 var r = this._textEditChanges[t]
675 if (!r) {
676 var e = []
677 ;(this._workspaceEdit.changes[t] = e),
678 (r = new G(e)),
679 (this._textEditChanges[t] = r)
680 }
681 return r
682 }
683 }),
684 (n.prototype.initDocumentChanges = function () {
685 this._workspaceEdit.documentChanges === void 0 &&
686 this._workspaceEdit.changes === void 0 &&
687 ((this._changeAnnotations = new we()),
688 (this._workspaceEdit.documentChanges = []),
689 (this._workspaceEdit.changeAnnotations = this._changeAnnotations.all()))
690 }),
691 (n.prototype.initChanges = function () {
692 this._workspaceEdit.documentChanges === void 0 &&
693 this._workspaceEdit.changes === void 0 &&
694 (this._workspaceEdit.changes = Object.create(null))
695 }),
696 (n.prototype.createFile = function (t, i, r) {
697 if ((this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0))
698 throw new Error('Workspace edit is not configured for document changes.')
699 var e
700 P.is(i) || T.is(i) ? (e = i) : (r = i)
701 var o, s
702 if (
703 (e === void 0
704 ? (o = N.create(t, r))
705 : ((s = T.is(e) ? e : this._changeAnnotations.manage(e)), (o = N.create(t, r, s))),
706 this._workspaceEdit.documentChanges.push(o),
707 s !== void 0)
708 )
709 return s
710 }),
711 (n.prototype.renameFile = function (t, i, r, e) {
712 if ((this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0))
713 throw new Error('Workspace edit is not configured for document changes.')
714 var o
715 P.is(r) || T.is(r) ? (o = r) : (e = r)
716 var s, u
717 if (
718 (o === void 0
719 ? (s = V.create(t, i, e))
720 : ((u = T.is(o) ? o : this._changeAnnotations.manage(o)),
721 (s = V.create(t, i, e, u))),
722 this._workspaceEdit.documentChanges.push(s),
723 u !== void 0)
724 )
725 return u
726 }),
727 (n.prototype.deleteFile = function (t, i, r) {
728 if ((this.initDocumentChanges(), this._workspaceEdit.documentChanges === void 0))
729 throw new Error('Workspace edit is not configured for document changes.')
730 var e
731 P.is(i) || T.is(i) ? (e = i) : (r = i)
732 var o, s
733 if (
734 (e === void 0
735 ? (o = z.create(t, r))
736 : ((s = T.is(e) ? e : this._changeAnnotations.manage(e)), (o = z.create(t, r, s))),
737 this._workspaceEdit.documentChanges.push(o),
738 s !== void 0)
739 )
740 return s
741 }),
742 n
743 )
744 })()
745 var Ee
746 ;(function (n) {
747 function t(r) {
748 return { uri: r }
749 }
750 n.create = t
751 function i(r) {
752 var e = r
753 return a.defined(e) && a.string(e.uri)
754 }
755 n.is = i
756 })(Ee || (Ee = {}))
757 var Pe
758 ;(function (n) {
759 function t(r, e) {
760 return { uri: r, version: e }
761 }
762 n.create = t
763 function i(r) {
764 var e = r
765 return a.defined(e) && a.string(e.uri) && a.integer(e.version)
766 }
767 n.is = i
768 })(Pe || (Pe = {}))
769 var ee
770 ;(function (n) {
771 function t(r, e) {
772 return { uri: r, version: e }
773 }
774 n.create = t
775 function i(r) {
776 var e = r
777 return a.defined(e) && a.string(e.uri) && (e.version === null || a.integer(e.version))
778 }
779 n.is = i
780 })(ee || (ee = {}))
781 var Re
782 ;(function (n) {
783 function t(r, e, o, s) {
784 return { uri: r, languageId: e, version: o, text: s }
785 }
786 n.create = t
787 function i(r) {
788 var e = r
789 return (
790 a.defined(e) &&
791 a.string(e.uri) &&
792 a.string(e.languageId) &&
793 a.integer(e.version) &&
794 a.string(e.text)
795 )
796 }
797 n.is = i
798 })(Re || (Re = {}))
799 var X
800 ;(function (n) {
801 ;(n.PlainText = 'plaintext'), (n.Markdown = 'markdown')
802 })(X || (X = {}))
803 ;(function (n) {
804 function t(i) {
805 var r = i
806 return r === n.PlainText || r === n.Markdown
807 }
808 n.is = t
809 })(X || (X = {}))
810 var ue
811 ;(function (n) {
812 function t(i) {
813 var r = i
814 return a.objectLiteral(i) && X.is(r.kind) && a.string(r.value)
815 }
816 n.is = t
817 })(ue || (ue = {}))
818 var p
819 ;(function (n) {
820 ;(n.Text = 1),
821 (n.Method = 2),
822 (n.Function = 3),
823 (n.Constructor = 4),
824 (n.Field = 5),
825 (n.Variable = 6),
826 (n.Class = 7),
827 (n.Interface = 8),
828 (n.Module = 9),
829 (n.Property = 10),
830 (n.Unit = 11),
831 (n.Value = 12),
832 (n.Enum = 13),
833 (n.Keyword = 14),
834 (n.Snippet = 15),
835 (n.Color = 16),
836 (n.File = 17),
837 (n.Reference = 18),
838 (n.Folder = 19),
839 (n.EnumMember = 20),
840 (n.Constant = 21),
841 (n.Struct = 22),
842 (n.Event = 23),
843 (n.Operator = 24),
844 (n.TypeParameter = 25)
845 })(p || (p = {}))
846 var ne
847 ;(function (n) {
848 ;(n.PlainText = 1), (n.Snippet = 2)
849 })(ne || (ne = {}))
850 var We
851 ;(function (n) {
852 n.Deprecated = 1
853 })(We || (We = {}))
854 var Le
855 ;(function (n) {
856 function t(r, e, o) {
857 return { newText: r, insert: e, replace: o }
858 }
859 n.create = t
860 function i(r) {
861 var e = r
862 return e && a.string(e.newText) && v.is(e.insert) && v.is(e.replace)
863 }
864 n.is = i
865 })(Le || (Le = {}))
866 var De
867 ;(function (n) {
868 ;(n.asIs = 1), (n.adjustIndentation = 2)
869 })(De || (De = {}))
870 var Se
871 ;(function (n) {
872 function t(i) {
873 return { label: i }
874 }
875 n.create = t
876 })(Se || (Se = {}))
877 var Fe
878 ;(function (n) {
879 function t(i, r) {
880 return { items: i || [], isIncomplete: !!r }
881 }
882 n.create = t
883 })(Fe || (Fe = {}))
884 var te
885 ;(function (n) {
886 function t(r) {
887 return r.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&')
888 }
889 n.fromPlainText = t
890 function i(r) {
891 var e = r
892 return a.string(e) || (a.objectLiteral(e) && a.string(e.language) && a.string(e.value))
893 }
894 n.is = i
895 })(te || (te = {}))
896 var Me
897 ;(function (n) {
898 function t(i) {
899 var r = i
900 return (
901 !!r &&
902 a.objectLiteral(r) &&
903 (ue.is(r.contents) || te.is(r.contents) || a.typedArray(r.contents, te.is)) &&
904 (i.range === void 0 || v.is(i.range))
905 )
906 }
907 n.is = t
908 })(Me || (Me = {}))
909 var Ae
910 ;(function (n) {
911 function t(i, r) {
912 return r ? { label: i, documentation: r } : { label: i }
913 }
914 n.create = t
915 })(Ae || (Ae = {}))
916 var He
917 ;(function (n) {
918 function t(i, r) {
919 for (var e = [], o = 2; o < arguments.length; o++) e[o - 2] = arguments[o]
920 var s = { label: i }
921 return (
922 a.defined(r) && (s.documentation = r),
923 a.defined(e) ? (s.parameters = e) : (s.parameters = []),
924 s
925 )
926 }
927 n.create = t
928 })(He || (He = {}))
929 var W
930 ;(function (n) {
931 ;(n.Text = 1), (n.Read = 2), (n.Write = 3)
932 })(W || (W = {}))
933 var Ke
934 ;(function (n) {
935 function t(i, r) {
936 var e = { range: i }
937 return a.number(r) && (e.kind = r), e
938 }
939 n.create = t
940 })(Ke || (Ke = {}))
941 var h
942 ;(function (n) {
943 ;(n.File = 1),
944 (n.Module = 2),
945 (n.Namespace = 3),
946 (n.Package = 4),
947 (n.Class = 5),
948 (n.Method = 6),
949 (n.Property = 7),
950 (n.Field = 8),
951 (n.Constructor = 9),
952 (n.Enum = 10),
953 (n.Interface = 11),
954 (n.Function = 12),
955 (n.Variable = 13),
956 (n.Constant = 14),
957 (n.String = 15),
958 (n.Number = 16),
959 (n.Boolean = 17),
960 (n.Array = 18),
961 (n.Object = 19),
962 (n.Key = 20),
963 (n.Null = 21),
964 (n.EnumMember = 22),
965 (n.Struct = 23),
966 (n.Event = 24),
967 (n.Operator = 25),
968 (n.TypeParameter = 26)
969 })(h || (h = {}))
970 var Ue
971 ;(function (n) {
972 n.Deprecated = 1
973 })(Ue || (Ue = {}))
974 var je
975 ;(function (n) {
976 function t(i, r, e, o, s) {
977 var u = { name: i, kind: r, location: { uri: o, range: e } }
978 return s && (u.containerName = s), u
979 }
980 n.create = t
981 })(je || (je = {}))
982 var Oe
983 ;(function (n) {
984 function t(r, e, o, s, u, l) {
985 var f = { name: r, detail: e, kind: o, range: s, selectionRange: u }
986 return l !== void 0 && (f.children = l), f
987 }
988 n.create = t
989 function i(r) {
990 var e = r
991 return (
992 e &&
993 a.string(e.name) &&
994 a.number(e.kind) &&
995 v.is(e.range) &&
996 v.is(e.selectionRange) &&
997 (e.detail === void 0 || a.string(e.detail)) &&
998 (e.deprecated === void 0 || a.boolean(e.deprecated)) &&
999 (e.children === void 0 || Array.isArray(e.children)) &&
1000 (e.tags === void 0 || Array.isArray(e.tags))
1001 )
1002 }
1003 n.is = i
1004 })(Oe || (Oe = {}))
1005 var Ne
1006 ;(function (n) {
1007 ;(n.Empty = ''),
1008 (n.QuickFix = 'quickfix'),
1009 (n.Refactor = 'refactor'),
1010 (n.RefactorExtract = 'refactor.extract'),
1011 (n.RefactorInline = 'refactor.inline'),
1012 (n.RefactorRewrite = 'refactor.rewrite'),
1013 (n.Source = 'source'),
1014 (n.SourceOrganizeImports = 'source.organizeImports'),
1015 (n.SourceFixAll = 'source.fixAll')
1016 })(Ne || (Ne = {}))
1017 var Ve
1018 ;(function (n) {
1019 function t(r, e) {
1020 var o = { diagnostics: r }
1021 return e != null && (o.only = e), o
1022 }
1023 n.create = t
1024 function i(r) {
1025 var e = r
1026 return (
1027 a.defined(e) &&
1028 a.typedArray(e.diagnostics, Y.is) &&
1029 (e.only === void 0 || a.typedArray(e.only, a.string))
1030 )
1031 }
1032 n.is = i
1033 })(Ve || (Ve = {}))
1034 var ze
1035 ;(function (n) {
1036 function t(r, e, o) {
1037 var s = { title: r },
1038 u = !0
1039 return (
1040 typeof e == 'string'
1041 ? ((u = !1), (s.kind = e))
1042 : O.is(e)
1043 ? (s.command = e)
1044 : (s.edit = e),
1045 u && o !== void 0 && (s.kind = o),
1046 s
1047 )
1048 }
1049 n.create = t
1050 function i(r) {
1051 var e = r
1052 return (
1053 e &&
1054 a.string(e.title) &&
1055 (e.diagnostics === void 0 || a.typedArray(e.diagnostics, Y.is)) &&
1056 (e.kind === void 0 || a.string(e.kind)) &&
1057 (e.edit !== void 0 || e.command !== void 0) &&
1058 (e.command === void 0 || O.is(e.command)) &&
1059 (e.isPreferred === void 0 || a.boolean(e.isPreferred)) &&
1060 (e.edit === void 0 || ae.is(e.edit))
1061 )
1062 }
1063 n.is = i
1064 })(ze || (ze = {}))
1065 var Xe
1066 ;(function (n) {
1067 function t(r, e) {
1068 var o = { range: r }
1069 return a.defined(e) && (o.data = e), o
1070 }
1071 n.create = t
1072 function i(r) {
1073 var e = r
1074 return a.defined(e) && v.is(e.range) && (a.undefined(e.command) || O.is(e.command))
1075 }
1076 n.is = i
1077 })(Xe || (Xe = {}))
1078 var Be
1079 ;(function (n) {
1080 function t(r, e) {
1081 return { tabSize: r, insertSpaces: e }
1082 }
1083 n.create = t
1084 function i(r) {
1085 var e = r
1086 return a.defined(e) && a.uinteger(e.tabSize) && a.boolean(e.insertSpaces)
1087 }
1088 n.is = i
1089 })(Be || (Be = {}))
1090 var $e
1091 ;(function (n) {
1092 function t(r, e, o) {
1093 return { range: r, target: e, data: o }
1094 }
1095 n.create = t
1096 function i(r) {
1097 var e = r
1098 return a.defined(e) && v.is(e.range) && (a.undefined(e.target) || a.string(e.target))
1099 }
1100 n.is = i
1101 })($e || ($e = {}))
1102 var qe
1103 ;(function (n) {
1104 function t(r, e) {
1105 return { range: r, parent: e }
1106 }
1107 n.create = t
1108 function i(r) {
1109 var e = r
1110 return e !== void 0 && v.is(e.range) && (e.parent === void 0 || n.is(e.parent))
1111 }
1112 n.is = i
1113 })(qe || (qe = {}))
1114 var Qe
1115 ;(function (n) {
1116 function t(o, s, u, l) {
1117 return new fn(o, s, u, l)
1118 }
1119 n.create = t
1120 function i(o) {
1121 var s = o
1122 return !!(
1123 a.defined(s) &&
1124 a.string(s.uri) &&
1125 (a.undefined(s.languageId) || a.string(s.languageId)) &&
1126 a.uinteger(s.lineCount) &&
1127 a.func(s.getText) &&
1128 a.func(s.positionAt) &&
1129 a.func(s.offsetAt)
1130 )
1131 }
1132 n.is = i
1133 function r(o, s) {
1134 for (
1135 var u = o.getText(),
1136 l = e(s, function (E, $) {
1137 var pe = E.range.start.line - $.range.start.line
1138 return pe === 0 ? E.range.start.character - $.range.start.character : pe
1139 }),
1140 f = u.length,
1141 g = l.length - 1;
1142 g >= 0;
1143 g--
1144 ) {
1145 var m = l[g],
1146 k = o.offsetAt(m.range.start),
1147 c = o.offsetAt(m.range.end)
1148 if (c <= f) u = u.substring(0, k) + m.newText + u.substring(c, u.length)
1149 else throw new Error('Overlapping edit')
1150 f = k
1151 }
1152 return u
1153 }
1154 n.applyEdits = r
1155 function e(o, s) {
1156 if (o.length <= 1) return o
1157 var u = (o.length / 2) | 0,
1158 l = o.slice(0, u),
1159 f = o.slice(u)
1160 e(l, s), e(f, s)
1161 for (var g = 0, m = 0, k = 0; g < l.length && m < f.length; ) {
1162 var c = s(l[g], f[m])
1163 c <= 0 ? (o[k++] = l[g++]) : (o[k++] = f[m++])
1164 }
1165 for (; g < l.length; ) o[k++] = l[g++]
1166 for (; m < f.length; ) o[k++] = f[m++]
1167 return o
1168 }
1169 })(Qe || (Qe = {}))
1170 var fn = (function () {
1171 function n(t, i, r, e) {
1172 ;(this._uri = t),
1173 (this._languageId = i),
1174 (this._version = r),
1175 (this._content = e),
1176 (this._lineOffsets = void 0)
1177 }
1178 return (
1179 Object.defineProperty(n.prototype, 'uri', {
1180 get: function () {
1181 return this._uri
1182 },
1183 enumerable: !1,
1184 configurable: !0,
1185 }),
1186 Object.defineProperty(n.prototype, 'languageId', {
1187 get: function () {
1188 return this._languageId
1189 },
1190 enumerable: !1,
1191 configurable: !0,
1192 }),
1193 Object.defineProperty(n.prototype, 'version', {
1194 get: function () {
1195 return this._version
1196 },
1197 enumerable: !1,
1198 configurable: !0,
1199 }),
1200 (n.prototype.getText = function (t) {
1201 if (t) {
1202 var i = this.offsetAt(t.start),
1203 r = this.offsetAt(t.end)
1204 return this._content.substring(i, r)
1205 }
1206 return this._content
1207 }),
1208 (n.prototype.update = function (t, i) {
1209 ;(this._content = t.text), (this._version = i), (this._lineOffsets = void 0)
1210 }),
1211 (n.prototype.getLineOffsets = function () {
1212 if (this._lineOffsets === void 0) {
1213 for (var t = [], i = this._content, r = !0, e = 0; e < i.length; e++) {
1214 r && (t.push(e), (r = !1))
1215 var o = i.charAt(e)
1216 ;(r =
1217 o === '\r' ||
1218 o ===
1219 `
1220`),
1221 o === '\r' &&
1222 e + 1 < i.length &&
1223 i.charAt(e + 1) ===
1224 `
1225` &&
1226 e++
1227 }
1228 r && i.length > 0 && t.push(i.length), (this._lineOffsets = t)
1229 }
1230 return this._lineOffsets
1231 }),
1232 (n.prototype.positionAt = function (t) {
1233 t = Math.max(Math.min(t, this._content.length), 0)
1234 var i = this.getLineOffsets(),
1235 r = 0,
1236 e = i.length
1237 if (e === 0) return x.create(0, t)
1238 for (; r < e; ) {
1239 var o = Math.floor((r + e) / 2)
1240 i[o] > t ? (e = o) : (r = o + 1)
1241 }
1242 var s = r - 1
1243 return x.create(s, t - i[s])
1244 }),
1245 (n.prototype.offsetAt = function (t) {
1246 var i = this.getLineOffsets()
1247 if (t.line >= i.length) return this._content.length
1248 if (t.line < 0) return 0
1249 var r = i[t.line],
1250 e = t.line + 1 < i.length ? i[t.line + 1] : this._content.length
1251 return Math.max(Math.min(r + t.character, e), r)
1252 }),
1253 Object.defineProperty(n.prototype, 'lineCount', {
1254 get: function () {
1255 return this.getLineOffsets().length
1256 },
1257 enumerable: !1,
1258 configurable: !0,
1259 }),
1260 n
1261 )
1262 })(),
1263 a
1264 ;(function (n) {
1265 var t = Object.prototype.toString
1266 function i(c) {
1267 return typeof c < 'u'
1268 }
1269 n.defined = i
1270 function r(c) {
1271 return typeof c > 'u'
1272 }
1273 n.undefined = r
1274 function e(c) {
1275 return c === !0 || c === !1
1276 }
1277 n.boolean = e
1278 function o(c) {
1279 return t.call(c) === '[object String]'
1280 }
1281 n.string = o
1282 function s(c) {
1283 return t.call(c) === '[object Number]'
1284 }
1285 n.number = s
1286 function u(c, E, $) {
1287 return t.call(c) === '[object Number]' && E <= c && c <= $
1288 }
1289 n.numberRange = u
1290 function l(c) {
1291 return t.call(c) === '[object Number]' && -2147483648 <= c && c <= 2147483647
1292 }
1293 n.integer = l
1294 function f(c) {
1295 return t.call(c) === '[object Number]' && 0 <= c && c <= 2147483647
1296 }
1297 n.uinteger = f
1298 function g(c) {
1299 return t.call(c) === '[object Function]'
1300 }
1301 n.func = g
1302 function m(c) {
1303 return c !== null && typeof c == 'object'
1304 }
1305 n.objectLiteral = m
1306 function k(c, E) {
1307 return Array.isArray(c) && c.every(E)
1308 }
1309 n.typedArray = k
1310 })(a || (a = {}))
1311 var de = class {
1312 constructor(t, i, r) {
1313 this._languageId = t
1314 this._worker = i
1315 let e = (s) => {
1316 let u = s.getLanguageId()
1317 if (u !== this._languageId) return
1318 let l
1319 ;(this._listener[s.uri.toString()] = s.onDidChangeContent(() => {
1320 window.clearTimeout(l), (l = window.setTimeout(() => this._doValidate(s.uri, u), 500))
1321 })),
1322 this._doValidate(s.uri, u)
1323 },
1324 o = (s) => {
1325 d.editor.setModelMarkers(s, this._languageId, [])
1326 let u = s.uri.toString(),
1327 l = this._listener[u]
1328 l && (l.dispose(), delete this._listener[u])
1329 }
1330 this._disposables.push(d.editor.onDidCreateModel(e)),
1331 this._disposables.push(d.editor.onWillDisposeModel(o)),
1332 this._disposables.push(
1333 d.editor.onDidChangeModelLanguage((s) => {
1334 o(s.model), e(s.model)
1335 })
1336 ),
1337 this._disposables.push(
1338 r((s) => {
1339 d.editor.getModels().forEach((u) => {
1340 u.getLanguageId() === this._languageId && (o(u), e(u))
1341 })
1342 })
1343 ),
1344 this._disposables.push({
1345 dispose: () => {
1346 d.editor.getModels().forEach(o)
1347 for (let s in this._listener) this._listener[s].dispose()
1348 },
1349 }),
1350 d.editor.getModels().forEach(e)
1351 }
1352 _disposables = []
1353 _listener = Object.create(null)
1354 dispose() {
1355 this._disposables.forEach((t) => t && t.dispose()), (this._disposables.length = 0)
1356 }
1357 _doValidate(t, i) {
1358 this._worker(t)
1359 .then((r) => r.doValidation(t.toString()))
1360 .then((r) => {
1361 let e = r.map((s) => mn(t, s)),
1362 o = d.editor.getModel(t)
1363 o && o.getLanguageId() === i && d.editor.setModelMarkers(o, i, e)
1364 })
1365 .then(void 0, (r) => {
1366 console.error(r)
1367 })
1368 }
1369 }
1370 function hn(n) {
1371 switch (n) {
1372 case w.Error:
1373 return d.MarkerSeverity.Error
1374 case w.Warning:
1375 return d.MarkerSeverity.Warning
1376 case w.Information:
1377 return d.MarkerSeverity.Info
1378 case w.Hint:
1379 return d.MarkerSeverity.Hint
1380 default:
1381 return d.MarkerSeverity.Info
1382 }
1383 }
1384 function mn(n, t) {
1385 let i = typeof t.code == 'number' ? String(t.code) : t.code
1386 return {
1387 severity: hn(t.severity),
1388 startLineNumber: t.range.start.line + 1,
1389 startColumn: t.range.start.character + 1,
1390 endLineNumber: t.range.end.line + 1,
1391 endColumn: t.range.end.character + 1,
1392 message: t.message,
1393 code: i,
1394 source: t.source,
1395 }
1396 }
1397 var B = class {
1398 constructor(t, i) {
1399 this._worker = t
1400 this._triggerCharacters = i
1401 }
1402 get triggerCharacters() {
1403 return this._triggerCharacters
1404 }
1405 provideCompletionItems(t, i, r, e) {
1406 let o = t.uri
1407 return this._worker(o)
1408 .then((s) => s.doComplete(o.toString(), C(i)))
1409 .then((s) => {
1410 if (!s) return
1411 let u = t.getWordUntilPosition(i),
1412 l = new d.Range(i.lineNumber, u.startColumn, i.lineNumber, u.endColumn),
1413 f = s.items.map((g) => {
1414 let m = {
1415 label: g.label,
1416 insertText: g.insertText || g.label,
1417 sortText: g.sortText,
1418 filterText: g.filterText,
1419 documentation: g.documentation,
1420 detail: g.detail,
1421 command: yn(g.command),
1422 range: l,
1423 kind: Tn(g.kind),
1424 }
1425 return (
1426 g.textEdit &&
1427 (vn(g.textEdit)
1428 ? (m.range = { insert: y(g.textEdit.insert), replace: y(g.textEdit.replace) })
1429 : (m.range = y(g.textEdit.range)),
1430 (m.insertText = g.textEdit.newText)),
1431 g.additionalTextEdits && (m.additionalTextEdits = g.additionalTextEdits.map(L)),
1432 g.insertTextFormat === ne.Snippet &&
1433 (m.insertTextRules = d.languages.CompletionItemInsertTextRule.InsertAsSnippet),
1434 m
1435 )
1436 })
1437 return { isIncomplete: s.isIncomplete, suggestions: f }
1438 })
1439 }
1440 }
1441 function C(n) {
1442 if (!!n) return { character: n.column - 1, line: n.lineNumber - 1 }
1443 }
1444 function fe(n) {
1445 if (!!n)
1446 return {
1447 start: { line: n.startLineNumber - 1, character: n.startColumn - 1 },
1448 end: { line: n.endLineNumber - 1, character: n.endColumn - 1 },
1449 }
1450 }
1451 function y(n) {
1452 if (!!n)
1453 return new d.Range(
1454 n.start.line + 1,
1455 n.start.character + 1,
1456 n.end.line + 1,
1457 n.end.character + 1
1458 )
1459 }
1460 function vn(n) {
1461 return typeof n.insert < 'u' && typeof n.replace < 'u'
1462 }
1463 function Tn(n) {
1464 let t = d.languages.CompletionItemKind
1465 switch (n) {
1466 case p.Text:
1467 return t.Text
1468 case p.Method:
1469 return t.Method
1470 case p.Function:
1471 return t.Function
1472 case p.Constructor:
1473 return t.Constructor
1474 case p.Field:
1475 return t.Field
1476 case p.Variable:
1477 return t.Variable
1478 case p.Class:
1479 return t.Class
1480 case p.Interface:
1481 return t.Interface
1482 case p.Module:
1483 return t.Module
1484 case p.Property:
1485 return t.Property
1486 case p.Unit:
1487 return t.Unit
1488 case p.Value:
1489 return t.Value
1490 case p.Enum:
1491 return t.Enum
1492 case p.Keyword:
1493 return t.Keyword
1494 case p.Snippet:
1495 return t.Snippet
1496 case p.Color:
1497 return t.Color
1498 case p.File:
1499 return t.File
1500 case p.Reference:
1501 return t.Reference
1502 }
1503 return t.Property
1504 }
1505 function L(n) {
1506 if (!!n) return { range: y(n.range), text: n.newText }
1507 }
1508 function yn(n) {
1509 return n && n.command === 'editor.action.triggerSuggest'
1510 ? { id: n.command, title: n.title, arguments: n.arguments }
1511 : void 0
1512 }
1513 var D = class {
1514 constructor(t) {
1515 this._worker = t
1516 }
1517 provideHover(t, i, r) {
1518 let e = t.uri
1519 return this._worker(e)
1520 .then((o) => o.doHover(e.toString(), C(i)))
1521 .then((o) => {
1522 if (!!o) return { range: y(o.range), contents: kn(o.contents) }
1523 })
1524 }
1525 }
1526 function xn(n) {
1527 return n && typeof n == 'object' && typeof n.kind == 'string'
1528 }
1529 function Ge(n) {
1530 return typeof n == 'string'
1531 ? { value: n }
1532 : xn(n)
1533 ? n.kind === 'plaintext'
1534 ? { value: n.value.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&') }
1535 : { value: n.value }
1536 : {
1537 value:
1538 '```' +
1539 n.language +
1540 `
1541` +
1542 n.value +
1543 '\n```\n',
1544 }
1545 }
1546 function kn(n) {
1547 if (!!n) return Array.isArray(n) ? n.map(Ge) : [Ge(n)]
1548 }
1549 var S = class {
1550 constructor(t) {
1551 this._worker = t
1552 }
1553 provideDocumentHighlights(t, i, r) {
1554 let e = t.uri
1555 return this._worker(e)
1556 .then((o) => o.findDocumentHighlights(e.toString(), C(i)))
1557 .then((o) => {
1558 if (!!o) return o.map((s) => ({ range: y(s.range), kind: In(s.kind) }))
1559 })
1560 }
1561 }
1562 function In(n) {
1563 switch (n) {
1564 case W.Read:
1565 return d.languages.DocumentHighlightKind.Read
1566 case W.Write:
1567 return d.languages.DocumentHighlightKind.Write
1568 case W.Text:
1569 return d.languages.DocumentHighlightKind.Text
1570 }
1571 return d.languages.DocumentHighlightKind.Text
1572 }
1573 var ce = class {
1574 constructor(t) {
1575 this._worker = t
1576 }
1577 provideDefinition(t, i, r) {
1578 let e = t.uri
1579 return this._worker(e)
1580 .then((o) => o.findDefinition(e.toString(), C(i)))
1581 .then((o) => {
1582 if (!!o) return [Je(o)]
1583 })
1584 }
1585 }
1586 function Je(n) {
1587 return { uri: d.Uri.parse(n.uri), range: y(n.range) }
1588 }
1589 var le = class {
1590 constructor(t) {
1591 this._worker = t
1592 }
1593 provideReferences(t, i, r, e) {
1594 let o = t.uri
1595 return this._worker(o)
1596 .then((s) => s.findReferences(o.toString(), C(i)))
1597 .then((s) => {
1598 if (!!s) return s.map(Je)
1599 })
1600 }
1601 },
1602 F = class {
1603 constructor(t) {
1604 this._worker = t
1605 }
1606 provideRenameEdits(t, i, r, e) {
1607 let o = t.uri
1608 return this._worker(o)
1609 .then((s) => s.doRename(o.toString(), C(i), r))
1610 .then((s) => _n(s))
1611 }
1612 }
1613 function _n(n) {
1614 if (!n || !n.changes) return
1615 let t = []
1616 for (let i in n.changes) {
1617 let r = d.Uri.parse(i)
1618 for (let e of n.changes[i])
1619 t.push({
1620 resource: r,
1621 versionId: void 0,
1622 textEdit: { range: y(e.range), text: e.newText },
1623 })
1624 }
1625 return { edits: t }
1626 }
1627 var M = class {
1628 constructor(t) {
1629 this._worker = t
1630 }
1631 provideDocumentSymbols(t, i) {
1632 let r = t.uri
1633 return this._worker(r)
1634 .then((e) => e.findDocumentSymbols(r.toString()))
1635 .then((e) => {
1636 if (!!e)
1637 return e.map((o) => ({
1638 name: o.name,
1639 detail: '',
1640 containerName: o.containerName,
1641 kind: Cn(o.kind),
1642 range: y(o.location.range),
1643 selectionRange: y(o.location.range),
1644 tags: [],
1645 }))
1646 })
1647 }
1648 }
1649 function Cn(n) {
1650 let t = d.languages.SymbolKind
1651 switch (n) {
1652 case h.File:
1653 return t.Array
1654 case h.Module:
1655 return t.Module
1656 case h.Namespace:
1657 return t.Namespace
1658 case h.Package:
1659 return t.Package
1660 case h.Class:
1661 return t.Class
1662 case h.Method:
1663 return t.Method
1664 case h.Property:
1665 return t.Property
1666 case h.Field:
1667 return t.Field
1668 case h.Constructor:
1669 return t.Constructor
1670 case h.Enum:
1671 return t.Enum
1672 case h.Interface:
1673 return t.Interface
1674 case h.Function:
1675 return t.Function
1676 case h.Variable:
1677 return t.Variable
1678 case h.Constant:
1679 return t.Constant
1680 case h.String:
1681 return t.String
1682 case h.Number:
1683 return t.Number
1684 case h.Boolean:
1685 return t.Boolean
1686 case h.Array:
1687 return t.Array
1688 }
1689 return t.Function
1690 }
1691 var A = class {
1692 constructor(t) {
1693 this._worker = t
1694 }
1695 provideLinks(t, i) {
1696 let r = t.uri
1697 return this._worker(r)
1698 .then((e) => e.findDocumentLinks(r.toString()))
1699 .then((e) => {
1700 if (!!e) return { links: e.map((o) => ({ range: y(o.range), url: o.target })) }
1701 })
1702 }
1703 },
1704 H = class {
1705 constructor(t) {
1706 this._worker = t
1707 }
1708 provideDocumentFormattingEdits(t, i, r) {
1709 let e = t.uri
1710 return this._worker(e).then((o) =>
1711 o.format(e.toString(), null, Ye(i)).then((s) => {
1712 if (!(!s || s.length === 0)) return s.map(L)
1713 })
1714 )
1715 }
1716 },
1717 K = class {
1718 constructor(t) {
1719 this._worker = t
1720 }
1721 canFormatMultipleRanges = !1
1722 provideDocumentRangeFormattingEdits(t, i, r, e) {
1723 let o = t.uri
1724 return this._worker(o).then((s) =>
1725 s.format(o.toString(), fe(i), Ye(r)).then((u) => {
1726 if (!(!u || u.length === 0)) return u.map(L)
1727 })
1728 )
1729 }
1730 }
1731 function Ye(n) {
1732 return { tabSize: n.tabSize, insertSpaces: n.insertSpaces }
1733 }
1734 var ge = class {
1735 constructor(t) {
1736 this._worker = t
1737 }
1738 provideDocumentColors(t, i) {
1739 let r = t.uri
1740 return this._worker(r)
1741 .then((e) => e.findDocumentColors(r.toString()))
1742 .then((e) => {
1743 if (!!e) return e.map((o) => ({ color: o.color, range: y(o.range) }))
1744 })
1745 }
1746 provideColorPresentations(t, i, r) {
1747 let e = t.uri
1748 return this._worker(e)
1749 .then((o) => o.getColorPresentations(e.toString(), i.color, fe(i.range)))
1750 .then((o) => {
1751 if (!!o)
1752 return o.map((s) => {
1753 let u = { label: s.label }
1754 return (
1755 s.textEdit && (u.textEdit = L(s.textEdit)),
1756 s.additionalTextEdits && (u.additionalTextEdits = s.additionalTextEdits.map(L)),
1757 u
1758 )
1759 })
1760 })
1761 }
1762 },
1763 U = class {
1764 constructor(t) {
1765 this._worker = t
1766 }
1767 provideFoldingRanges(t, i, r) {
1768 let e = t.uri
1769 return this._worker(e)
1770 .then((o) => o.getFoldingRanges(e.toString(), i))
1771 .then((o) => {
1772 if (!!o)
1773 return o.map((s) => {
1774 let u = { start: s.startLine + 1, end: s.endLine + 1 }
1775 return typeof s.kind < 'u' && (u.kind = bn(s.kind)), u
1776 })
1777 })
1778 }
1779 }
1780 function bn(n) {
1781 switch (n) {
1782 case R.Comment:
1783 return d.languages.FoldingRangeKind.Comment
1784 case R.Imports:
1785 return d.languages.FoldingRangeKind.Imports
1786 case R.Region:
1787 return d.languages.FoldingRangeKind.Region
1788 }
1789 }
1790 var j = class {
1791 constructor(t) {
1792 this._worker = t
1793 }
1794 provideSelectionRanges(t, i, r) {
1795 let e = t.uri
1796 return this._worker(e)
1797 .then((o) => o.getSelectionRanges(e.toString(), i.map(C)))
1798 .then((o) => {
1799 if (!!o)
1800 return o.map((s) => {
1801 let u = []
1802 for (; s; ) u.push({ range: y(s.range) }), (s = s.parent)
1803 return u
1804 })
1805 })
1806 }
1807 }
1808 var re = class extends B {
1809 constructor(t) {
1810 super(t, ['.', ':', '<', '"', '=', '/'])
1811 }
1812 }
1813 function En(n) {
1814 let t = new b(n),
1815 i = (...e) => t.getLanguageServiceWorker(...e),
1816 r = n.languageId
1817 d.languages.registerCompletionItemProvider(r, new re(i)),
1818 d.languages.registerHoverProvider(r, new D(i)),
1819 d.languages.registerDocumentHighlightProvider(r, new S(i)),
1820 d.languages.registerLinkProvider(r, new A(i)),
1821 d.languages.registerFoldingRangeProvider(r, new U(i)),
1822 d.languages.registerDocumentSymbolProvider(r, new M(i)),
1823 d.languages.registerSelectionRangeProvider(r, new j(i)),
1824 d.languages.registerRenameProvider(r, new F(i)),
1825 r === 'html' &&
1826 (d.languages.registerDocumentFormattingEditProvider(r, new H(i)),
1827 d.languages.registerDocumentRangeFormattingEditProvider(r, new K(i)))
1828 }
1829 function Pn(n) {
1830 let t = [],
1831 i = [],
1832 r = new b(n)
1833 t.push(r)
1834 let e = (...s) => r.getLanguageServiceWorker(...s)
1835 function o() {
1836 let { languageId: s, modeConfiguration: u } = n
1837 en(i),
1838 u.completionItems && i.push(d.languages.registerCompletionItemProvider(s, new re(e))),
1839 u.hovers && i.push(d.languages.registerHoverProvider(s, new D(e))),
1840 u.documentHighlights &&
1841 i.push(d.languages.registerDocumentHighlightProvider(s, new S(e))),
1842 u.links && i.push(d.languages.registerLinkProvider(s, new A(e))),
1843 u.documentSymbols && i.push(d.languages.registerDocumentSymbolProvider(s, new M(e))),
1844 u.rename && i.push(d.languages.registerRenameProvider(s, new F(e))),
1845 u.foldingRanges && i.push(d.languages.registerFoldingRangeProvider(s, new U(e))),
1846 u.selectionRanges && i.push(d.languages.registerSelectionRangeProvider(s, new j(e))),
1847 u.documentFormattingEdits &&
1848 i.push(d.languages.registerDocumentFormattingEditProvider(s, new H(e))),
1849 u.documentRangeFormattingEdits &&
1850 i.push(d.languages.registerDocumentRangeFormattingEditProvider(s, new K(e)))
1851 }
1852 return o(), t.push(Ze(i)), Ze(t)
1853 }
1854 function Ze(n) {
1855 return { dispose: () => en(n) }
1856 }
1857 function en(n) {
1858 for (; n.length; ) n.pop().dispose()
1859 }
1860 return cn(Rn)
1861 })()
1862 return moduleExports
1863})