easyest-xqp
Version:
818 lines (814 loc) • 29.2 kB
JavaScript
var M = Object.defineProperty;
var R = (e, t, r) => t in e ? M(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
var _ = (e, t, r) => (R(e, typeof t != "symbol" ? t + "" : t, r), r);
import { t as K, m as E } from "./index-15b3227d.js";
import "vue";
import "hooks-xqp";
import "utils-xqp";
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.41.0(38e1e3d097f84e336c311d071a9ffb5191d4ffd1)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
var L = Object.defineProperty, H = Object.getOwnPropertyDescriptor, V = Object.getOwnPropertyNames, W = Object.prototype.hasOwnProperty, j = (e, t, r) => t in e ? L(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, T = (e, t, r, l) => {
if (t && typeof t == "object" || typeof t == "function")
for (let n of V(t))
!W.call(e, n) && n !== r && L(e, n, { get: () => t[n], enumerable: !(l = H(t, n)) || l.enumerable });
return e;
}, B = (e, t, r) => (T(e, t, "default"), r && T(r, t, "default")), b = (e, t, r) => (j(e, typeof t != "symbol" ? t + "" : t, r), r), i = {};
B(i, E);
var U = class {
constructor(e, t) {
_(this, "_configChangeListener");
_(this, "_updateExtraLibsToken");
_(this, "_extraLibsChangeListener");
_(this, "_worker");
_(this, "_client");
this._modeId = e, this._defaults = t, this._worker = null, this._client = null, this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()), this._updateExtraLibsToken = 0, this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(() => this._updateExtraLibs());
}
dispose() {
this._configChangeListener.dispose(), this._extraLibsChangeListener.dispose(), this._stopWorker();
}
_stopWorker() {
this._worker && (this._worker.dispose(), this._worker = null), this._client = null;
}
async _updateExtraLibs() {
if (!this._worker)
return;
const e = ++this._updateExtraLibsToken, t = await this._worker.getProxy();
this._updateExtraLibsToken === e && t.updateExtraLibs(this._defaults.getExtraLibs());
}
_getClient() {
return this._client || (this._client = (async () => (this._worker = i.editor.createWebWorker({
moduleId: "vs/language/typescript/tsWorker",
label: this._modeId,
keepIdleModels: !0,
createData: {
compilerOptions: this._defaults.getCompilerOptions(),
extraLibs: this._defaults.getExtraLibs(),
customWorkerPath: this._defaults.workerOptions.customWorkerPath,
inlayHintsOptions: this._defaults.inlayHintsOptions
}
}), this._defaults.getEagerModelSync() ? await this._worker.withSyncedResources(i.editor.getModels().filter((e) => e.getLanguageId() === this._modeId).map((e) => e.uri)) : await this._worker.getProxy()))()), this._client;
}
async getLanguageServiceWorker(...e) {
const t = await this._getClient();
return this._worker && await this._worker.withSyncedResources(e), t;
}
}, s = {};
s["lib.d.ts"] = !0;
s["lib.decorators.d.ts"] = !0;
s["lib.decorators.legacy.d.ts"] = !0;
s["lib.dom.d.ts"] = !0;
s["lib.dom.iterable.d.ts"] = !0;
s["lib.es2015.collection.d.ts"] = !0;
s["lib.es2015.core.d.ts"] = !0;
s["lib.es2015.d.ts"] = !0;
s["lib.es2015.generator.d.ts"] = !0;
s["lib.es2015.iterable.d.ts"] = !0;
s["lib.es2015.promise.d.ts"] = !0;
s["lib.es2015.proxy.d.ts"] = !0;
s["lib.es2015.reflect.d.ts"] = !0;
s["lib.es2015.symbol.d.ts"] = !0;
s["lib.es2015.symbol.wellknown.d.ts"] = !0;
s["lib.es2016.array.include.d.ts"] = !0;
s["lib.es2016.d.ts"] = !0;
s["lib.es2016.full.d.ts"] = !0;
s["lib.es2017.d.ts"] = !0;
s["lib.es2017.full.d.ts"] = !0;
s["lib.es2017.intl.d.ts"] = !0;
s["lib.es2017.object.d.ts"] = !0;
s["lib.es2017.sharedmemory.d.ts"] = !0;
s["lib.es2017.string.d.ts"] = !0;
s["lib.es2017.typedarrays.d.ts"] = !0;
s["lib.es2018.asyncgenerator.d.ts"] = !0;
s["lib.es2018.asynciterable.d.ts"] = !0;
s["lib.es2018.d.ts"] = !0;
s["lib.es2018.full.d.ts"] = !0;
s["lib.es2018.intl.d.ts"] = !0;
s["lib.es2018.promise.d.ts"] = !0;
s["lib.es2018.regexp.d.ts"] = !0;
s["lib.es2019.array.d.ts"] = !0;
s["lib.es2019.d.ts"] = !0;
s["lib.es2019.full.d.ts"] = !0;
s["lib.es2019.intl.d.ts"] = !0;
s["lib.es2019.object.d.ts"] = !0;
s["lib.es2019.string.d.ts"] = !0;
s["lib.es2019.symbol.d.ts"] = !0;
s["lib.es2020.bigint.d.ts"] = !0;
s["lib.es2020.d.ts"] = !0;
s["lib.es2020.date.d.ts"] = !0;
s["lib.es2020.full.d.ts"] = !0;
s["lib.es2020.intl.d.ts"] = !0;
s["lib.es2020.number.d.ts"] = !0;
s["lib.es2020.promise.d.ts"] = !0;
s["lib.es2020.sharedmemory.d.ts"] = !0;
s["lib.es2020.string.d.ts"] = !0;
s["lib.es2020.symbol.wellknown.d.ts"] = !0;
s["lib.es2021.d.ts"] = !0;
s["lib.es2021.full.d.ts"] = !0;
s["lib.es2021.intl.d.ts"] = !0;
s["lib.es2021.promise.d.ts"] = !0;
s["lib.es2021.string.d.ts"] = !0;
s["lib.es2021.weakref.d.ts"] = !0;
s["lib.es2022.array.d.ts"] = !0;
s["lib.es2022.d.ts"] = !0;
s["lib.es2022.error.d.ts"] = !0;
s["lib.es2022.full.d.ts"] = !0;
s["lib.es2022.intl.d.ts"] = !0;
s["lib.es2022.object.d.ts"] = !0;
s["lib.es2022.regexp.d.ts"] = !0;
s["lib.es2022.sharedmemory.d.ts"] = !0;
s["lib.es2022.string.d.ts"] = !0;
s["lib.es2023.array.d.ts"] = !0;
s["lib.es2023.d.ts"] = !0;
s["lib.es2023.full.d.ts"] = !0;
s["lib.es5.d.ts"] = !0;
s["lib.es6.d.ts"] = !0;
s["lib.esnext.d.ts"] = !0;
s["lib.esnext.full.d.ts"] = !0;
s["lib.esnext.intl.d.ts"] = !0;
s["lib.scripthost.d.ts"] = !0;
s["lib.webworker.d.ts"] = !0;
s["lib.webworker.importscripts.d.ts"] = !0;
s["lib.webworker.iterable.d.ts"] = !0;
function D(e, t, r = 0) {
if (typeof e == "string")
return e;
if (e === void 0)
return "";
let l = "";
if (r) {
l += t;
for (let n = 0; n < r; n++)
l += " ";
}
if (l += e.messageText, r++, e.next)
for (const n of e.next)
l += D(n, t, r);
return l;
}
function k(e) {
return e ? e.map((t) => t.text).join("") : "";
}
var w = class {
constructor(e) {
this._worker = e;
}
_textSpanToRange(e, t) {
let r = e.getPositionAt(t.start), l = e.getPositionAt(t.start + t.length), { lineNumber: n, column: u } = r, { lineNumber: g, column: a } = l;
return { startLineNumber: n, startColumn: u, endLineNumber: g, endColumn: a };
}
}, $ = class {
constructor(e) {
_(this, "_libFiles");
_(this, "_hasFetchedLibFiles");
_(this, "_fetchLibFilesPromise");
this._worker = e, this._libFiles = {}, this._hasFetchedLibFiles = !1, this._fetchLibFilesPromise = null;
}
isLibFile(e) {
return e && e.path.indexOf("/lib.") === 0 ? !!s[e.path.slice(1)] : !1;
}
getOrCreateModel(e) {
const t = i.Uri.parse(e), r = i.editor.getModel(t);
if (r)
return r;
if (this.isLibFile(t) && this._hasFetchedLibFiles)
return i.editor.createModel(this._libFiles[t.path.slice(1)], "typescript", t);
const l = K.getExtraLibs()[e];
return l ? i.editor.createModel(l.content, "typescript", t) : null;
}
_containsLibFile(e) {
for (let t of e)
if (this.isLibFile(t))
return !0;
return !1;
}
async fetchLibFilesIfNecessary(e) {
this._containsLibFile(e) && await this._fetchLibFiles();
}
_fetchLibFiles() {
return this._fetchLibFilesPromise || (this._fetchLibFilesPromise = this._worker().then((e) => e.getLibFiles()).then((e) => {
this._hasFetchedLibFiles = !0, this._libFiles = e;
})), this._fetchLibFilesPromise;
}
}, z = class extends w {
constructor(t, r, l, n) {
super(n);
_(this, "_disposables", []);
_(this, "_listener", /* @__PURE__ */ Object.create(null));
this._libFiles = t, this._defaults = r, this._selector = l;
const u = (o) => {
if (o.getLanguageId() !== l)
return;
const p = () => {
const { onlyVisible: y } = this._defaults.getDiagnosticsOptions();
y ? o.isAttachedToEditor() && this._doValidate(o) : this._doValidate(o);
};
let d;
const f = o.onDidChangeContent(() => {
clearTimeout(d), d = window.setTimeout(p, 500);
}), h = o.onDidChangeAttached(() => {
const { onlyVisible: y } = this._defaults.getDiagnosticsOptions();
y && (o.isAttachedToEditor() ? p() : i.editor.setModelMarkers(o, this._selector, []));
});
this._listener[o.uri.toString()] = {
dispose() {
f.dispose(), h.dispose(), clearTimeout(d);
}
}, p();
}, g = (o) => {
i.editor.setModelMarkers(o, this._selector, []);
const p = o.uri.toString();
this._listener[p] && (this._listener[p].dispose(), delete this._listener[p]);
};
this._disposables.push(i.editor.onDidCreateModel((o) => u(o))), this._disposables.push(i.editor.onWillDisposeModel(g)), this._disposables.push(i.editor.onDidChangeModelLanguage((o) => {
g(o.model), u(o.model);
})), this._disposables.push({
dispose() {
for (const o of i.editor.getModels())
g(o);
}
});
const a = () => {
for (const o of i.editor.getModels())
g(o), u(o);
};
this._disposables.push(this._defaults.onDidChange(a)), this._disposables.push(this._defaults.onDidExtraLibsChange(a)), i.editor.getModels().forEach((o) => u(o));
}
dispose() {
this._disposables.forEach((t) => t && t.dispose()), this._disposables = [];
}
async _doValidate(t) {
const r = await this._worker(t.uri);
if (t.isDisposed())
return;
const l = [], { noSyntaxValidation: n, noSemanticValidation: u, noSuggestionDiagnostics: g } = this._defaults.getDiagnosticsOptions();
n || l.push(r.getSyntacticDiagnostics(t.uri.toString())), u || l.push(r.getSemanticDiagnostics(t.uri.toString())), g || l.push(r.getSuggestionDiagnostics(t.uri.toString()));
const a = await Promise.all(l);
if (!a || t.isDisposed())
return;
const o = a.reduce((d, f) => f.concat(d), []).filter((d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1), p = o.map((d) => d.relatedInformation || []).reduce((d, f) => f.concat(d), []).map((d) => d.file ? i.Uri.parse(d.file.fileName) : null);
await this._libFiles.fetchLibFilesIfNecessary(p), !t.isDisposed() && i.editor.setModelMarkers(t, this._selector, o.map((d) => this._convertDiagnostics(t, d)));
}
_convertDiagnostics(t, r) {
const l = r.start || 0, n = r.length || 1, { lineNumber: u, column: g } = t.getPositionAt(l), { lineNumber: a, column: o } = t.getPositionAt(l + n), p = [];
return r.reportsUnnecessary && p.push(i.MarkerTag.Unnecessary), r.reportsDeprecated && p.push(i.MarkerTag.Deprecated), {
severity: this._tsDiagnosticCategoryToMarkerSeverity(r.category),
startLineNumber: u,
startColumn: g,
endLineNumber: a,
endColumn: o,
message: D(r.messageText, `
`),
code: r.code.toString(),
tags: p,
relatedInformation: this._convertRelatedInformation(t, r.relatedInformation)
};
}
_convertRelatedInformation(t, r) {
if (!r)
return [];
const l = [];
return r.forEach((n) => {
let u = t;
if (n.file && (u = this._libFiles.getOrCreateModel(n.file.fileName)), !u)
return;
const g = n.start || 0, a = n.length || 1, { lineNumber: o, column: p } = u.getPositionAt(g), { lineNumber: d, column: f } = u.getPositionAt(g + a);
l.push({
resource: u.uri,
startLineNumber: o,
startColumn: p,
endLineNumber: d,
endColumn: f,
message: D(n.messageText, `
`)
});
}), l;
}
_tsDiagnosticCategoryToMarkerSeverity(t) {
switch (t) {
case 1:
return i.MarkerSeverity.Error;
case 3:
return i.MarkerSeverity.Info;
case 0:
return i.MarkerSeverity.Warning;
case 2:
return i.MarkerSeverity.Hint;
}
return i.MarkerSeverity.Info;
}
}, C = class extends w {
get triggerCharacters() {
return ["."];
}
async provideCompletionItems(e, t, r, l) {
const n = e.getWordUntilPosition(t), u = new i.Range(t.lineNumber, n.startColumn, t.lineNumber, n.endColumn), g = e.uri, a = e.getOffsetAt(t), o = await this._worker(g);
if (e.isDisposed())
return;
const p = await o.getCompletionsAtPosition(g.toString(), a);
return !p || e.isDisposed() ? void 0 : {
suggestions: p.entries.map((f) => {
let h = u;
if (f.replacementSpan) {
const x = e.getPositionAt(f.replacementSpan.start), v = e.getPositionAt(f.replacementSpan.start + f.replacementSpan.length);
h = new i.Range(x.lineNumber, x.column, v.lineNumber, v.column);
}
const y = [];
return f.kindModifiers !== void 0 && f.kindModifiers.indexOf("deprecated") !== -1 && y.push(i.languages.CompletionItemTag.Deprecated), {
uri: g,
position: t,
offset: a,
range: h,
label: f.name,
insertText: f.name,
sortText: f.sortText,
kind: C.convertKind(f.kind),
tags: y
};
})
};
}
async resolveCompletionItem(e, t) {
const r = e, l = r.uri, n = r.position, u = r.offset, a = await (await this._worker(l)).getCompletionEntryDetails(l.toString(), u, r.label);
return a ? {
uri: l,
position: n,
label: a.name,
kind: C.convertKind(a.kind),
detail: k(a.displayParts),
documentation: {
value: C.createDocumentationString(a)
}
} : r;
}
static convertKind(e) {
switch (e) {
case c.primitiveType:
case c.keyword:
return i.languages.CompletionItemKind.Keyword;
case c.variable:
case c.localVariable:
return i.languages.CompletionItemKind.Variable;
case c.memberVariable:
case c.memberGetAccessor:
case c.memberSetAccessor:
return i.languages.CompletionItemKind.Field;
case c.function:
case c.memberFunction:
case c.constructSignature:
case c.callSignature:
case c.indexSignature:
return i.languages.CompletionItemKind.Function;
case c.enum:
return i.languages.CompletionItemKind.Enum;
case c.module:
return i.languages.CompletionItemKind.Module;
case c.class:
return i.languages.CompletionItemKind.Class;
case c.interface:
return i.languages.CompletionItemKind.Interface;
case c.warning:
return i.languages.CompletionItemKind.File;
}
return i.languages.CompletionItemKind.Property;
}
static createDocumentationString(e) {
let t = k(e.documentation);
if (e.tags)
for (const r of e.tags)
t += `
${P(r)}`;
return t;
}
};
function P(e) {
let t = `*@${e.name}*`;
if (e.name === "param" && e.text) {
const [r, ...l] = e.text;
t += `\`${r.text}\``, l.length > 0 && (t += ` — ${l.map((n) => n.text).join(" ")}`);
} else
Array.isArray(e.text) ? t += ` — ${e.text.map((r) => r.text).join(" ")}` : e.text && (t += ` — ${e.text}`);
return t;
}
var O = class extends w {
constructor() {
super(...arguments);
_(this, "signatureHelpTriggerCharacters", ["(", ","]);
}
static _toSignatureHelpTriggerReason(t) {
switch (t.triggerKind) {
case i.languages.SignatureHelpTriggerKind.TriggerCharacter:
return t.triggerCharacter ? t.isRetrigger ? { kind: "retrigger", triggerCharacter: t.triggerCharacter } : { kind: "characterTyped", triggerCharacter: t.triggerCharacter } : { kind: "invoked" };
case i.languages.SignatureHelpTriggerKind.ContentChange:
return t.isRetrigger ? { kind: "retrigger" } : { kind: "invoked" };
case i.languages.SignatureHelpTriggerKind.Invoke:
default:
return { kind: "invoked" };
}
}
async provideSignatureHelp(t, r, l, n) {
const u = t.uri, g = t.getOffsetAt(r), a = await this._worker(u);
if (t.isDisposed())
return;
const o = await a.getSignatureHelpItems(u.toString(), g, {
triggerReason: O._toSignatureHelpTriggerReason(n)
});
if (!o || t.isDisposed())
return;
const p = {
activeSignature: o.selectedItemIndex,
activeParameter: o.argumentIndex,
signatures: []
};
return o.items.forEach((d) => {
const f = {
label: "",
parameters: []
};
f.documentation = {
value: k(d.documentation)
}, f.label += k(d.prefixDisplayParts), d.parameters.forEach((h, y, x) => {
const v = k(h.displayParts), N = {
label: v,
documentation: {
value: k(h.documentation)
}
};
f.label += v, f.parameters.push(N), y < x.length - 1 && (f.label += k(d.separatorDisplayParts));
}), f.label += k(d.suffixDisplayParts), p.signatures.push(f);
}), {
value: p,
dispose() {
}
};
}
}, G = class extends w {
async provideHover(e, t, r) {
const l = e.uri, n = e.getOffsetAt(t), u = await this._worker(l);
if (e.isDisposed())
return;
const g = await u.getQuickInfoAtPosition(l.toString(), n);
if (!g || e.isDisposed())
return;
const a = k(g.documentation), o = g.tags ? g.tags.map((d) => P(d)).join(`
`) : "", p = k(g.displayParts);
return {
range: this._textSpanToRange(e, g.textSpan),
contents: [
{
value: "```typescript\n" + p + "\n```\n"
},
{
value: a + (o ? `
` + o : "")
}
]
};
}
}, J = class extends w {
async provideDocumentHighlights(e, t, r) {
const l = e.uri, n = e.getOffsetAt(t), u = await this._worker(l);
if (e.isDisposed())
return;
const g = await u.getDocumentHighlights(l.toString(), n, [
l.toString()
]);
if (!(!g || e.isDisposed()))
return g.flatMap((a) => a.highlightSpans.map((o) => ({
range: this._textSpanToRange(e, o.textSpan),
kind: o.kind === "writtenReference" ? i.languages.DocumentHighlightKind.Write : i.languages.DocumentHighlightKind.Text
})));
}
}, Q = class extends w {
constructor(e, t) {
super(t), this._libFiles = e;
}
async provideDefinition(e, t, r) {
const l = e.uri, n = e.getOffsetAt(t), u = await this._worker(l);
if (e.isDisposed())
return;
const g = await u.getDefinitionAtPosition(l.toString(), n);
if (!g || e.isDisposed() || (await this._libFiles.fetchLibFilesIfNecessary(g.map((o) => i.Uri.parse(o.fileName))), e.isDisposed()))
return;
const a = [];
for (let o of g) {
const p = this._libFiles.getOrCreateModel(o.fileName);
p && a.push({
uri: p.uri,
range: this._textSpanToRange(p, o.textSpan)
});
}
return a;
}
}, q = class extends w {
constructor(e, t) {
super(t), this._libFiles = e;
}
async provideReferences(e, t, r, l) {
const n = e.uri, u = e.getOffsetAt(t), g = await this._worker(n);
if (e.isDisposed())
return;
const a = await g.getReferencesAtPosition(n.toString(), u);
if (!a || e.isDisposed() || (await this._libFiles.fetchLibFilesIfNecessary(a.map((p) => i.Uri.parse(p.fileName))), e.isDisposed()))
return;
const o = [];
for (let p of a) {
const d = this._libFiles.getOrCreateModel(p.fileName);
d && o.push({
uri: d.uri,
range: this._textSpanToRange(d, p.textSpan)
});
}
return o;
}
}, X = class extends w {
async provideDocumentSymbols(e, t) {
const r = e.uri, l = await this._worker(r);
if (e.isDisposed())
return;
const n = await l.getNavigationTree(r.toString());
if (!n || e.isDisposed())
return;
const u = (a, o) => {
var d;
return {
name: a.text,
detail: "",
kind: m[a.kind] || i.languages.SymbolKind.Variable,
range: this._textSpanToRange(e, a.spans[0]),
selectionRange: this._textSpanToRange(e, a.spans[0]),
tags: [],
children: (d = a.childItems) == null ? void 0 : d.map((f) => u(f, a.text)),
containerName: o
};
};
return n.childItems ? n.childItems.map((a) => u(a)) : [];
}
}, c = class {
};
b(c, "unknown", "");
b(c, "keyword", "keyword");
b(c, "script", "script");
b(c, "module", "module");
b(c, "class", "class");
b(c, "interface", "interface");
b(c, "type", "type");
b(c, "enum", "enum");
b(c, "variable", "var");
b(c, "localVariable", "local var");
b(c, "function", "function");
b(c, "localFunction", "local function");
b(c, "memberFunction", "method");
b(c, "memberGetAccessor", "getter");
b(c, "memberSetAccessor", "setter");
b(c, "memberVariable", "property");
b(c, "constructorImplementation", "constructor");
b(c, "callSignature", "call");
b(c, "indexSignature", "index");
b(c, "constructSignature", "construct");
b(c, "parameter", "parameter");
b(c, "typeParameter", "type parameter");
b(c, "primitiveType", "primitive type");
b(c, "label", "label");
b(c, "alias", "alias");
b(c, "const", "const");
b(c, "let", "let");
b(c, "warning", "warning");
var m = /* @__PURE__ */ Object.create(null);
m[c.module] = i.languages.SymbolKind.Module;
m[c.class] = i.languages.SymbolKind.Class;
m[c.enum] = i.languages.SymbolKind.Enum;
m[c.interface] = i.languages.SymbolKind.Interface;
m[c.memberFunction] = i.languages.SymbolKind.Method;
m[c.memberVariable] = i.languages.SymbolKind.Property;
m[c.memberGetAccessor] = i.languages.SymbolKind.Property;
m[c.memberSetAccessor] = i.languages.SymbolKind.Property;
m[c.variable] = i.languages.SymbolKind.Variable;
m[c.const] = i.languages.SymbolKind.Variable;
m[c.localVariable] = i.languages.SymbolKind.Variable;
m[c.variable] = i.languages.SymbolKind.Variable;
m[c.function] = i.languages.SymbolKind.Function;
m[c.localFunction] = i.languages.SymbolKind.Function;
var S = class extends w {
static _convertOptions(e) {
return {
ConvertTabsToSpaces: e.insertSpaces,
TabSize: e.tabSize,
IndentSize: e.tabSize,
IndentStyle: 2,
NewLineCharacter: `
`,
InsertSpaceAfterCommaDelimiter: !0,
InsertSpaceAfterSemicolonInForStatements: !0,
InsertSpaceBeforeAndAfterBinaryOperators: !0,
InsertSpaceAfterKeywordsInControlFlowStatements: !0,
InsertSpaceAfterFunctionKeywordForAnonymousFunctions: !0,
InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: !1,
InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: !1,
InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: !1,
PlaceOpenBraceOnNewLineForControlBlocks: !1,
PlaceOpenBraceOnNewLineForFunctions: !1
};
}
_convertTextChanges(e, t) {
return {
text: t.newText,
range: this._textSpanToRange(e, t.span)
};
}
}, Y = class extends S {
constructor() {
super(...arguments);
_(this, "canFormatMultipleRanges", !1);
}
async provideDocumentRangeFormattingEdits(t, r, l, n) {
const u = t.uri, g = t.getOffsetAt({
lineNumber: r.startLineNumber,
column: r.startColumn
}), a = t.getOffsetAt({
lineNumber: r.endLineNumber,
column: r.endColumn
}), o = await this._worker(u);
if (t.isDisposed())
return;
const p = await o.getFormattingEditsForRange(u.toString(), g, a, S._convertOptions(l));
if (!(!p || t.isDisposed()))
return p.map((d) => this._convertTextChanges(t, d));
}
}, Z = class extends S {
get autoFormatTriggerCharacters() {
return [";", "}", `
`];
}
async provideOnTypeFormattingEdits(e, t, r, l, n) {
const u = e.uri, g = e.getOffsetAt(t), a = await this._worker(u);
if (e.isDisposed())
return;
const o = await a.getFormattingEditsAfterKeystroke(u.toString(), g, r, S._convertOptions(l));
if (!(!o || e.isDisposed()))
return o.map((p) => this._convertTextChanges(e, p));
}
}, ee = class extends S {
async provideCodeActions(e, t, r, l) {
const n = e.uri, u = e.getOffsetAt({
lineNumber: t.startLineNumber,
column: t.startColumn
}), g = e.getOffsetAt({
lineNumber: t.endLineNumber,
column: t.endColumn
}), a = S._convertOptions(e.getOptions()), o = r.markers.filter((h) => h.code).map((h) => h.code).map(Number), p = await this._worker(n);
if (e.isDisposed())
return;
const d = await p.getCodeFixesAtPosition(n.toString(), u, g, o, a);
return !d || e.isDisposed() ? { actions: [], dispose: () => {
} } : {
actions: d.filter((h) => h.changes.filter((y) => y.isNewFile).length === 0).map((h) => this._tsCodeFixActionToMonacoCodeAction(e, r, h)),
dispose: () => {
}
};
}
_tsCodeFixActionToMonacoCodeAction(e, t, r) {
const l = [];
for (const u of r.changes)
for (const g of u.textChanges)
l.push({
resource: e.uri,
versionId: void 0,
textEdit: {
range: this._textSpanToRange(e, g.span),
text: g.newText
}
});
return {
title: r.description,
edit: { edits: l },
diagnostics: t.markers,
kind: "quickfix"
};
}
}, te = class extends w {
constructor(e, t) {
super(t), this._libFiles = e;
}
async provideRenameEdits(e, t, r, l) {
const n = e.uri, u = n.toString(), g = e.getOffsetAt(t), a = await this._worker(n);
if (e.isDisposed())
return;
const o = await a.getRenameInfo(u, g, {
allowRenameOfImportPath: !1
});
if (o.canRename === !1)
return {
edits: [],
rejectReason: o.localizedErrorMessage
};
if (o.fileToRename !== void 0)
throw new Error("Renaming files is not supported.");
const p = await a.findRenameLocations(u, g, !1, !1, !1);
if (!p || e.isDisposed())
return;
const d = [];
for (const f of p) {
const h = this._libFiles.getOrCreateModel(f.fileName);
if (h)
d.push({
resource: h.uri,
versionId: void 0,
textEdit: {
range: this._textSpanToRange(h, f.textSpan),
text: r
}
});
else
throw new Error(`Unknown file ${f.fileName}.`);
}
return { edits: d };
}
}, re = class extends w {
async provideInlayHints(e, t, r) {
const l = e.uri, n = l.toString(), u = e.getOffsetAt({
lineNumber: t.startLineNumber,
column: t.startColumn
}), g = e.getOffsetAt({
lineNumber: t.endLineNumber,
column: t.endColumn
}), a = await this._worker(l);
return e.isDisposed() ? null : { hints: (await a.provideInlayHints(n, u, g)).map((d) => ({
...d,
label: d.text,
position: e.getPositionAt(d.position),
kind: this._convertHintKind(d.kind)
})), dispose: () => {
} };
}
_convertHintKind(e) {
switch (e) {
case "Parameter":
return i.languages.InlayHintKind.Parameter;
case "Type":
return i.languages.InlayHintKind.Type;
default:
return i.languages.InlayHintKind.Type;
}
}
}, F, A;
function ce(e) {
A = I(e, "typescript");
}
function ue(e) {
F = I(e, "javascript");
}
function ge() {
return new Promise((e, t) => {
if (!F)
return t("JavaScript not registered!");
e(F);
});
}
function de() {
return new Promise((e, t) => {
if (!A)
return t("TypeScript not registered!");
e(A);
});
}
function I(e, t) {
const r = [], l = new U(t, e), n = (...a) => l.getLanguageServiceWorker(...a), u = new $(n);
function g() {
const { modeConfiguration: a } = e;
se(r), a.completionItems && r.push(i.languages.registerCompletionItemProvider(t, new C(n))), a.signatureHelp && r.push(i.languages.registerSignatureHelpProvider(t, new O(n))), a.hovers && r.push(i.languages.registerHoverProvider(t, new G(n))), a.documentHighlights && r.push(i.languages.registerDocumentHighlightProvider(t, new J(n))), a.definitions && r.push(i.languages.registerDefinitionProvider(t, new Q(u, n))), a.references && r.push(i.languages.registerReferenceProvider(t, new q(u, n))), a.documentSymbols && r.push(i.languages.registerDocumentSymbolProvider(t, new X(n))), a.rename && r.push(i.languages.registerRenameProvider(t, new te(u, n))), a.documentRangeFormattingEdits && r.push(i.languages.registerDocumentRangeFormattingEditProvider(t, new Y(n))), a.onTypeFormattingEdits && r.push(i.languages.registerOnTypeFormattingEditProvider(t, new Z(n))), a.codeActions && r.push(i.languages.registerCodeActionProvider(t, new ee(n))), a.inlayHints && r.push(i.languages.registerInlayHintsProvider(t, new re(n))), a.diagnostics && r.push(new z(u, e, t, n));
}
return g(), n;
}
function se(e) {
for (; e.length; )
e.pop().dispose();
}
export {
w as Adapter,
ee as CodeActionAdaptor,
Q as DefinitionAdapter,
z as DiagnosticsAdapter,
J as DocumentHighlightAdapter,
Y as FormatAdapter,
S as FormatHelper,
Z as FormatOnTypeAdapter,
re as InlayHintsAdapter,
c as Kind,
$ as LibFiles,
X as OutlineAdapter,
G as QuickInfoAdapter,
q as ReferenceAdapter,
te as RenameAdapter,
O as SignatureHelpAdapter,
C as SuggestAdapter,
U as WorkerManager,
D as flattenDiagnosticMessageText,
ge as getJavaScriptWorker,
de as getTypeScriptWorker,
ue as setupJavaScript,
ce as setupTypeScript
};