UNPKG

monaco-editor

Version:
1,147 lines (1,146 loc) • 145 kB
define("vs/editor/editor.main", ["exports", "require", "vs/nls.messages-loader!", "../monaco.contribution-D_SyqKiy", "../monaco.contribution-D74vF5SR", "../monaco.contribution-Cqdn_4Kw", "../monaco.contribution-YfYcxPkX", "../basic-languages/monaco.contribution", "../editor.api-CykLys8L", "../workers-p6mTW5Va"], (function(exports, require, nls_messagesLoader_, language_css_monaco_contribution, language_html_monaco_contribution, language_json_monaco_contribution, language_typescript_monaco_contribution, basicLanguages_monaco_contribution, editor_api, workers) { "use strict"; function _interopNamespaceDefault(e) { const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); if (e) { for (const k in e) { if (k !== "default") { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const require__namespace = /* @__PURE__ */ _interopNamespaceDefault(require); const __worker_url_0__ = "" + new URL(require.toUrl("../assets/json.worker-CvNsV1ln.js"), document.baseURI).href; const __worker_url_1__ = "" + new URL(require.toUrl("../assets/css.worker-CgWp-mpq.js"), document.baseURI).href; const __worker_url_2__ = "" + new URL(require.toUrl("../assets/html.worker-Dp8eKPfv.js"), document.baseURI).href; const __worker_url_3__ = "" + new URL(require.toUrl("../assets/ts.worker-ClNbeHrN.js"), document.baseURI).href; const __worker_url_4__ = "" + new URL(require.toUrl("../assets/editor.worker-DbHNojjm.js"), document.baseURI).href; function isRequestOrNotification(msg) { return msg.method !== void 0; } var ErrorObject; (function(ErrorObject$1) { function create(obj) { return obj; } ErrorObject$1.create = create; })(ErrorObject || (ErrorObject = {})); var ErrorCode; (function(ErrorCode$1) { ErrorCode$1.parseError = -32700; ErrorCode$1.invalidRequest = -32600; ErrorCode$1.methodNotFound = -32601; ErrorCode$1.invalidParams = -32602; ErrorCode$1.internalError = -32603; function isServerError(code) { return -32099 <= code && code <= -32e3; } ErrorCode$1.isServerError = isServerError; function serverError(code) { if (!isServerError(code)) throw new Error("Invalid range for a server error."); return code; } ErrorCode$1.serverError = serverError; ErrorCode$1.unexpectedServerError = -32e3; function isApplicationError(code) { return true; } ErrorCode$1.isApplicationError = isApplicationError; function applicationError(code) { return code; } ErrorCode$1.applicationError = applicationError; ErrorCode$1.genericApplicationError = -320100; })(ErrorCode || (ErrorCode = {})); var EventEmitter = class { listeners = /* @__PURE__ */ new Set(); event = (listener) => { this.listeners.add(listener); return { dispose: () => { this.listeners.delete(listener); } }; }; fire(args) { this.listeners.forEach((listener) => listener(args)); } }; var ValueWithChangeEvent = class { _value; eventEmitter; constructor(initialValue) { this._value = initialValue; this.eventEmitter = new EventEmitter(); } get value() { return this._value; } set value(newValue) { if (this._value !== newValue) { this._value = newValue; this.eventEmitter.fire(newValue); } } get onChange() { return this.eventEmitter.event; } }; function createTimeout(delay, callback) { const handle = setTimeout(callback, delay); return { dispose: () => clearTimeout(handle) }; } function setAndDeleteOnDispose(set, keyOrItem, item) { if (set instanceof Set) { set.add(keyOrItem); return { dispose: () => set.delete(keyOrItem) }; } else { set.set(keyOrItem, item); return { dispose: () => set.delete(keyOrItem) }; } } var Deferred = class { _state = "none"; promise; resolve = () => { }; reject = () => { }; constructor() { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; }); } get state() { return this._state; } }; var BaseMessageTransport = class BaseMessageTransport2 { static id = 0; _unprocessedMessages = []; _messageListener; id = BaseMessageTransport2.id++; _state = new ValueWithChangeEvent({ state: "open" }); state = this._state; /** * Sets a callback for incoming messages. */ setListener(listener) { this._messageListener = listener; if (!listener) return; while (this._unprocessedMessages.length > 0 && this._messageListener !== void 0) { const msg = this._unprocessedMessages.shift(); this._messageListener(msg); } } /** * Writes a message to the stream. */ send(message) { return this._sendImpl(message); } /** * Call this in derived classes to signal a new message. */ _dispatchReceivedMessage(message) { if (this._unprocessedMessages.length === 0 && this._messageListener) this._messageListener(message); else this._unprocessedMessages.push(message); } /** * Call this in derived classes to signal that the connection closed. */ _onConnectionClosed() { this._state.value = { state: "closed", error: void 0 }; } log(logger) { return new StreamLogger(this, logger ?? new ConsoleMessageLogger()); } }; var StreamLogger = class { baseStream; logger; constructor(baseStream, logger) { this.baseStream = baseStream; this.logger = logger; } get state() { return this.baseStream.state; } setListener(listener) { if (listener === void 0) { this.baseStream.setListener(void 0); return; } this.baseStream.setListener((readMessage) => { this.logger.log(this.baseStream, "incoming", readMessage); listener(readMessage); }); } send(message) { this.logger.log(this.baseStream, "outgoing", message); return this.baseStream.send(message); } toString() { return `StreamLogger/${this.baseStream.toString()}`; } }; var ConsoleMessageLogger = class { log(stream, type, message) { const char = type === "incoming" ? "<-" : "->"; console.log(`${char} [${stream.toString()}] ${JSON.stringify(message)}`); } }; var Channel = class Channel2 { connect; constructor(connect) { this.connect = connect; } mapContext(map) { return new Channel2((listener) => this.connect(listener ? mapRequestHandlerContext(listener, map) : void 0)); } }; function mapRequestHandlerContext(messageHandler, map) { return { handleNotification: (request, context) => messageHandler.handleNotification(request, map(context)), handleRequest: (request, requestId, context) => messageHandler.handleRequest(request, requestId, map(context)) }; } var StreamBasedChannel = class StreamBasedChannel2 { _stream; _listener; _logger; /** * Creates a channel factory from a given stream and logger. * This allows to delay specifying a `RequestHandler`. * Once the channel is created, it processes incoming messages. */ static createChannel(stream, logger) { let constructed = false; return new Channel((listener) => { if (constructed) throw new Error(`A channel to the stream ${stream} was already constructed!`); else constructed = true; return new StreamBasedChannel2(stream, listener, logger); }); } _unprocessedResponses = /* @__PURE__ */ new Map(); _lastUsedRequestId = 0; constructor(_stream, _listener, _logger) { this._stream = _stream; this._listener = _listener; this._logger = _logger; this._stream.setListener((message) => { if (isRequestOrNotification(message)) if (message.id === void 0) this._processNotification(message); else this._processRequest(message); else this._processResponse(message); }); } get state() { return this._stream.state; } async _processNotification(message) { if (message.id !== void 0) throw new Error(); if (!this._listener) { if (this._logger) this._logger.debug({ text: "Notification ignored", message }); return; } try { await this._listener.handleNotification({ method: message.method, params: message.params || null }); } catch (exception) { if (this._logger) this._logger.warn({ text: `Exception was thrown while handling notification: ${exception}`, exception, message }); } } async _processRequest(message) { if (message.id === void 0) throw new Error(); let result; if (this._listener) try { result = await this._listener.handleRequest({ method: message.method, params: message.params || null }, message.id); } catch (exception) { if (this._logger) this._logger.warn({ text: `Exception was thrown while handling request: ${exception}`, message, exception }); result = { error: { code: ErrorCode.internalError, message: "An unexpected exception was thrown.", data: void 0 } }; } else { if (this._logger) this._logger.debug({ text: "Received request even though not listening for requests", message }); result = { error: { code: ErrorCode.methodNotFound, message: "This endpoint does not listen for requests or notifications.", data: void 0 } }; } let responseMsg; if ("result" in result) responseMsg = { jsonrpc: "2.0", id: message.id, result: result.result }; else responseMsg = { jsonrpc: "2.0", id: message.id, error: result.error }; await this._stream.send(responseMsg); } _processResponse(message) { const strId = "" + message.id; const callback = this._unprocessedResponses.get(strId); if (!callback) { if (this._logger) this._logger.debug({ text: "Got an unexpected response message", message }); return; } this._unprocessedResponses.delete(strId); callback(message); } _newRequestId() { return this._lastUsedRequestId++; } sendRequest(request, _context, messageIdCallback) { const message = { jsonrpc: "2.0", id: this._newRequestId(), method: request.method, params: request.params || void 0 }; if (messageIdCallback) messageIdCallback(message.id); return new Promise((resolve, reject) => { const strId = "" + message.id; this._unprocessedResponses.set(strId, (response) => { if ("result" in response) resolve({ result: response.result }); else { if (!response.error) reject(/* @__PURE__ */ new Error("Response had neither 'result' nor 'error' field set.")); resolve({ error: response.error }); } }); this._stream.send(message).then(void 0, (reason) => { this._unprocessedResponses.delete(strId); reject(reason); }); }); } sendNotification(notification, context) { const msg = { jsonrpc: "2.0", id: void 0, method: notification.method, params: notification.params || void 0 }; return this._stream.send(msg); } toString() { return "StreamChannel/" + this._stream.toString(); } }; var Serializers; (function(Serializers$1) { function sAny() { return { deserializeFromJson: (input) => ({ hasErrors: false, value: input }), serializeToJson: (input) => input }; } Serializers$1.sAny = sAny; function sEmptyObject() { return { deserializeFromJson: (input) => ({ hasErrors: false, value: {} }), serializeToJson: (input) => ({}) }; } Serializers$1.sEmptyObject = sEmptyObject; function sVoidFromNull() { return { deserializeFromJson: (input) => ({ hasErrors: false, value: void 0 }), serializeToJson: (input) => null }; } Serializers$1.sVoidFromNull = sVoidFromNull; })(Serializers || (Serializers = {})); const OptionalMethodNotFound = Symbol("OptionalMethodNotFound"); var TypedChannelBase = class { contextualize(args) { return new ContextualizedTypedChannel(this, args); } }; var ContextualizedTypedChannel = class extends TypedChannelBase { underylingTypedChannel; converters; constructor(underylingTypedChannel, converters) { super(); this.underylingTypedChannel = underylingTypedChannel; this.converters = converters; } async request(requestType, args, newContext) { const context = await this.converters.getSendContext(newContext); return this.underylingTypedChannel.request(requestType, args, context); } async notify(notificationType, params, newContext) { const context = await this.converters.getSendContext(newContext); return this.underylingTypedChannel.notify(notificationType, params, context); } registerNotificationHandler(type, handler) { return this.underylingTypedChannel.registerNotificationHandler(type, async (arg, context) => { return await handler(arg, await this.converters.getNewContext(context)); }); } registerRequestHandler(requestType, handler) { return this.underylingTypedChannel.registerRequestHandler(requestType, async (arg, requestId, context) => { return await handler(arg, requestId, await this.converters.getNewContext(context)); }); } }; var TypedChannel = class TypedChannel2 extends TypedChannelBase { channelCtor; static fromTransport(stream, options = {}) { return new TypedChannel2(StreamBasedChannel.createChannel(stream, options.logger), options); } _requestSender = void 0; _handler = /* @__PURE__ */ new Map(); _unknownNotificationHandler = /* @__PURE__ */ new Set(); _timeout; sendExceptionDetails = false; _logger; constructor(channelCtor, options = {}) { super(); this.channelCtor = channelCtor; this._logger = options.logger; this.sendExceptionDetails = !!options.sendExceptionDetails; this._timeout = createTimeout(1e3, () => { if (!this._requestSender) console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`, this); }); } listeningDeferred = new Deferred(); onListening = this.listeningDeferred.promise; _requestDidErrorEventEmitter = new EventEmitter(); onRequestDidError = this._requestDidErrorEventEmitter.event; /** * This method must be called to forward messages from the stream to this channel. * This is not done automatically on construction so that this instance * can be setup properly before handling messages. */ startListen() { if (this._requestSender) throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`); if (this._timeout) { this._timeout.dispose(); this._timeout = void 0; } this._requestSender = this.channelCtor.connect({ handleRequest: (req, id, context) => this.handleRequest(req, id, context), handleNotification: (req, context) => this.handleNotification(req, context) }); this.listeningDeferred.resolve(); } checkChannel(channel) { if (!channel) throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`); return true; } async handleRequest(request, requestId, context) { const handler = this._handler.get(request.method); if (!handler) { if (this._logger) this._logger.debug({ text: `No request handler for "${request.method}".`, data: { requestObject: request } }); return { error: { code: ErrorCode.methodNotFound, message: `No request handler for "${request.method}".`, data: { method: request.method } } }; } if (handler.kind != "request") { const message = `"${request.method}" is registered as notification, but was sent as request.`; if (this._logger) this._logger.debug({ text: message, data: { requestObject: request } }); return { error: { code: ErrorCode.invalidRequest, message, data: { method: request.method } } }; } const decodeResult = handler.requestType.paramsSerializer.deserializeFromJson(request.params); if (decodeResult.hasErrors) { const message = `Got invalid params: ${decodeResult.errorMessage}`; if (this._logger) this._logger.debug({ text: message, data: { requestObject: request, errorMessage: decodeResult.errorMessage } }); return { error: { code: ErrorCode.invalidParams, message, data: { errors: decodeResult.errorMessage } } }; } else { const args = decodeResult.value; let response; try { const result = await handler.handler(args, requestId, context); if ("error" in result || "errorMessage" in result) { const errorData = result.error ? handler.requestType.errorSerializer.serializeToJson(result.error) : void 0; response = { error: { code: result.errorCode || ErrorCode.genericApplicationError, message: result.errorMessage || "An error was returned", data: errorData } }; } else response = { result: handler.requestType.resultSerializer.serializeToJson(result.ok) }; } catch (exception) { if (exception instanceof RequestHandlingError) response = { error: { code: exception.code, message: exception.message } }; else { if (this._logger) this._logger.warn({ text: `An exception was thrown while handling a request: ${exception}.`, exception, data: { requestObject: request } }); response = { error: { code: ErrorCode.unexpectedServerError, message: this.sendExceptionDetails ? `An exception was thrown while handling a request: ${exception}.` : "Server has thrown an unexpected exception" } }; } } return response; } } async handleNotification(request, context) { const handler = this._handler.get(request.method); if (!handler) { for (const h of this._unknownNotificationHandler) h(request); if (this._unknownNotificationHandler.size === 0) { if (this._logger) this._logger.debug({ text: `Unhandled notification "${request.method}"`, data: { requestObject: request } }); } return; } if (handler.kind != "notification") { if (this._logger) this._logger.debug({ text: `"${request.method}" is registered as request, but was sent as notification.`, data: { requestObject: request } }); return; } const decodeResult = handler.notificationType.paramsSerializer.deserializeFromJson(request.params); if (decodeResult.hasErrors) { if (this._logger) this._logger.debug({ text: `Got invalid params: ${decodeResult}`, data: { requestObject: request, errorMessage: decodeResult.errorMessage } }); return; } const val = decodeResult.value; for (const handlerFunc of handler.handlers) try { handlerFunc(val, context); } catch (exception) { if (this._logger) this._logger.warn({ text: `An exception was thrown while handling a notification: ${exception}.`, exception, data: { requestObject: request } }); } } registerUnknownNotificationHandler(handler) { return setAndDeleteOnDispose(this._unknownNotificationHandler, handler); } registerRequestHandler(requestType, handler) { if (this._handler.get(requestType.method)) throw new Error(`Handler with method "${requestType.method}" already registered.`); return setAndDeleteOnDispose(this._handler, requestType.method, { kind: "request", requestType, handler }); } registerNotificationHandler(type, handler) { let registeredHandler = this._handler.get(type.method); if (!registeredHandler) { registeredHandler = { kind: "notification", notificationType: type, handlers: /* @__PURE__ */ new Set() }; this._handler.set(type.method, registeredHandler); } else { if (registeredHandler.kind !== "notification") throw new Error(`Method "${type.method}" was already registered as request handler.`); if (registeredHandler.notificationType !== type) throw new Error(`Method "${type.method}" was registered for a different type.`); } return setAndDeleteOnDispose(registeredHandler.handlers, handler); } getRegisteredTypes() { const result = []; for (const h of this._handler.values()) if (h.kind === "notification") result.push(h.notificationType); else if (h.kind === "request") result.push(h.requestType); return result; } async request(requestType, args, context) { if (!this.checkChannel(this._requestSender)) throw new Error("Impossible"); const params = requestType.paramsSerializer.serializeToJson(args); assertObjectArrayOrNull(params); const response = await this._requestSender.sendRequest({ method: requestType.method, params }, context); if ("error" in response) { if (requestType.isOptional && response.error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound; let errorData; if (response.error.data !== void 0) { const deserializationResult = requestType.errorSerializer.deserializeFromJson(response.error.data); if (deserializationResult.hasErrors) throw new Error(deserializationResult.errorMessage); errorData = deserializationResult.value; } else errorData = void 0; const error = new RequestHandlingError(response.error.message, errorData, response.error.code); this._requestDidErrorEventEmitter.fire({ error }); throw error; } else { const result = requestType.resultSerializer.deserializeFromJson(response.result); if (result.hasErrors) throw new Error("Could not deserialize response: " + result.errorMessage + ` ${JSON.stringify(response, null, 2)}`); else return result.value; } } async notify(notificationType, params, context) { if (!this.checkChannel(this._requestSender)) throw new Error(); const encodedParams = notificationType.paramsSerializer.serializeToJson(params); assertObjectArrayOrNull(encodedParams); this._requestSender.sendNotification({ method: notificationType.method, params: encodedParams }, context); } }; function assertObjectArrayOrNull(val) { if (val !== null && Array.isArray(val) && typeof val !== "object") throw new Error("Invalid value! Only null, array and object is allowed."); } var RequestHandlingError = class RequestHandlingError2 extends Error { data; code; constructor(message, data, code = ErrorCode.genericApplicationError) { super(message); this.data = data; this.code = code; Object.setPrototypeOf(this, RequestHandlingError2.prototype); } }; var RequestType = class RequestType2 { method; paramsSerializer; resultSerializer; errorSerializer; isOptional; kind = "request"; constructor(method, paramsSerializer, resultSerializer, errorSerializer, isOptional = false) { this.method = method; this.paramsSerializer = paramsSerializer; this.resultSerializer = resultSerializer; this.errorSerializer = errorSerializer; this.isOptional = isOptional; } withMethod(method) { return new RequestType2(method, this.paramsSerializer, this.resultSerializer, this.errorSerializer); } optional() { return new RequestType2(this.method, this.paramsSerializer, this.resultSerializer, this.errorSerializer, true); } }; var NotificationType = class NotificationType2 { method; paramsSerializer; kind = "notification"; constructor(method, paramsSerializer) { this.method = method; this.paramsSerializer = paramsSerializer; } withMethod(method) { return new NotificationType2(method, this.paramsSerializer); } }; function unverifiedRequest(request) { return new RequestType((request || {}).method, Serializers.sAny(), Serializers.sAny(), Serializers.sAny()); } function unverifiedNotification(request) { return new NotificationType((request || {}).method, Serializers.sAny()); } const IsErrorWrapper = Symbol(); var ErrorWrapper = class ErrorWrapper2 { error; static factory = (error) => { return new ErrorWrapper2(error); }; [IsErrorWrapper]; constructor(error) { this.error = error; } }; function contract(contractObj) { const server = transform(contractObj["server"]); const client = transform(contractObj["client"]); return new Contract(contractObj.tags || [], server, client); } function transform(requestMap) { const result = {}; for (const [key, req] of Object.entries(requestMap)) { const method = req.method ? req.method : key; result[key] = req.withMethod(method); } return result; } var Contract = class Contract2 { tags; server; client; _onlyDesignTime() { return /* @__PURE__ */ new Error("This property is not meant to be accessed at runtime"); } get TContractObject() { throw this._onlyDesignTime(); } get TClientInterface() { throw this._onlyDesignTime(); } get TServerInterface() { throw this._onlyDesignTime(); } get TClientHandler() { throw this._onlyDesignTime(); } get TServerHandler() { throw this._onlyDesignTime(); } get TTags() { throw this._onlyDesignTime(); } constructor(tags = [], server, client) { this.tags = tags; this.server = server; this.client = client; } getInterface(typedChannel, myContract, otherContract, myInterface) { const counterpart = this.buildCounterpart(typedChannel, otherContract); const disposable = this.registerHandlers(typedChannel, myContract, myInterface, counterpart); return { counterpart, dispose: () => disposable.dispose() }; } buildCounterpart(typedChannel, otherContract) { const counterpart = {}; for (const [key, req] of Object.entries(otherContract)) { let method; if (req.kind === "request") if (req.isOptional) method = async (args, context) => { if (args === void 0) args = {}; try { return await typedChannel.request(req, args, context); } catch (error) { if (error && error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound; throw error; } }; else method = (args, context) => { if (args === void 0) args = {}; return typedChannel.request(req, args, context); }; else method = (args, context) => { if (args === void 0) args = {}; return typedChannel.notify(req, args, context); }; counterpart[key] = method; } return counterpart; } registerHandlers(typedChannel, myContract, myInterface, counterpart) { const disposables = []; for (const [key, req] of Object.entries(myContract)) if (req.kind === "request") { let method = myInterface[key]; if (!method) continue; const handler = this.createRequestHandler(counterpart, method); disposables.push(typedChannel.registerRequestHandler(req, handler)); } else { const method = myInterface[key]; if (method) disposables.push(typedChannel.registerNotificationHandler(req, (args, context) => { method(args, { context, counterpart }); })); } return { dispose: () => disposables.forEach((d) => d.dispose()) }; } createRequestHandler(counterpart, method) { return async (args, requestId, listenerContext) => { const result = await method(args, { context: listenerContext, counterpart, newErr: ErrorWrapper.factory, requestId }); if (result instanceof ErrorWrapper) return result.error; return { ok: result }; }; } /** * Gets a server object directly from a stream by constructing a new `TypedChannel`. * It also registers the client implementation to the stream. * The channel starts listening immediately. */ static getServerFromStream(contract$1, stream, options, clientImplementation) { const channel = TypedChannel.fromTransport(stream, options); const { server } = contract$1.getServer(channel, clientImplementation); channel.startListen(); return { channel, server }; } /** * Gets a client object directly from a stream by constructing a new `TypedChannel`. * It also registers the server implementation to the stream. * The channel starts listening immediately. */ static registerServerToStream(contract$1, stream, options, serverImplementation) { const channel = TypedChannel.fromTransport(stream, options); const { client } = contract$1.registerServer(channel, serverImplementation); channel.startListen(); return { channel, client }; } getServer(typedChannel, clientImplementation) { const { counterpart, dispose } = this.getInterface(typedChannel, this.client, this.server, clientImplementation); return { server: counterpart, dispose }; } registerServer(typedChannel, serverImplementation) { const { counterpart, dispose } = this.getInterface(typedChannel, this.server, this.client, serverImplementation); return { client: counterpart, dispose }; } withContext() { return new Contract2(this.tags, this.server, this.client); } }; let FoldingRangeKind = /* @__PURE__ */ (function(FoldingRangeKind$1) { FoldingRangeKind$1["Comment"] = "comment"; FoldingRangeKind$1["Imports"] = "imports"; FoldingRangeKind$1["Region"] = "region"; return FoldingRangeKind$1; })({}); let SymbolKind = /* @__PURE__ */ (function(SymbolKind$1) { SymbolKind$1[SymbolKind$1["File"] = 1] = "File"; SymbolKind$1[SymbolKind$1["Module"] = 2] = "Module"; SymbolKind$1[SymbolKind$1["Namespace"] = 3] = "Namespace"; SymbolKind$1[SymbolKind$1["Package"] = 4] = "Package"; SymbolKind$1[SymbolKind$1["Class"] = 5] = "Class"; SymbolKind$1[SymbolKind$1["Method"] = 6] = "Method"; SymbolKind$1[SymbolKind$1["Property"] = 7] = "Property"; SymbolKind$1[SymbolKind$1["Field"] = 8] = "Field"; SymbolKind$1[SymbolKind$1["Constructor"] = 9] = "Constructor"; SymbolKind$1[SymbolKind$1["Enum"] = 10] = "Enum"; SymbolKind$1[SymbolKind$1["Interface"] = 11] = "Interface"; SymbolKind$1[SymbolKind$1["Function"] = 12] = "Function"; SymbolKind$1[SymbolKind$1["Variable"] = 13] = "Variable"; SymbolKind$1[SymbolKind$1["Constant"] = 14] = "Constant"; SymbolKind$1[SymbolKind$1["String"] = 15] = "String"; SymbolKind$1[SymbolKind$1["Number"] = 16] = "Number"; SymbolKind$1[SymbolKind$1["Boolean"] = 17] = "Boolean"; SymbolKind$1[SymbolKind$1["Array"] = 18] = "Array"; SymbolKind$1[SymbolKind$1["Object"] = 19] = "Object"; SymbolKind$1[SymbolKind$1["Key"] = 20] = "Key"; SymbolKind$1[SymbolKind$1["Null"] = 21] = "Null"; SymbolKind$1[SymbolKind$1["EnumMember"] = 22] = "EnumMember"; SymbolKind$1[SymbolKind$1["Struct"] = 23] = "Struct"; SymbolKind$1[SymbolKind$1["Event"] = 24] = "Event"; SymbolKind$1[SymbolKind$1["Operator"] = 25] = "Operator"; SymbolKind$1[SymbolKind$1["TypeParameter"] = 26] = "TypeParameter"; return SymbolKind$1; })({}); let SymbolTag = /* @__PURE__ */ (function(SymbolTag$1) { SymbolTag$1[SymbolTag$1["Deprecated"] = 1] = "Deprecated"; return SymbolTag$1; })({}); let InlayHintKind = /* @__PURE__ */ (function(InlayHintKind$1) { InlayHintKind$1[InlayHintKind$1["Type"] = 1] = "Type"; InlayHintKind$1[InlayHintKind$1["Parameter"] = 2] = "Parameter"; return InlayHintKind$1; })({}); let TextDocumentSyncKind = /* @__PURE__ */ (function(TextDocumentSyncKind$1) { TextDocumentSyncKind$1[TextDocumentSyncKind$1["None"] = 0] = "None"; TextDocumentSyncKind$1[TextDocumentSyncKind$1["Full"] = 1] = "Full"; TextDocumentSyncKind$1[TextDocumentSyncKind$1["Incremental"] = 2] = "Incremental"; return TextDocumentSyncKind$1; })({}); let CompletionItemKind = /* @__PURE__ */ (function(CompletionItemKind$1) { CompletionItemKind$1[CompletionItemKind$1["Text"] = 1] = "Text"; CompletionItemKind$1[CompletionItemKind$1["Method"] = 2] = "Method"; CompletionItemKind$1[CompletionItemKind$1["Function"] = 3] = "Function"; CompletionItemKind$1[CompletionItemKind$1["Constructor"] = 4] = "Constructor"; CompletionItemKind$1[CompletionItemKind$1["Field"] = 5] = "Field"; CompletionItemKind$1[CompletionItemKind$1["Variable"] = 6] = "Variable"; CompletionItemKind$1[CompletionItemKind$1["Class"] = 7] = "Class"; CompletionItemKind$1[CompletionItemKind$1["Interface"] = 8] = "Interface"; CompletionItemKind$1[CompletionItemKind$1["Module"] = 9] = "Module"; CompletionItemKind$1[CompletionItemKind$1["Property"] = 10] = "Property"; CompletionItemKind$1[CompletionItemKind$1["Unit"] = 11] = "Unit"; CompletionItemKind$1[CompletionItemKind$1["Value"] = 12] = "Value"; CompletionItemKind$1[CompletionItemKind$1["Enum"] = 13] = "Enum"; CompletionItemKind$1[CompletionItemKind$1["Keyword"] = 14] = "Keyword"; CompletionItemKind$1[CompletionItemKind$1["Snippet"] = 15] = "Snippet"; CompletionItemKind$1[CompletionItemKind$1["Color"] = 16] = "Color"; CompletionItemKind$1[CompletionItemKind$1["File"] = 17] = "File"; CompletionItemKind$1[CompletionItemKind$1["Reference"] = 18] = "Reference"; CompletionItemKind$1[CompletionItemKind$1["Folder"] = 19] = "Folder"; CompletionItemKind$1[CompletionItemKind$1["EnumMember"] = 20] = "EnumMember"; CompletionItemKind$1[CompletionItemKind$1["Constant"] = 21] = "Constant"; CompletionItemKind$1[CompletionItemKind$1["Struct"] = 22] = "Struct"; CompletionItemKind$1[CompletionItemKind$1["Event"] = 23] = "Event"; CompletionItemKind$1[CompletionItemKind$1["Operator"] = 24] = "Operator"; CompletionItemKind$1[CompletionItemKind$1["TypeParameter"] = 25] = "TypeParameter"; return CompletionItemKind$1; })({}); let CompletionItemTag = /* @__PURE__ */ (function(CompletionItemTag$1) { CompletionItemTag$1[CompletionItemTag$1["Deprecated"] = 1] = "Deprecated"; return CompletionItemTag$1; })({}); let InsertTextFormat = /* @__PURE__ */ (function(InsertTextFormat$1) { InsertTextFormat$1[InsertTextFormat$1["PlainText"] = 1] = "PlainText"; InsertTextFormat$1[InsertTextFormat$1["Snippet"] = 2] = "Snippet"; return InsertTextFormat$1; })({}); let DocumentHighlightKind = /* @__PURE__ */ (function(DocumentHighlightKind$1) { DocumentHighlightKind$1[DocumentHighlightKind$1["Text"] = 1] = "Text"; DocumentHighlightKind$1[DocumentHighlightKind$1["Read"] = 2] = "Read"; DocumentHighlightKind$1[DocumentHighlightKind$1["Write"] = 3] = "Write"; return DocumentHighlightKind$1; })({}); let CodeActionKind = /* @__PURE__ */ (function(CodeActionKind$1) { CodeActionKind$1["Empty"] = ""; CodeActionKind$1["QuickFix"] = "quickfix"; CodeActionKind$1["Refactor"] = "refactor"; CodeActionKind$1["RefactorExtract"] = "refactor.extract"; CodeActionKind$1["RefactorInline"] = "refactor.inline"; CodeActionKind$1["RefactorRewrite"] = "refactor.rewrite"; CodeActionKind$1["Source"] = "source"; CodeActionKind$1["SourceOrganizeImports"] = "source.organizeImports"; CodeActionKind$1["SourceFixAll"] = "source.fixAll"; return CodeActionKind$1; })({}); let MarkupKind = /* @__PURE__ */ (function(MarkupKind$1) { MarkupKind$1["PlainText"] = "plaintext"; MarkupKind$1["Markdown"] = "markdown"; return MarkupKind$1; })({}); let DiagnosticSeverity = /* @__PURE__ */ (function(DiagnosticSeverity$1) { DiagnosticSeverity$1[DiagnosticSeverity$1["Error"] = 1] = "Error"; DiagnosticSeverity$1[DiagnosticSeverity$1["Warning"] = 2] = "Warning"; DiagnosticSeverity$1[DiagnosticSeverity$1["Information"] = 3] = "Information"; DiagnosticSeverity$1[DiagnosticSeverity$1["Hint"] = 4] = "Hint"; return DiagnosticSeverity$1; })({}); let DiagnosticTag = /* @__PURE__ */ (function(DiagnosticTag$1) { DiagnosticTag$1[DiagnosticTag$1["Unnecessary"] = 1] = "Unnecessary"; DiagnosticTag$1[DiagnosticTag$1["Deprecated"] = 2] = "Deprecated"; return DiagnosticTag$1; })({}); let CompletionTriggerKind = /* @__PURE__ */ (function(CompletionTriggerKind$1) { CompletionTriggerKind$1[CompletionTriggerKind$1["Invoked"] = 1] = "Invoked"; CompletionTriggerKind$1[CompletionTriggerKind$1["TriggerCharacter"] = 2] = "TriggerCharacter"; CompletionTriggerKind$1[CompletionTriggerKind$1["TriggerForIncompleteCompletions"] = 3] = "TriggerForIncompleteCompletions"; return CompletionTriggerKind$1; })({}); let SignatureHelpTriggerKind = /* @__PURE__ */ (function(SignatureHelpTriggerKind$1) { SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1["Invoked"] = 1] = "Invoked"; SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1["TriggerCharacter"] = 2] = "TriggerCharacter"; SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1["ContentChange"] = 3] = "ContentChange"; return SignatureHelpTriggerKind$1; })({}); let CodeActionTriggerKind = /* @__PURE__ */ (function(CodeActionTriggerKind$1) { CodeActionTriggerKind$1[CodeActionTriggerKind$1["Invoked"] = 1] = "Invoked"; CodeActionTriggerKind$1[CodeActionTriggerKind$1["Automatic"] = 2] = "Automatic"; return CodeActionTriggerKind$1; })({}); let TokenFormat = /* @__PURE__ */ (function(TokenFormat$1) { TokenFormat$1["Relative"] = "relative"; return TokenFormat$1; })({}); var Capability = class { constructor(method) { this.method = method; } }; const capabilities = { textDocumentImplementation: new Capability("textDocument/implementation"), textDocumentTypeDefinition: new Capability("textDocument/typeDefinition"), textDocumentDocumentColor: new Capability("textDocument/documentColor"), textDocumentColorPresentation: new Capability("textDocument/colorPresentation"), textDocumentFoldingRange: new Capability("textDocument/foldingRange"), textDocumentDeclaration: new Capability("textDocument/declaration"), textDocumentSelectionRange: new Capability("textDocument/selectionRange"), textDocumentPrepareCallHierarchy: new Capability("textDocument/prepareCallHierarchy"), textDocumentSemanticTokensFull: new Capability("textDocument/semanticTokens/full"), textDocumentSemanticTokensFullDelta: new Capability("textDocument/semanticTokens/full/delta"), textDocumentLinkedEditingRange: new Capability("textDocument/linkedEditingRange"), workspaceWillCreateFiles: new Capability("workspace/willCreateFiles"), workspaceWillRenameFiles: new Capability("workspace/willRenameFiles"), workspaceWillDeleteFiles: new Capability("workspace/willDeleteFiles"), textDocumentMoniker: new Capability("textDocument/moniker"), textDocumentPrepareTypeHierarchy: new Capability("textDocument/prepareTypeHierarchy"), textDocumentInlineValue: new Capability("textDocument/inlineValue"), textDocumentInlayHint: new Capability("textDocument/inlayHint"), textDocumentDiagnostic: new Capability("textDocument/diagnostic"), textDocumentInlineCompletion: new Capability("textDocument/inlineCompletion"), textDocumentWillSaveWaitUntil: new Capability("textDocument/willSaveWaitUntil"), textDocumentCompletion: new Capability("textDocument/completion"), textDocumentHover: new Capability("textDocument/hover"), textDocumentSignatureHelp: new Capability("textDocument/signatureHelp"), textDocumentDefinition: new Capability("textDocument/definition"), textDocumentReferences: new Capability("textDocument/references"), textDocumentDocumentHighlight: new Capability("textDocument/documentHighlight"), textDocumentDocumentSymbol: new Capability("textDocument/documentSymbol"), textDocumentCodeAction: new Capability("textDocument/codeAction"), workspaceSymbol: new Capability("workspace/symbol"), textDocumentCodeLens: new Capability("textDocument/codeLens"), textDocumentDocumentLink: new Capability("textDocument/documentLink"), textDocumentFormatting: new Capability("textDocument/formatting"), textDocumentRangeFormatting: new Capability("textDocument/rangeFormatting"), textDocumentRangesFormatting: new Capability("textDocument/rangesFormatting"), textDocumentOnTypeFormatting: new Capability("textDocument/onTypeFormatting"), textDocumentRename: new Capability("textDocument/rename"), workspaceExecuteCommand: new Capability("workspace/executeCommand"), workspaceDidCreateFiles: new Capability("workspace/didCreateFiles"), workspaceDidRenameFiles: new Capability("workspace/didRenameFiles"), workspaceDidDeleteFiles: new Capability("workspace/didDeleteFiles"), workspaceDidChangeConfiguration: new Capability("workspace/didChangeConfiguration"), textDocumentDidOpen: new Capability("textDocument/didOpen"), textDocumentDidChange: new Capability("textDocument/didChange"), textDocumentDidClose: new Capability("textDocument/didClose"), textDocumentDidSave: new Capability("textDocument/didSave"), textDocumentWillSave: new Capability("textDocument/willSave"), workspaceDidChangeWatchedFiles: new Capability("workspace/didChangeWatchedFiles") }; const api = contract({ server: { textDocumentImplementation: unverifiedRequest({ method: "textDocument/implementation" }), textDocumentTypeDefinition: unverifiedRequest({ method: "textDocument/typeDefinition" }), textDocumentDocumentColor: unverifiedRequest({ method: "textDocument/documentColor" }), textDocumentColorPresentation: unverifiedRequest({ method: "textDocument/colorPresentation" }), textDocumentFoldingRange: unverifiedRequest({ method: "textDocument/foldingRange" }), textDocumentDeclaration: unverifiedRequest({ method: "textDocument/declaration" }), textDocumentSelectionRange: unverifiedRequest({ method: "textDocument/selectionRange" }), textDocumentPrepareCallHierarchy: unverifiedRequest({ method: "textDocument/prepareCallHierarchy" }), callHierarchyIncomingCalls: unverifiedRequest({ method: "callHierarchy/incomingCalls" }), callHierarchyOutgoingCalls: unverifiedRequest({ method: "callHierarchy/outgoingCalls" }), textDocumentSemanticTokensFull: unverifiedRequest({ method: "textDocument/semanticTokens/full" }), textDocumentSemanticTokensFullDelta: unverifiedRequest({ method: "textDocument/semanticTokens/full/delta" }), textDocumentSemanticTokensRange: unverifiedRequest({ method: "textDocument/semanticTokens/range" }), textDocumentLinkedEditingRange: unverifiedRequest({ method: "textDocument/linkedEditingRange" }), workspaceWillCreateFiles: unverifiedRequest({ method: "workspace/willCreateFiles" }), workspaceWillRenameFiles: unverifiedRequest({ method: "workspace/willRenameFiles" }), workspaceWillDeleteFiles: unverifiedRequest({ method: "workspace/willDeleteFiles" }), textDocumentMoniker: unverifiedRequest({ method: "textDocument/moniker" }), textDocumentPrepareTypeHierarchy: unverifiedRequest({ method: "textDocument/prepareTypeHierarchy" }), typeHierarchySupertypes: unverifiedRequest({ method: "typeHierarchy/supertypes" }), typeHierarchySubtypes: unverifiedRequest({ method: "typeHierarchy/subtypes" }), textDocumentInlineValue: unverifiedRequest({ method: "textDocument/inlineValue" }), textDocumentInlayHint: unverifiedRequest({ method: "textDocument/inlayHint" }), inlayHintResolve: unverifiedRequest({ method: "inlayHint/resolve" }), textDocumentDiagnostic: unverifiedRequest({ method: "textDocument/diagnostic" }), workspaceDiagnostic: unverifiedRequest({ method: "workspace/diagnostic" }), textDocumentInlineCompletion: unverifiedRequest({ method: "textDocument/inlineCompletion" }), initialize: unverifiedRequest({ method: "initialize" }), shutdown: unverifiedRequest({ method: "shutdown" }), textDocumentWillSaveWaitUntil: unverifiedRequest({ method: "textDocument/willSaveWaitUntil" }), textDocumentCompletion: unverifiedRequest({ method: "textDocument/completion" }), completionItemResolve: unverifiedRequest({ method: "completionItem/resolve" }), textDocumentHover: unverifiedRequest({ method: "textDocument/hover" }), textDocumentSignatureHelp: unverifiedRequest({ method: "textDocument/signatureHelp" }), textDocumentDefinition: unverifiedRequest({ method: "textDocument/definition" }), textDocumentReferences: unverifiedRequest({ method: "textDocument/references" }), textDocumentDocumentHighlight: unverifiedRequest({ method: "textDocument/documentHighlight" }), textDocumentDocumentSymbol: unverifiedRequest({ method: "textDocument/documentSymbol" }), textDocumentCodeAction: unverifiedRequest({ method: "textDocument/codeAction" }), codeActionResolve: unverifiedRequest({ method: "codeAction/resolve" }), workspaceSymbol: unverifiedRequest({ method: "workspace/symbol" }), workspaceSymbolResolve: unverifiedRequest({ method: "workspaceSymbol/resolve" }), textDocumentCodeLens: unverifiedRequest({ method: "textDocument/codeLens" }), codeLensResolve: unverifiedRequest({ method: "codeLens/resolve" }), textDocumentDocumentLink: unverifiedRequest({ method: "textDocument/documentLink" }), documentLinkResolve: unverifiedRequest({ method: "documentLink/resolve" }), textDocumentFormatting: unverifiedRequest({ method: "textDocument/formatting" }), textDocumentRangeFormatting: unverifiedRequest({ method: "textDocument/rangeFormatting" }), textDocumentRangesFormatting: unverifiedRequest({ method: "textDocument/rangesFormatting" }), textDocumentOnTypeFormatting: unverifiedRequest({ method: "textDocument/onTypeFormatting" }), textDocumentRename: unverifiedRequest({ method: "textDocument/rename" }), textDocumentPrepareRename: unverifiedRequest({ method: "textDocument/prepareRename" }), workspaceExecuteCommand: unverifiedRequest({ method: "workspace/executeCommand" }), workspaceDidChangeWorkspaceFolders: unverifiedNotification({ method: "workspace/didChangeWorkspaceFolders" }), windowWorkDoneProgressCancel: unverifiedNotification({ method: "window/workDoneProgress/cancel" }), workspaceDidCreateFiles: unverifiedNotification({ method: "workspace/didCreateFiles" }), workspaceDidRenameFiles: unverifiedNotification({ method: "workspace/didRenameFiles" }), workspaceDidDeleteFiles: unverifiedNotification({ method: "workspace/didDeleteFiles" }), notebookDocumentDidOpen: unverifiedNotification({ method: "notebookDocument/didOpen" }), notebookDocumentDidChange: unverifiedNotification({ method: "notebookDocument/didChange" }), notebookDocumentDidSave: unverifiedNotification({ method: "notebookDocument/didSave" }), notebookDocumentDidClose: unverifiedNotification({ method: "notebookDocument/didClose" }), initialized: unverifiedNotification({ method: "initialized" }), exit: unverifiedNotification({ method: "exit" }), workspaceDidChangeConfiguration: unverifiedNotification({ method: "workspace/didChangeConfiguration" }), textDocumentDidOpen: unverifiedNotification({ method: "textDocument/didOpen" }), textDocumentDidChange: unverifiedNotification({ method: "textDocument/didChange" }), textDocumentDidClose: unverifiedNotification({ method: "textDocument/didClose" }), textDocumentDidSave: unverifiedNotification({ method: "textDocument/didSave" }), textDocumentWillSave: unverifiedNotification({ method: "textDocument/willSave" }), workspaceDidChangeWatchedFiles: unverifiedNotification({ method: "workspace/didChangeWatchedFiles" }), setTrace: unverifiedN