sysml-v2-lsp 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ ${JSON.stringify(Object.fromEntries(headers))}`));return}let length=parseInt(con
4
4
  `,AbstractMessageBuffer=class{_encoding;_chunks;_totalLength;constructor(encoding="utf-8"){this._encoding=encoding,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(chunk){let toAppend=typeof chunk=="string"?this.fromString(chunk,this._encoding):chunk;this._chunks.push(toAppend),this._totalLength+=toAppend.byteLength}tryReadHeaders(lowerCaseKeys=!1){if(this._chunks.length===0)return;let state=0,chunkIndex=0,offset=0,chunkBytesRead=0;row:for(;chunkIndex<this._chunks.length;){let chunk=this._chunks[chunkIndex];for(offset=0;offset<chunk.length;){switch(chunk[offset]){case CR:switch(state){case 0:state=1;break;case 2:state=3;break;default:state=0}break;case LF:switch(state){case 1:state=2;break;case 3:state=4,offset++;break row;default:state=0}break;default:state=0}offset++}chunkBytesRead+=chunk.byteLength,chunkIndex++}if(state!==4)return;let buffer=this._read(chunkBytesRead+offset),result=new Map,headers=this.toString(buffer,"ascii").split(CRLF);if(headers.length<2)return result;for(let i=0;i<headers.length-2;i++){let header=headers[i],index2=header.indexOf(":");if(index2===-1)throw new Error(`Message header must separate key and value using ':'
5
5
  ${header}`);let key=header.substr(0,index2),value=header.substr(index2+1).trim();result.set(lowerCaseKeys?key.toLowerCase():key,value)}return result}tryReadBody(length){if(!(this._totalLength<length))return this._read(length)}get numberOfBytes(){return this._totalLength}_read(byteCount){if(byteCount===0)return this.emptyBuffer();if(byteCount>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===byteCount){let chunk=this._chunks[0];return this._chunks.shift(),this._totalLength-=byteCount,this.asNative(chunk)}if(this._chunks[0].byteLength>byteCount){let chunk=this._chunks[0],result2=this.asNative(chunk,byteCount);return this._chunks[0]=chunk.slice(byteCount),this._totalLength-=byteCount,result2}let result=this.allocNative(byteCount),resultOffset=0,chunkIndex=0;for(;byteCount>0;){let chunk=this._chunks[chunkIndex];if(chunk.byteLength>byteCount){let chunkPart=chunk.slice(0,byteCount);result.set(chunkPart,resultOffset),resultOffset+=byteCount,this._chunks[chunkIndex]=chunk.slice(byteCount),this._totalLength-=byteCount,byteCount-=byteCount}else result.set(chunk,resultOffset),resultOffset+=chunk.byteLength,this._chunks.shift(),this._totalLength-=chunk.byteLength,byteCount-=chunk.byteLength}return result}};exports.AbstractMessageBuffer=AbstractMessageBuffer}});var require_connection=__commonJS({"node_modules/vscode-jsonrpc/lib/common/connection.js"(exports){"use strict";var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m2,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m2,k);(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m2[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m2,k,k2){k2===void 0&&(k2=k),o[k2]=m2[k]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports&&exports.__importStar||(function(){var ownKeys=function(o){return ownKeys=Object.getOwnPropertyNames||function(o2){var ar=[];for(var k in o2)Object.prototype.hasOwnProperty.call(o2,k)&&(ar[ar.length]=k);return ar},ownKeys(o)};return function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k=ownKeys(mod),i=0;i<k.length;i++)k[i]!=="default"&&__createBinding(result,mod,k[i]);return __setModuleDefault(result,mod),result}})(),__importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.ConnectionOptions=exports.MessageStrategy=exports.CancellationStrategy=exports.CancellationSenderStrategy=exports.CancellationReceiverStrategy=exports.RequestCancellationReceiverStrategy=exports.IdCancellationReceiverStrategy=exports.ConnectionStrategy=exports.ConnectionError=exports.ConnectionErrors=exports.LogTraceNotification=exports.SetTraceNotification=exports.TraceFormat=exports.TraceValues=exports.TraceValue=exports.Trace=exports.NullLogger=exports.ProgressType=exports.ProgressToken=void 0;exports.createMessageConnection=createMessageConnection;var ral_1=__importDefault(require_ral()),Is3=__importStar(require_is()),messages_1=require_messages(),linkedMap_1=require_linkedMap(),events_1=require_events(),cancellation_1=require_cancellation(),CancelNotification;(function(CancelNotification2){CancelNotification2.type=new messages_1.NotificationType("$/cancelRequest")})(CancelNotification||(CancelNotification={}));var ProgressToken;(function(ProgressToken2){function is(value){return typeof value=="string"||typeof value=="number"}ProgressToken2.is=is})(ProgressToken||(exports.ProgressToken=ProgressToken={}));var ProgressNotification;(function(ProgressNotification2){ProgressNotification2.type=new messages_1.NotificationType("$/progress")})(ProgressNotification||(ProgressNotification={}));var ProgressType=class{__;_pr;constructor(){}};exports.ProgressType=ProgressType;var StarRequestHandler;(function(StarRequestHandler2){function is(value){return Is3.func(value)}StarRequestHandler2.is=is})(StarRequestHandler||(StarRequestHandler={}));exports.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var Trace;(function(Trace2){Trace2[Trace2.Off=0]="Off",Trace2[Trace2.Messages=1]="Messages",Trace2[Trace2.Compact=2]="Compact",Trace2[Trace2.Verbose=3]="Verbose"})(Trace||(exports.Trace=Trace={}));var TraceValue;(function(TraceValue2){TraceValue2.Off="off",TraceValue2.Messages="messages",TraceValue2.Compact="compact",TraceValue2.Verbose="verbose"})(TraceValue||(exports.TraceValue=TraceValue={}));exports.TraceValues=TraceValue;(function(Trace2){function fromString(value){if(!Is3.string(value))return Trace2.Off;switch(value=value.toLowerCase(),value){case"off":return Trace2.Off;case"messages":return Trace2.Messages;case"compact":return Trace2.Compact;case"verbose":return Trace2.Verbose;default:return Trace2.Off}}Trace2.fromString=fromString;function toString(value){switch(value){case Trace2.Off:return"off";case Trace2.Messages:return"messages";case Trace2.Compact:return"compact";case Trace2.Verbose:return"verbose";default:return"off"}}Trace2.toString=toString})(Trace||(exports.Trace=Trace={}));var TraceFormat;(function(TraceFormat2){TraceFormat2.Text="text",TraceFormat2.JSON="json"})(TraceFormat||(exports.TraceFormat=TraceFormat={}));(function(TraceFormat2){function fromString(value){return Is3.string(value)?(value=value.toLowerCase(),value==="json"?TraceFormat2.JSON:TraceFormat2.Text):TraceFormat2.Text}TraceFormat2.fromString=fromString})(TraceFormat||(exports.TraceFormat=TraceFormat={}));var SetTraceNotification;(function(SetTraceNotification2){SetTraceNotification2.type=new messages_1.NotificationType("$/setTrace")})(SetTraceNotification||(exports.SetTraceNotification=SetTraceNotification={}));var LogTraceNotification;(function(LogTraceNotification2){LogTraceNotification2.type=new messages_1.NotificationType("$/logTrace")})(LogTraceNotification||(exports.LogTraceNotification=LogTraceNotification={}));var ConnectionErrors;(function(ConnectionErrors2){ConnectionErrors2[ConnectionErrors2.Closed=1]="Closed",ConnectionErrors2[ConnectionErrors2.Disposed=2]="Disposed",ConnectionErrors2[ConnectionErrors2.AlreadyListening=3]="AlreadyListening"})(ConnectionErrors||(exports.ConnectionErrors=ConnectionErrors={}));var ConnectionError=class _ConnectionError extends Error{code;constructor(code,message){super(message),this.code=code,Object.setPrototypeOf(this,_ConnectionError.prototype)}};exports.ConnectionError=ConnectionError;var ConnectionStrategy;(function(ConnectionStrategy2){function is(value){let candidate=value;return candidate&&Is3.func(candidate.cancelUndispatched)}ConnectionStrategy2.is=is})(ConnectionStrategy||(exports.ConnectionStrategy=ConnectionStrategy={}));var IdCancellationReceiverStrategy;(function(IdCancellationReceiverStrategy2){function is(value){let candidate=value;return candidate&&(candidate.kind===void 0||candidate.kind==="id")&&Is3.func(candidate.createCancellationTokenSource)&&(candidate.dispose===void 0||Is3.func(candidate.dispose))}IdCancellationReceiverStrategy2.is=is})(IdCancellationReceiverStrategy||(exports.IdCancellationReceiverStrategy=IdCancellationReceiverStrategy={}));var RequestCancellationReceiverStrategy;(function(RequestCancellationReceiverStrategy2){function is(value){let candidate=value;return candidate&&candidate.kind==="request"&&Is3.func(candidate.createCancellationTokenSource)&&(candidate.dispose===void 0||Is3.func(candidate.dispose))}RequestCancellationReceiverStrategy2.is=is})(RequestCancellationReceiverStrategy||(exports.RequestCancellationReceiverStrategy=RequestCancellationReceiverStrategy={}));var CancellationReceiverStrategy;(function(CancellationReceiverStrategy2){CancellationReceiverStrategy2.Message=Object.freeze({createCancellationTokenSource(_){return new cancellation_1.CancellationTokenSource}});function is(value){return IdCancellationReceiverStrategy.is(value)||RequestCancellationReceiverStrategy.is(value)}CancellationReceiverStrategy2.is=is})(CancellationReceiverStrategy||(exports.CancellationReceiverStrategy=CancellationReceiverStrategy={}));var CancellationSenderStrategy;(function(CancellationSenderStrategy2){CancellationSenderStrategy2.Message=Object.freeze({sendCancellation(conn,id){return conn.sendNotification(CancelNotification.type,{id})},cleanup(_){}});function is(value){let candidate=value;return candidate&&Is3.func(candidate.sendCancellation)&&Is3.func(candidate.cleanup)}CancellationSenderStrategy2.is=is})(CancellationSenderStrategy||(exports.CancellationSenderStrategy=CancellationSenderStrategy={}));var CancellationStrategy;(function(CancellationStrategy2){CancellationStrategy2.Message=Object.freeze({receiver:CancellationReceiverStrategy.Message,sender:CancellationSenderStrategy.Message});function is(value){let candidate=value;return candidate&&CancellationReceiverStrategy.is(candidate.receiver)&&CancellationSenderStrategy.is(candidate.sender)}CancellationStrategy2.is=is})(CancellationStrategy||(exports.CancellationStrategy=CancellationStrategy={}));var MessageStrategy;(function(MessageStrategy2){function is(value){let candidate=value;return candidate&&Is3.func(candidate.handleMessage)}MessageStrategy2.is=is})(MessageStrategy||(exports.MessageStrategy=MessageStrategy={}));var ConnectionOptions;(function(ConnectionOptions2){function is(value){let candidate=value;return candidate&&(CancellationStrategy.is(candidate.cancellationStrategy)||ConnectionStrategy.is(candidate.connectionStrategy)||MessageStrategy.is(candidate.messageStrategy)||Is3.number(candidate.maxParallelism))}ConnectionOptions2.is=is})(ConnectionOptions||(exports.ConnectionOptions=ConnectionOptions={}));var ConnectionState;(function(ConnectionState2){ConnectionState2[ConnectionState2.New=1]="New",ConnectionState2[ConnectionState2.Listening=2]="Listening",ConnectionState2[ConnectionState2.Closed=3]="Closed",ConnectionState2[ConnectionState2.Disposed=4]="Disposed"})(ConnectionState||(ConnectionState={}));function createMessageConnection(messageReader,messageWriter,_logger,options){let logger=_logger!==void 0?_logger:exports.NullLogger,sequenceNumber=0,notificationSequenceNumber=0,unknownResponseSequenceNumber=0,version="2.0",maxParallelism=options?.maxParallelism??-1,inFlight=0,starRequestHandler,requestHandlers=new Map,starNotificationHandler,notificationHandlers=new Map,progressHandlers=new Map,timer,messageQueue=new linkedMap_1.LinkedMap,responsePromises=new Map,knownCanceledRequests=new Set,requestTokens=new Map,trace=Trace.Off,traceFormat=TraceFormat.Text,tracer,state=ConnectionState.New,errorEmitter=new events_1.Emitter,closeEmitter=new events_1.Emitter,unhandledNotificationEmitter=new events_1.Emitter,unhandledProgressEmitter=new events_1.Emitter,disposeEmitter=new events_1.Emitter,cancellationStrategy=options&&options.cancellationStrategy?options.cancellationStrategy:CancellationStrategy.Message;function cancelUndispatched(_message){}function isListening(){return state===ConnectionState.Listening}function isClosed(){return state===ConnectionState.Closed}function isDisposed(){return state===ConnectionState.Disposed}function closeHandler(){(state===ConnectionState.New||state===ConnectionState.Listening)&&(state=ConnectionState.Closed,closeEmitter.fire(void 0))}function readErrorHandler(error){errorEmitter.fire([error,void 0,void 0])}function writeErrorHandler(data){errorEmitter.fire(data)}messageReader.onClose(closeHandler),messageReader.onError(readErrorHandler),messageWriter.onClose(closeHandler),messageWriter.onError(writeErrorHandler);function createRequestQueueKey(id){if(id===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+id.toString()}function createResponseQueueKey(id){return id===null?"res-unknown-"+(++unknownResponseSequenceNumber).toString():"res-"+id.toString()}function createNotificationQueueKey(){return"not-"+(++notificationSequenceNumber).toString()}function addMessageToQueue(queue,message){messages_1.Message.isRequest(message)?queue.set(createRequestQueueKey(message.id),message):messages_1.Message.isResponse(message)?maxParallelism===-1?queue.set(createResponseQueueKey(message.id),message):handleResponse(message):queue.set(createNotificationQueueKey(),message)}function triggerMessageQueue(){timer||messageQueue.size===0||maxParallelism!==-1&&inFlight>=maxParallelism||(timer=(0,ral_1.default)().timer.setImmediate(async()=>{if(timer=void 0,messageQueue.size===0||maxParallelism!==-1&&inFlight>=maxParallelism)return;let message=messageQueue.shift(),result;try{inFlight++;let messageStrategy=options?.messageStrategy;MessageStrategy.is(messageStrategy)?result=messageStrategy.handleMessage(message,handleMessage):result=handleMessage(message)}catch(error){logger.error(`Processing message queue failed: ${error.toString()}`)}finally{result instanceof Promise?result.then(()=>{inFlight--,triggerMessageQueue()}).catch(error=>{logger.error(`Processing message queue failed: ${error.toString()}`)}):inFlight--,triggerMessageQueue()}}))}async function handleMessage(message){return messages_1.Message.isRequest(message)?handleRequest(message):messages_1.Message.isNotification(message)?handleNotification(message):messages_1.Message.isResponse(message)?handleResponse(message):handleInvalidMessage(message)}let callback=message=>{try{if(messages_1.Message.isNotification(message)&&message.method===CancelNotification.type.method){let cancelId=message.params.id,key=createRequestQueueKey(cancelId),toCancel=messageQueue.get(key);if(messages_1.Message.isRequest(toCancel)){let strategy=options?.connectionStrategy,response=strategy&&strategy.cancelUndispatched?strategy.cancelUndispatched(toCancel,cancelUndispatched):void 0;if(response&&(response.error!==void 0||response.result!==void 0)){messageQueue.delete(key),requestTokens.delete(cancelId),response.id=toCancel.id,traceSendingResponse(response,message.method,Date.now()),messageWriter.write(response).catch(()=>logger.error("Sending response for canceled message failed."));return}}let cancellationToken=requestTokens.get(cancelId);if(cancellationToken!==void 0){cancellationToken.cancel(),traceReceivedNotification(message);return}else knownCanceledRequests.add(cancelId)}addMessageToQueue(messageQueue,message)}finally{triggerMessageQueue()}};async function handleRequest(requestMessage){if(isDisposed())return Promise.resolve();function reply(resultOrError,method,startTime2){let message={jsonrpc:version,id:requestMessage.id};return resultOrError instanceof messages_1.ResponseError?message.error=resultOrError.toJson():message.result=resultOrError===void 0?null:resultOrError,traceSendingResponse(message,method,startTime2),messageWriter.write(message)}function replyError(error,method,startTime2){let message={jsonrpc:version,id:requestMessage.id,error:error.toJson()};return traceSendingResponse(message,method,startTime2),messageWriter.write(message)}traceReceivedRequest(requestMessage);let element=requestHandlers.get(requestMessage.method),type,requestHandler;element&&(type=element.type,requestHandler=element.handler);let startTime=Date.now();if(requestHandler||starRequestHandler){let tokenKey=requestMessage.id??String(Date.now()),cancellationSource=IdCancellationReceiverStrategy.is(cancellationStrategy.receiver)?cancellationStrategy.receiver.createCancellationTokenSource(tokenKey):cancellationStrategy.receiver.createCancellationTokenSource(requestMessage);requestMessage.id!==null&&knownCanceledRequests.has(requestMessage.id)&&cancellationSource.cancel(),requestMessage.id!==null&&requestTokens.set(tokenKey,cancellationSource);try{let handlerResult;if(requestHandler)if(requestMessage.params===void 0){if(type!==void 0&&type.numberOfParams!==0)return replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams,`Request ${requestMessage.method} defines ${type.numberOfParams} params but received none.`),requestMessage.method,startTime);handlerResult=requestHandler(cancellationSource.token)}else if(Array.isArray(requestMessage.params)){if(type!==void 0&&type.parameterStructures===messages_1.ParameterStructures.byName)return replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams,`Request ${requestMessage.method} defines parameters by name but received parameters by position`),requestMessage.method,startTime);handlerResult=requestHandler(...requestMessage.params,cancellationSource.token)}else{if(type!==void 0&&type.parameterStructures===messages_1.ParameterStructures.byPosition)return replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams,`Request ${requestMessage.method} defines parameters by position but received parameters by name`),requestMessage.method,startTime);handlerResult=requestHandler(requestMessage.params,cancellationSource.token)}else starRequestHandler&&(handlerResult=starRequestHandler(requestMessage.method,requestMessage.params,cancellationSource.token));let resultOrError=await handlerResult;await reply(resultOrError,requestMessage.method,startTime)}catch(error){error instanceof messages_1.ResponseError?await reply(error,requestMessage.method,startTime):error&&Is3.string(error.message)?await replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError,`Request ${requestMessage.method} failed with message: ${error.message}`),requestMessage.method,startTime):await replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError,`Request ${requestMessage.method} failed unexpectedly without providing any details.`),requestMessage.method,startTime)}finally{requestTokens.delete(tokenKey)}}else await replyError(new messages_1.ResponseError(messages_1.ErrorCodes.MethodNotFound,`Unhandled method ${requestMessage.method}`),requestMessage.method,startTime)}function handleResponse(responseMessage){if(!isDisposed())if(responseMessage.id===null)responseMessage.error?logger.error(`Received response message without id: Error is:
6
6
  ${JSON.stringify(responseMessage.error,void 0,4)}`):logger.error("Received response message without id. No further error information provided.");else{let key=responseMessage.id,responsePromise=responsePromises.get(key);if(traceReceivedResponse(responseMessage,responsePromise),responsePromise!==void 0){responsePromises.delete(key);try{if(responseMessage.error){let error=responseMessage.error;responsePromise.reject(new messages_1.ResponseError(error.code,error.message,error.data))}else if(responseMessage.result!==void 0)responsePromise.resolve(responseMessage.result);else throw new Error("Should never happen.")}catch(error){error.message?logger.error(`Response handler '${responsePromise.method}' failed with message: ${error.message}`):logger.error(`Response handler '${responsePromise.method}' failed unexpectedly.`)}}}}async function handleNotification(message){if(isDisposed())return;let type,notificationHandler;if(message.method===CancelNotification.type.method){let cancelId=message.params.id;knownCanceledRequests.delete(cancelId),traceReceivedNotification(message);return}else{let element=notificationHandlers.get(message.method);element&&(notificationHandler=element.handler,type=element.type)}if(notificationHandler||starNotificationHandler)try{if(traceReceivedNotification(message),notificationHandler)if(message.params===void 0)type!==void 0&&type.numberOfParams!==0&&type.parameterStructures!==messages_1.ParameterStructures.byName&&logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but received none.`),await notificationHandler();else if(Array.isArray(message.params)){let params=message.params;message.method===ProgressNotification.type.method&&params.length===2&&ProgressToken.is(params[0])?await notificationHandler({token:params[0],value:params[1]}):(type!==void 0&&(type.parameterStructures===messages_1.ParameterStructures.byName&&logger.error(`Notification ${message.method} defines parameters by name but received parameters by position`),type.numberOfParams!==message.params.length&&logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but received ${params.length} arguments`)),await notificationHandler(...params))}else type!==void 0&&type.parameterStructures===messages_1.ParameterStructures.byPosition&&logger.error(`Notification ${message.method} defines parameters by position but received parameters by name`),await notificationHandler(message.params);else starNotificationHandler&&await starNotificationHandler(message.method,message.params)}catch(error){error.message?logger.error(`Notification handler '${message.method}' failed with message: ${error.message}`):logger.error(`Notification handler '${message.method}' failed unexpectedly.`)}else unhandledNotificationEmitter.fire(message)}function handleInvalidMessage(message){if(!message){logger.error("Received empty message.");return}logger.error(`Received message which is neither a response nor a notification message:
7
- ${JSON.stringify(message,null,4)}`);let responseMessage=message;if(Is3.string(responseMessage.id)||Is3.number(responseMessage.id)){let key=responseMessage.id,responseHandler=responsePromises.get(key);responseHandler&&responseHandler.reject(new Error("The received response has neither a result nor an error property."))}}function stringifyTrace(params){if(params!=null)switch(trace){case Trace.Verbose:return JSON.stringify(params,null,4);case Trace.Compact:return JSON.stringify(params);default:return}}function traceSendingRequest(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&message.params&&(data=`Params: ${stringifyTrace(message.params)}`),tracer.log(`Sending request '${message.method} - (${message.id})'.`,data)}else logLSPMessage("send-request",message)}function traceSendingNotification(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.params?data=`Params: ${stringifyTrace(message.params)}`:data="No parameters provided."),tracer.log(`Sending notification '${message.method}'.`,data)}else logLSPMessage("send-notification",message)}function traceSendingResponse(message,method,startTime){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.error&&message.error.data?data=`Error data: ${stringifyTrace(message.error.data)}`:message.result?data=`Result: ${stringifyTrace(message.result)}`:message.error===void 0&&(data="No result returned.")),tracer.log(`Sending response '${method} - (${message.id})'. Processing request took ${Date.now()-startTime}ms`,data)}else logLSPMessage("send-response",message)}function traceReceivedRequest(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&message.params&&(data=`Params: ${stringifyTrace(message.params)}`),tracer.log(`Received request '${message.method} - (${message.id})'.`,data)}else logLSPMessage("receive-request",message)}function traceReceivedNotification(message){if(!(trace===Trace.Off||!tracer||message.method===LogTraceNotification.type.method))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.params?data=`Params: ${stringifyTrace(message.params)}`:data="No parameters provided."),tracer.log(`Received notification '${message.method}'.`,data)}else logLSPMessage("receive-notification",message)}function traceReceivedResponse(message,responsePromise){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;if((trace===Trace.Verbose||trace===Trace.Compact)&&(message.error&&message.error.data?data=`Error data: ${stringifyTrace(message.error.data)}`:message.result?data=`Result: ${stringifyTrace(message.result)}`:message.error===void 0&&(data="No result returned.")),responsePromise){let error=message.error?` Request failed: ${message.error.message} (${message.error.code}).`:"";tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now()-responsePromise.timerStart}ms.${error}`,data)}else tracer.log(`Received response ${message.id} without active response promise.`,data)}else logLSPMessage("receive-response",message)}function logLSPMessage(type,message){if(!tracer||trace===Trace.Off)return;let lspMessage={isLSPMessage:!0,type,message,timestamp:Date.now()};tracer.log(lspMessage)}function throwIfClosedOrDisposed(){if(isClosed())throw new ConnectionError(ConnectionErrors.Closed,"Connection is closed.");if(isDisposed())throw new ConnectionError(ConnectionErrors.Disposed,"Connection is disposed.")}function throwIfListening(){if(isListening())throw new ConnectionError(ConnectionErrors.AlreadyListening,"Connection is already listening")}function throwIfNotListening(){if(!isListening())throw new Error("Call listen() first.")}function undefinedToNull(param){return param===void 0?null:param}function nullToUndefined(param){if(param!==null)return param}function isNamedParam(param){return param!=null&&!Array.isArray(param)&&typeof param=="object"}function computeSingleParam(parameterStructures,param){switch(parameterStructures){case messages_1.ParameterStructures.auto:return isNamedParam(param)?nullToUndefined(param):[undefinedToNull(param)];case messages_1.ParameterStructures.byName:if(!isNamedParam(param))throw new Error("Received parameters by name but param is not an object literal.");return nullToUndefined(param);case messages_1.ParameterStructures.byPosition:return[undefinedToNull(param)];default:throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`)}}function computeMessageParams(type,params){let result,numberOfParams=type.numberOfParams;switch(numberOfParams){case 0:result=void 0;break;case 1:result=computeSingleParam(type.parameterStructures,params[0]);break;default:result=[];for(let i=0;i<params.length&&i<numberOfParams;i++)result.push(undefinedToNull(params[i]));if(params.length<numberOfParams)for(let i=params.length;i<numberOfParams;i++)result.push(null);break}return result}let connection2={sendNotification:(type,...args)=>{throwIfClosedOrDisposed();let method,messageParams;if(Is3.string(type)){method=type;let first=args[0],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length,numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' notification parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params)}let notificationMessage={jsonrpc:version,method,params:messageParams};return traceSendingNotification(notificationMessage),messageWriter.write(notificationMessage).catch(error=>{throw logger.error("Sending notification failed."),error})},onNotification:(type,handler)=>{throwIfClosedOrDisposed();let method;return Is3.func(type)?starNotificationHandler=type:handler&&(Is3.string(type)?(method=type,notificationHandlers.set(type,{type:void 0,handler})):(method=type.method,notificationHandlers.set(type.method,{type,handler}))),{dispose:()=>{method!==void 0?notificationHandlers.get(method)?.handler===handler&&notificationHandlers.delete(method):starNotificationHandler===type&&(starNotificationHandler=void 0)}}},onProgress:(_type,token,handler)=>{if(progressHandlers.has(token))throw new Error(`Progress handler for token ${token} already registered`);return progressHandlers.set(token,handler),{dispose:()=>{progressHandlers.get(token)===handler&&progressHandlers.delete(token)}}},sendProgress:(_type,token,value)=>connection2.sendNotification(ProgressNotification.type,{token,value}),onUnhandledProgress:unhandledProgressEmitter.event,sendRequest:(type,...args)=>{throwIfClosedOrDisposed(),throwIfNotListening();function sendCancellation(connection3,id2){let p=cancellationStrategy.sender.sendCancellation(connection3,id2);p===void 0?logger.log(`Received no promise from cancellation strategy when cancelling id ${id2}`):p.catch(()=>{logger.log(`Sending cancellation messages for id ${id2} failed.`)})}let method,messageParams,token;if(Is3.string(type)){method=type;let first=args[0],last=args[args.length-1],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length;cancellation_1.CancellationToken.is(last)&&(paramEnd=paramEnd-1,token=last);let numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' request parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params);let numberOfParams=type.numberOfParams;token=cancellation_1.CancellationToken.is(params[numberOfParams])?params[numberOfParams]:void 0}let id=sequenceNumber++,disposable,tokenWasCancelled=!1;token!==void 0&&(token.isCancellationRequested?tokenWasCancelled=!0:disposable=token.onCancellationRequested(()=>{sendCancellation(connection2,id)}));let requestMessage={jsonrpc:version,id,method,params:messageParams};return traceSendingRequest(requestMessage),typeof cancellationStrategy.sender.enableCancellation=="function"&&cancellationStrategy.sender.enableCancellation(requestMessage),new Promise(async(resolve,reject)=>{let resolveWithCleanup=r=>{resolve(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},rejectWithCleanup=r=>{reject(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},responsePromise={method,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{responsePromises.set(id,responsePromise),await messageWriter.write(requestMessage),tokenWasCancelled&&sendCancellation(connection2,id)}catch(error){throw responsePromises.delete(id),responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError,error.message?error.message:"Unknown reason")),logger.error("Sending request failed."),error}})},onRequest:(type,handler)=>{throwIfClosedOrDisposed();let method=null;return StarRequestHandler.is(type)?(method=void 0,starRequestHandler=type):Is3.string(type)?(method=null,handler!==void 0&&(method=type,requestHandlers.set(type,{handler,type:void 0}))):handler!==void 0&&(method=type.method,requestHandlers.set(type.method,{type,handler})),{dispose:()=>{method!==null&&(method!==void 0?requestHandlers.get(method)?.handler===handler&&requestHandlers.delete(method):starRequestHandler===type&&(starRequestHandler=void 0))}}},hasPendingResponse:()=>responsePromises.size>0,trace:async(_value,_tracer,sendNotificationOrTraceOptions)=>{let _sendNotification=!1,_traceFormat=TraceFormat.Text;sendNotificationOrTraceOptions!==void 0&&(Is3.boolean(sendNotificationOrTraceOptions)?_sendNotification=sendNotificationOrTraceOptions:(_sendNotification=sendNotificationOrTraceOptions.sendNotification||!1,_traceFormat=sendNotificationOrTraceOptions.traceFormat||TraceFormat.Text)),trace=_value,traceFormat=_traceFormat,trace===Trace.Off?tracer=void 0:tracer=_tracer,_sendNotification&&!isClosed()&&!isDisposed()&&await connection2.sendNotification(SetTraceNotification.type,{value:Trace.toString(_value)})},onError:errorEmitter.event,onClose:closeEmitter.event,onUnhandledNotification:unhandledNotificationEmitter.event,onDispose:disposeEmitter.event,end:()=>{messageWriter.end()},dispose:()=>{if(isDisposed())return;state=ConnectionState.Disposed,disposeEmitter.fire(void 0);let error=new messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let promise of responsePromises.values())promise.reject(error);responsePromises=new Map,requestTokens=new Map,knownCanceledRequests=new Set,messageQueue=new linkedMap_1.LinkedMap,Is3.func(messageWriter.dispose)&&messageWriter.dispose(),Is3.func(messageReader.dispose)&&messageReader.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),state=ConnectionState.Listening,messageReader.listen(callback)},inspect:()=>{(0,ral_1.default)().console.log("inspect")}};return connection2.onNotification(LogTraceNotification.type,params=>{if(trace===Trace.Off||!tracer)return;let verbose=trace===Trace.Verbose||trace===Trace.Compact;tracer.log(params.message,verbose?params.verbose:void 0)}),connection2.onNotification(ProgressNotification.type,async params=>{let handler=progressHandlers.get(params.token);handler?await handler(params.value):unhandledProgressEmitter.fire(params)}),connection2}}});var require_api=__commonJS({"node_modules/vscode-jsonrpc/lib/common/api.js"(exports){"use strict";var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.ProgressType=exports.ProgressToken=exports.createMessageConnection=exports.NullLogger=exports.ConnectionOptions=exports.ConnectionStrategy=exports.AbstractMessageBuffer=exports.WriteableStreamMessageWriter=exports.AbstractMessageWriter=exports.MessageWriter=exports.ReadableStreamMessageReader=exports.AbstractMessageReader=exports.MessageReader=exports.SharedArrayReceiverStrategy=exports.SharedArraySenderStrategy=exports.CancellationToken=exports.CancellationTokenSource=exports.Emitter=exports.Event=exports.Disposable=exports.LRUCache=exports.Touch=exports.LinkedMap=exports.ParameterStructures=exports.NotificationType9=exports.NotificationType8=exports.NotificationType7=exports.NotificationType6=exports.NotificationType5=exports.NotificationType4=exports.NotificationType3=exports.NotificationType2=exports.NotificationType1=exports.NotificationType0=exports.NotificationType=exports.ErrorCodes=exports.ResponseError=exports.RequestType9=exports.RequestType8=exports.RequestType7=exports.RequestType6=exports.RequestType5=exports.RequestType4=exports.RequestType3=exports.RequestType2=exports.RequestType1=exports.RequestType0=exports.RequestType=exports.Message=exports.RAL=void 0;exports.MessageStrategy=exports.CancellationStrategy=exports.CancellationSenderStrategy=exports.RequestCancellationReceiverStrategy=exports.IdCancellationReceiverStrategy=exports.CancellationReceiverStrategy=exports.ConnectionError=exports.ConnectionErrors=exports.LogTraceNotification=exports.SetTraceNotification=exports.TraceFormat=exports.TraceValues=exports.TraceValue=exports.Trace=void 0;var messages_1=require_messages();Object.defineProperty(exports,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap();Object.defineProperty(exports,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable();Object.defineProperty(exports,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events();Object.defineProperty(exports,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation();Object.defineProperty(exports,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation();Object.defineProperty(exports,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader();Object.defineProperty(exports,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter();Object.defineProperty(exports,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer();Object.defineProperty(exports,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection();Object.defineProperty(exports,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports,"TraceValue",{enumerable:!0,get:function(){return connection_1.TraceValue}});Object.defineProperty(exports,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports,"IdCancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.IdCancellationReceiverStrategy}});Object.defineProperty(exports,"RequestCancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.RequestCancellationReceiverStrategy}});Object.defineProperty(exports,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});Object.defineProperty(exports,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});var ral_1=__importDefault(require_ral());exports.RAL=ral_1.default}});var main_exports={};__export(main_exports,{AnnotatedTextEdit:()=>AnnotatedTextEdit,ApplyKind:()=>ApplyKind,ChangeAnnotation:()=>ChangeAnnotation,ChangeAnnotationIdentifier:()=>ChangeAnnotationIdentifier,CodeAction:()=>CodeAction,CodeActionContext:()=>CodeActionContext,CodeActionKind:()=>CodeActionKind,CodeActionTag:()=>CodeActionTag,CodeActionTriggerKind:()=>CodeActionTriggerKind,CodeDescription:()=>CodeDescription,CodeLens:()=>CodeLens,Color:()=>Color,ColorInformation:()=>ColorInformation,ColorPresentation:()=>ColorPresentation,Command:()=>Command,CompletionItem:()=>CompletionItem,CompletionItemKind:()=>CompletionItemKind,CompletionItemLabelDetails:()=>CompletionItemLabelDetails,CompletionItemTag:()=>CompletionItemTag,CompletionList:()=>CompletionList,CreateFile:()=>CreateFile,DeleteFile:()=>DeleteFile,Diagnostic:()=>Diagnostic,DiagnosticRelatedInformation:()=>DiagnosticRelatedInformation,DiagnosticSeverity:()=>DiagnosticSeverity,DiagnosticTag:()=>DiagnosticTag,DocumentHighlight:()=>DocumentHighlight,DocumentHighlightKind:()=>DocumentHighlightKind,DocumentLink:()=>DocumentLink,DocumentSymbol:()=>DocumentSymbol,DocumentUri:()=>DocumentUri,EOL:()=>EOL,FoldingRange:()=>FoldingRange,FoldingRangeKind:()=>FoldingRangeKind,FormattingOptions:()=>FormattingOptions,Hover:()=>Hover,InlayHint:()=>InlayHint,InlayHintKind:()=>InlayHintKind,InlayHintLabelPart:()=>InlayHintLabelPart,InlineCompletionContext:()=>InlineCompletionContext,InlineCompletionItem:()=>InlineCompletionItem,InlineCompletionList:()=>InlineCompletionList,InlineCompletionTriggerKind:()=>InlineCompletionTriggerKind,InlineValueContext:()=>InlineValueContext,InlineValueEvaluatableExpression:()=>InlineValueEvaluatableExpression,InlineValueText:()=>InlineValueText,InlineValueVariableLookup:()=>InlineValueVariableLookup,InsertReplaceEdit:()=>InsertReplaceEdit,InsertTextFormat:()=>InsertTextFormat,InsertTextMode:()=>InsertTextMode,LanguageKind:()=>LanguageKind,Location:()=>Location,LocationLink:()=>LocationLink,MarkedString:()=>MarkedString,MarkupContent:()=>MarkupContent,MarkupKind:()=>MarkupKind,OptionalVersionedTextDocumentIdentifier:()=>OptionalVersionedTextDocumentIdentifier,ParameterInformation:()=>ParameterInformation,Position:()=>Position,Range:()=>Range,RenameFile:()=>RenameFile,SelectedCompletionInfo:()=>SelectedCompletionInfo,SelectionRange:()=>SelectionRange,SemanticTokenModifiers:()=>SemanticTokenModifiers,SemanticTokenTypes:()=>SemanticTokenTypes,SemanticTokens:()=>SemanticTokens,SignatureInformation:()=>SignatureInformation,SnippetTextEdit:()=>SnippetTextEdit,StringValue:()=>StringValue,SymbolInformation:()=>SymbolInformation,SymbolKind:()=>SymbolKind,SymbolTag:()=>SymbolTag,TextDocument:()=>TextDocument,TextDocumentEdit:()=>TextDocumentEdit,TextDocumentIdentifier:()=>TextDocumentIdentifier,TextDocumentItem:()=>TextDocumentItem,TextEdit:()=>TextEdit,URI:()=>URI,VersionedTextDocumentIdentifier:()=>VersionedTextDocumentIdentifier,WorkspaceChange:()=>WorkspaceChange,WorkspaceEdit:()=>WorkspaceEdit,WorkspaceFolder:()=>WorkspaceFolder,WorkspaceSymbol:()=>WorkspaceSymbol,integer:()=>integer,uinteger:()=>uinteger});var DocumentUri,URI,integer,uinteger,Position,Range,Location,LocationLink,Color,ColorInformation,ColorPresentation,FoldingRangeKind,FoldingRange,DiagnosticRelatedInformation,DiagnosticSeverity,DiagnosticTag,CodeDescription,Diagnostic,Command,TextEdit,ChangeAnnotation,ChangeAnnotationIdentifier,AnnotatedTextEdit,TextDocumentEdit,CreateFile,RenameFile,DeleteFile,WorkspaceEdit,TextEditChangeImpl,SnippetTextEdit,ChangeAnnotations,WorkspaceChange,TextDocumentIdentifier,VersionedTextDocumentIdentifier,OptionalVersionedTextDocumentIdentifier,LanguageKind,TextDocumentItem,MarkupKind,MarkupContent,CompletionItemKind,InsertTextFormat,CompletionItemTag,InsertReplaceEdit,InsertTextMode,ApplyKind,CompletionItemLabelDetails,CompletionItem,CompletionList,MarkedString,Hover,ParameterInformation,SignatureInformation,DocumentHighlightKind,DocumentHighlight,SymbolKind,SymbolTag,SymbolInformation,WorkspaceSymbol,DocumentSymbol,CodeActionKind,CodeActionTriggerKind,CodeActionContext,CodeActionTag,CodeAction,CodeLens,FormattingOptions,DocumentLink,SelectionRange,SemanticTokenTypes,SemanticTokenModifiers,SemanticTokens,InlineValueText,InlineValueVariableLookup,InlineValueEvaluatableExpression,InlineValueContext,InlayHintKind,InlayHintLabelPart,InlayHint,StringValue,InlineCompletionItem,InlineCompletionList,InlineCompletionTriggerKind,SelectedCompletionInfo,InlineCompletionContext,WorkspaceFolder,EOL,TextDocument,FullTextDocument,Is,init_main=__esm({"node_modules/vscode-languageserver-types/lib/esm/main.js"(){"use strict";(function(DocumentUri3){function is(value){return typeof value=="string"}DocumentUri3.is=is})(DocumentUri||(DocumentUri={}));(function(URI3){function is(value){return typeof value=="string"}URI3.is=is})(URI||(URI={}));(function(integer3){integer3.MIN_VALUE=-2147483648,integer3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer3.MIN_VALUE<=value&&value<=integer3.MAX_VALUE}integer3.is=is})(integer||(integer={}));(function(uinteger3){uinteger3.MIN_VALUE=0,uinteger3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger3.MIN_VALUE<=value&&value<=uinteger3.MAX_VALUE}uinteger3.is=is})(uinteger||(uinteger={}));(function(Position4){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger.MAX_VALUE),{line,character}}Position4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.line)&&Is.uinteger(candidate.character)}Position4.is=is})(Position||(Position={}));(function(Range4){function create(one,two,three,four){if(Is.uinteger(one)&&Is.uinteger(two)&&Is.uinteger(three)&&Is.uinteger(four))return{start:Position.create(one,two),end:Position.create(three,four)};if(Position.is(one)&&Position.is(two))return{start:one,end:two};throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`)}Range4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Position.is(candidate.start)&&Position.is(candidate.end)}Range4.is=is})(Range||(Range={}));(function(Location4){function create(uri,range){return{uri,range}}Location4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&(Is.string(candidate.uri)||Is.undefined(candidate.uri))}Location4.is=is})(Location||(Location={}));(function(LocationLink3){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.targetRange)&&Is.string(candidate.targetUri)&&Range.is(candidate.targetSelectionRange)&&(Range.is(candidate.originSelectionRange)||Is.undefined(candidate.originSelectionRange))}LocationLink3.is=is})(LocationLink||(LocationLink={}));(function(Color3){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.numberRange(candidate.red,0,1)&&Is.numberRange(candidate.green,0,1)&&Is.numberRange(candidate.blue,0,1)&&Is.numberRange(candidate.alpha,0,1)}Color3.is=is})(Color||(Color={}));(function(ColorInformation3){function create(range,color){return{range,color}}ColorInformation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&Color.is(candidate.color)}ColorInformation3.is=is})(ColorInformation||(ColorInformation={}));(function(ColorPresentation3){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.undefined(candidate.textEdit)||TextEdit.is(candidate))&&(Is.undefined(candidate.additionalTextEdits)||Is.typedArray(candidate.additionalTextEdits,TextEdit.is))}ColorPresentation3.is=is})(ColorPresentation||(ColorPresentation={}));(function(FoldingRangeKind4){FoldingRangeKind4.Comment="comment",FoldingRangeKind4.Imports="imports",FoldingRangeKind4.Region="region"})(FoldingRangeKind||(FoldingRangeKind={}));(function(FoldingRange5){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){let result={startLine,endLine};return Is.defined(startCharacter)&&(result.startCharacter=startCharacter),Is.defined(endCharacter)&&(result.endCharacter=endCharacter),Is.defined(kind)&&(result.kind=kind),Is.defined(collapsedText)&&(result.collapsedText=collapsedText),result}FoldingRange5.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.startLine)&&Is.uinteger(candidate.startLine)&&(Is.undefined(candidate.startCharacter)||Is.uinteger(candidate.startCharacter))&&(Is.undefined(candidate.endCharacter)||Is.uinteger(candidate.endCharacter))&&(Is.undefined(candidate.kind)||Is.string(candidate.kind))}FoldingRange5.is=is})(FoldingRange||(FoldingRange={}));(function(DiagnosticRelatedInformation3){function create(location,message){return{location,message}}DiagnosticRelatedInformation3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Location.is(candidate.location)&&Is.string(candidate.message)}DiagnosticRelatedInformation3.is=is})(DiagnosticRelatedInformation||(DiagnosticRelatedInformation={}));(function(DiagnosticSeverity7){DiagnosticSeverity7.Error=1,DiagnosticSeverity7.Warning=2,DiagnosticSeverity7.Information=3,DiagnosticSeverity7.Hint=4})(DiagnosticSeverity||(DiagnosticSeverity={}));(function(DiagnosticTag3){DiagnosticTag3.Unnecessary=1,DiagnosticTag3.Deprecated=2})(DiagnosticTag||(DiagnosticTag={}));(function(CodeDescription3){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.href)}CodeDescription3.is=is})(CodeDescription||(CodeDescription={}));(function(Diagnostic7){function create(range,message,severity,code,source,relatedInformation){let result={range,message};return Is.defined(severity)&&(result.severity=severity),Is.defined(code)&&(result.code=code),Is.defined(source)&&(result.source=source),Is.defined(relatedInformation)&&(result.relatedInformation=relatedInformation),result}Diagnostic7.create=create;function is(value){var _a;let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.string(candidate.message)||MarkupContent.is(candidate.message))&&(Is.number(candidate.severity)||Is.undefined(candidate.severity))&&(Is.integer(candidate.code)||Is.string(candidate.code)||Is.undefined(candidate.code))&&(Is.undefined(candidate.codeDescription)||Is.string((_a=candidate.codeDescription)===null||_a===void 0?void 0:_a.href))&&(Is.string(candidate.source)||Is.undefined(candidate.source))&&(Is.undefined(candidate.relatedInformation)||Is.typedArray(candidate.relatedInformation,DiagnosticRelatedInformation.is))}Diagnostic7.is=is;function is3_17(value){return Is.string(value.message)}Diagnostic7.is3_17=is3_17;function getMessageString(diagnostic){if(Is.string(diagnostic.message))return diagnostic.message;if(MarkupContent.is(diagnostic.message))return diagnostic.message.value;throw new Error(`Unknown message type ${typeof diagnostic.message}`)}Diagnostic7.getMessageString=getMessageString})(Diagnostic||(Diagnostic={}));(function(Command3){function create(title,command,...args){let result={title,command};return Is.defined(args)&&args.length>0&&(result.arguments=args),result}Command3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.title)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip))&&Is.string(candidate.command)}Command3.is=is})(Command||(Command={}));(function(TextEdit6){function replace(range,newText){return{range,newText}}TextEdit6.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit6.insert=insert;function del(range){return{range,newText:""}}TextEdit6.del=del;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.newText)&&Range.is(candidate.range)}TextEdit6.is=is})(TextEdit||(TextEdit={}));(function(ChangeAnnotation3){function create(label,needsConfirmation,description){let result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.boolean(candidate.needsConfirmation)||candidate.needsConfirmation===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}ChangeAnnotation3.is=is})(ChangeAnnotation||(ChangeAnnotation={}));(function(ChangeAnnotationIdentifier3){function is(value){let candidate=value;return Is.string(candidate)}ChangeAnnotationIdentifier3.is=is})(ChangeAnnotationIdentifier||(ChangeAnnotationIdentifier={}));(function(AnnotatedTextEdit3){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit3.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit3.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit3.del=del;function is(value){let candidate=value;return TextEdit.is(candidate)&&(ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}AnnotatedTextEdit3.is=is})(AnnotatedTextEdit||(AnnotatedTextEdit={}));(function(TextDocumentEdit3){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit3.is=is})(TextDocumentEdit||(TextDocumentEdit={}));(function(CreateFile3){function create(uri,options,annotation){let result={kind:"create",uri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}CreateFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="create"&&Is.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}CreateFile3.is=is})(CreateFile||(CreateFile={}));(function(RenameFile3){function create(oldUri,newUri,options,annotation){let result={kind:"rename",oldUri,newUri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}RenameFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="rename"&&Is.string(candidate.oldUri)&&Is.string(candidate.newUri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}RenameFile3.is=is})(RenameFile||(RenameFile={}));(function(DeleteFile3){function create(uri,options,annotation){let result={kind:"delete",uri};return options!==void 0&&(options.recursive!==void 0||options.ignoreIfNotExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}DeleteFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="delete"&&Is.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.recursive===void 0||Is.boolean(candidate.options.recursive))&&(candidate.options.ignoreIfNotExists===void 0||Is.boolean(candidate.options.ignoreIfNotExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}DeleteFile3.is=is})(DeleteFile||(DeleteFile={}));(function(WorkspaceEdit5){function is(value){let candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(change=>Is.string(change.kind)?CreateFile.is(change)||RenameFile.is(change)||DeleteFile.is(change):TextDocumentEdit.is(change)))}WorkspaceEdit5.is=is})(WorkspaceEdit||(WorkspaceEdit={}));TextEditChangeImpl=class{constructor(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}insert(position,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.insert(position,newText):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.insert(position,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.insert(position,newText,id)),this.edits.push(edit),id!==void 0)return id}replace(range,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.replace(range,newText):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.replace(range,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.replace(range,newText,id)),this.edits.push(edit),id!==void 0)return id}delete(range,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.del(range):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.del(range,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.del(range,id)),this.edits.push(edit),id!==void 0)return id}add(edit){this.edits.push(edit)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}};(function(SnippetTextEdit2){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&StringValue.isSnippet(candidate.snippet)&&(candidate.annotationId===void 0||ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}SnippetTextEdit2.is=is})(SnippetTextEdit||(SnippetTextEdit={}));ChangeAnnotations=class{constructor(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(idOrAnnotation,annotation){let id;if(ChangeAnnotationIdentifier.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error(`Id ${id} is already in use.`);if(annotation===void 0)throw new Error(`No annotation provided for id ${id}`);return this._annotations[id]=annotation,this._size++,id}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange=class{constructor(workspaceEdit){this._textEditChanges=Object.create(null),workspaceEdit!==void 0?(this._workspaceEdit=workspaceEdit,workspaceEdit.documentChanges?(this._changeAnnotations=new ChangeAnnotations(workspaceEdit.changeAnnotations),workspaceEdit.changeAnnotations=this._changeAnnotations.all(),workspaceEdit.documentChanges.forEach(change=>{if(TextDocumentEdit.is(change)){let textEditChange=new TextEditChangeImpl(change.edits,this._changeAnnotations);this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(key=>{let textEditChange=new TextEditChangeImpl(workspaceEdit.changes[key]);this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(key){if(OptionalVersionedTextDocumentIdentifier.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){let edits=[],textDocumentEdit={textDocument,edits};this._workspaceEdit.documentChanges.push(textDocumentEdit),result=new TextEditChangeImpl(edits,this._changeAnnotations),this._textEditChanges[textDocument.uri]=result}return result}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let result=this._textEditChanges[key];if(!result){let edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl(edits),this._textEditChanges[key]=result}return result}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=CreateFile.create(uri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=CreateFile.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}renameFile(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=RenameFile.create(oldUri,newUri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=RenameFile.create(oldUri,newUri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}deleteFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=DeleteFile.create(uri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=DeleteFile.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}};(function(TextDocumentIdentifier3){function create(uri){return{uri}}TextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)}TextDocumentIdentifier3.is=is})(TextDocumentIdentifier||(TextDocumentIdentifier={}));(function(VersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.integer(candidate.version)}VersionedTextDocumentIdentifier3.is=is})(VersionedTextDocumentIdentifier||(VersionedTextDocumentIdentifier={}));(function(OptionalVersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&(candidate.version===null||Is.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier3.is=is})(OptionalVersionedTextDocumentIdentifier||(OptionalVersionedTextDocumentIdentifier={}));(function(LanguageKind2){LanguageKind2.ABAP="abap",LanguageKind2.WindowsBat="bat",LanguageKind2.BibTeX="bibtex",LanguageKind2.Clojure="clojure",LanguageKind2.Coffeescript="coffeescript",LanguageKind2.C="c",LanguageKind2.CPP="cpp",LanguageKind2.CSharp="csharp",LanguageKind2.CSS="css",LanguageKind2.D="d",LanguageKind2.Delphi="pascal",LanguageKind2.Diff="diff",LanguageKind2.Dart="dart",LanguageKind2.Dockerfile="dockerfile",LanguageKind2.Elixir="elixir",LanguageKind2.Erlang="erlang",LanguageKind2.FSharp="fsharp",LanguageKind2.GitCommit="git-commit",LanguageKind2.GitRebase="git-rebase",LanguageKind2.Go="go",LanguageKind2.Groovy="groovy",LanguageKind2.Handlebars="handlebars",LanguageKind2.Haskell="haskell",LanguageKind2.HTML="html",LanguageKind2.Ini="ini",LanguageKind2.Java="java",LanguageKind2.JavaScript="javascript",LanguageKind2.JavaScriptReact="javascriptreact",LanguageKind2.JSON="json",LanguageKind2.LaTeX="latex",LanguageKind2.Less="less",LanguageKind2.Lua="lua",LanguageKind2.Makefile="makefile",LanguageKind2.Markdown="markdown",LanguageKind2.ObjectiveC="objective-c",LanguageKind2.ObjectiveCPP="objective-cpp",LanguageKind2.Pascal="pascal",LanguageKind2.Perl="perl",LanguageKind2.Perl6="perl6",LanguageKind2.PHP="php",LanguageKind2.Plaintext="plaintext",LanguageKind2.Powershell="powershell",LanguageKind2.Pug="jade",LanguageKind2.Python="python",LanguageKind2.R="r",LanguageKind2.Razor="razor",LanguageKind2.Ruby="ruby",LanguageKind2.Rust="rust",LanguageKind2.SCSS="scss",LanguageKind2.SASS="sass",LanguageKind2.Scala="scala",LanguageKind2.ShaderLab="shaderlab",LanguageKind2.ShellScript="shellscript",LanguageKind2.SQL="sql",LanguageKind2.Swift="swift",LanguageKind2.TypeScript="typescript",LanguageKind2.TypeScriptReact="typescriptreact",LanguageKind2.TeX="tex",LanguageKind2.VisualBasic="vb",LanguageKind2.XML="xml",LanguageKind2.XSL="xsl",LanguageKind2.YAML="yaml"})(LanguageKind||(LanguageKind={}));(function(TextDocumentItem3){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.string(candidate.languageId)&&Is.integer(candidate.version)&&Is.string(candidate.text)}TextDocumentItem3.is=is})(TextDocumentItem||(TextDocumentItem={}));(function(MarkupKind4){MarkupKind4.PlainText="plaintext",MarkupKind4.Markdown="markdown";function is(value){let candidate=value;return candidate===MarkupKind4.PlainText||candidate===MarkupKind4.Markdown}MarkupKind4.is=is})(MarkupKind||(MarkupKind={}));(function(MarkupContent4){function is(value){let candidate=value;return Is.objectLiteral(value)&&MarkupKind.is(candidate.kind)&&Is.string(candidate.value)}MarkupContent4.is=is})(MarkupContent||(MarkupContent={}));(function(CompletionItemKind4){CompletionItemKind4.Text=1,CompletionItemKind4.Method=2,CompletionItemKind4.Function=3,CompletionItemKind4.Constructor=4,CompletionItemKind4.Field=5,CompletionItemKind4.Variable=6,CompletionItemKind4.Class=7,CompletionItemKind4.Interface=8,CompletionItemKind4.Module=9,CompletionItemKind4.Property=10,CompletionItemKind4.Unit=11,CompletionItemKind4.Value=12,CompletionItemKind4.Enum=13,CompletionItemKind4.Keyword=14,CompletionItemKind4.Snippet=15,CompletionItemKind4.Color=16,CompletionItemKind4.File=17,CompletionItemKind4.Reference=18,CompletionItemKind4.Folder=19,CompletionItemKind4.EnumMember=20,CompletionItemKind4.Constant=21,CompletionItemKind4.Struct=22,CompletionItemKind4.Event=23,CompletionItemKind4.Operator=24,CompletionItemKind4.TypeParameter=25})(CompletionItemKind||(CompletionItemKind={}));(function(InsertTextFormat4){InsertTextFormat4.PlainText=1,InsertTextFormat4.Snippet=2})(InsertTextFormat||(InsertTextFormat={}));(function(CompletionItemTag3){CompletionItemTag3.Deprecated=1})(CompletionItemTag||(CompletionItemTag={}));(function(InsertReplaceEdit3){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit3.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.newText)&&Range.is(candidate.insert)&&Range.is(candidate.replace)}InsertReplaceEdit3.is=is})(InsertReplaceEdit||(InsertReplaceEdit={}));(function(InsertTextMode3){InsertTextMode3.asIs=1,InsertTextMode3.adjustIndentation=2})(InsertTextMode||(InsertTextMode={}));(function(ApplyKind2){ApplyKind2.Replace=1,ApplyKind2.Merge=2})(ApplyKind||(ApplyKind={}));(function(CompletionItemLabelDetails3){function is(value){let candidate=value;return candidate&&(Is.string(candidate.detail)||candidate.detail===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails3.is=is})(CompletionItemLabelDetails||(CompletionItemLabelDetails={}));(function(CompletionItem5){function create(label){return{label}}CompletionItem5.create=create})(CompletionItem||(CompletionItem={}));(function(CompletionList3){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList3.create=create})(CompletionList||(CompletionList={}));(function(MarkedString3){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString3.fromPlainText=fromPlainText;function is(value){let candidate=value;return Is.string(candidate)||Is.objectLiteral(candidate)&&Is.string(candidate.language)&&Is.string(candidate.value)}MarkedString3.is=is})(MarkedString||(MarkedString={}));(function(Hover5){function is(value){let candidate=value;return!!candidate&&Is.objectLiteral(candidate)&&(MarkupContent.is(candidate.contents)||MarkedString.is(candidate.contents)||Is.typedArray(candidate.contents,MarkedString.is))&&(value.range===void 0||Range.is(value.range))}Hover5.is=is})(Hover||(Hover={}));(function(ParameterInformation3){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation3.create=create})(ParameterInformation||(ParameterInformation={}));(function(SignatureInformation3){function create(label,documentation,...parameters){let result={label};return Is.defined(documentation)&&(result.documentation=documentation),Is.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation3.create=create})(SignatureInformation||(SignatureInformation={}));(function(DocumentHighlightKind3){DocumentHighlightKind3.Text=1,DocumentHighlightKind3.Read=2,DocumentHighlightKind3.Write=3})(DocumentHighlightKind||(DocumentHighlightKind={}));(function(DocumentHighlight3){function create(range,kind){let result={range};return Is.number(kind)&&(result.kind=kind),result}DocumentHighlight3.create=create})(DocumentHighlight||(DocumentHighlight={}));(function(SymbolKind4){SymbolKind4.File=1,SymbolKind4.Module=2,SymbolKind4.Namespace=3,SymbolKind4.Package=4,SymbolKind4.Class=5,SymbolKind4.Method=6,SymbolKind4.Property=7,SymbolKind4.Field=8,SymbolKind4.Constructor=9,SymbolKind4.Enum=10,SymbolKind4.Interface=11,SymbolKind4.Function=12,SymbolKind4.Variable=13,SymbolKind4.Constant=14,SymbolKind4.String=15,SymbolKind4.Number=16,SymbolKind4.Boolean=17,SymbolKind4.Array=18,SymbolKind4.Object=19,SymbolKind4.Key=20,SymbolKind4.Null=21,SymbolKind4.EnumMember=22,SymbolKind4.Struct=23,SymbolKind4.Event=24,SymbolKind4.Operator=25,SymbolKind4.TypeParameter=26})(SymbolKind||(SymbolKind={}));(function(SymbolTag3){SymbolTag3.Deprecated=1})(SymbolTag||(SymbolTag={}));(function(SymbolInformation3){function create(name,kind,range,uri,containerName){let result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation3.create=create})(SymbolInformation||(SymbolInformation={}));(function(WorkspaceSymbol3){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol3.create=create})(WorkspaceSymbol||(WorkspaceSymbol={}));(function(DocumentSymbol4){function create(name,detail,kind,range,selectionRange,children){let result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol4.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.name)&&Is.number(candidate.kind)&&Range.is(candidate.range)&&Range.is(candidate.selectionRange)&&(candidate.detail===void 0||Is.string(candidate.detail))&&(candidate.deprecated===void 0||Is.boolean(candidate.deprecated))&&(candidate.children===void 0||Array.isArray(candidate.children))&&(candidate.tags===void 0||Array.isArray(candidate.tags))}DocumentSymbol4.is=is})(DocumentSymbol||(DocumentSymbol={}));(function(CodeActionKind5){CodeActionKind5.Empty="",CodeActionKind5.QuickFix="quickfix",CodeActionKind5.Refactor="refactor",CodeActionKind5.RefactorExtract="refactor.extract",CodeActionKind5.RefactorInline="refactor.inline",CodeActionKind5.RefactorMove="refactor.move",CodeActionKind5.RefactorRewrite="refactor.rewrite",CodeActionKind5.Source="source",CodeActionKind5.SourceOrganizeImports="source.organizeImports",CodeActionKind5.SourceFixAll="source.fixAll",CodeActionKind5.Notebook="notebook"})(CodeActionKind||(CodeActionKind={}));(function(CodeActionTriggerKind3){CodeActionTriggerKind3.Invoked=1,CodeActionTriggerKind3.Automatic=2})(CodeActionTriggerKind||(CodeActionTriggerKind={}));(function(CodeActionContext3){function create(diagnostics,only,triggerKind){let result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.typedArray(candidate.diagnostics,Diagnostic.is)&&(candidate.only===void 0||Is.typedArray(candidate.only,Is.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind.Invoked||candidate.triggerKind===CodeActionTriggerKind.Automatic)}CodeActionContext3.is=is})(CodeActionContext||(CodeActionContext={}));(function(CodeActionTag2){CodeActionTag2.LLMGenerated=1;function is(value){return Is.defined(value)&&value===CodeActionTag2.LLMGenerated}CodeActionTag2.is=is})(CodeActionTag||(CodeActionTag={}));(function(CodeAction4){function create(title,kindOrCommandOrEdit,kind){let result={title},checkKind=!0;return typeof kindOrCommandOrEdit=="string"?(checkKind=!1,result.kind=kindOrCommandOrEdit):Command.is(kindOrCommandOrEdit)?result.command=kindOrCommandOrEdit:result.edit=kindOrCommandOrEdit,checkKind&&kind!==void 0&&(result.kind=kind),result}CodeAction4.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.title)&&(candidate.diagnostics===void 0||Is.typedArray(candidate.diagnostics,Diagnostic.is))&&(candidate.kind===void 0||Is.string(candidate.kind))&&(candidate.edit!==void 0||candidate.command!==void 0)&&(candidate.command===void 0||Command.is(candidate.command))&&(candidate.isPreferred===void 0||Is.boolean(candidate.isPreferred))&&(candidate.edit===void 0||WorkspaceEdit.is(candidate.edit))&&(candidate.tags===void 0||Is.typedArray(candidate.tags,CodeActionTag.is))}CodeAction4.is=is})(CodeAction||(CodeAction={}));(function(CodeLens3){function create(range,data){let result={range};return Is.defined(data)&&(result.data=data),result}CodeLens3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.undefined(candidate.command)||Command.is(candidate.command))}CodeLens3.is=is})(CodeLens||(CodeLens={}));(function(FormattingOptions3){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.uinteger(candidate.tabSize)&&Is.boolean(candidate.insertSpaces)}FormattingOptions3.is=is})(FormattingOptions||(FormattingOptions={}));(function(DocumentLink3){function create(range,target,data){return{range,target,data}}DocumentLink3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.undefined(candidate.target)||Is.string(candidate.target))}DocumentLink3.is=is})(DocumentLink||(DocumentLink={}));(function(SelectionRange3){function create(range,parent){return{range,parent}}SelectionRange3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&(candidate.parent===void 0||SelectionRange3.is(candidate.parent))}SelectionRange3.is=is})(SelectionRange||(SelectionRange={}));(function(SemanticTokenTypes3){SemanticTokenTypes3.namespace="namespace",SemanticTokenTypes3.type="type",SemanticTokenTypes3.class="class",SemanticTokenTypes3.enum="enum",SemanticTokenTypes3.interface="interface",SemanticTokenTypes3.struct="struct",SemanticTokenTypes3.typeParameter="typeParameter",SemanticTokenTypes3.parameter="parameter",SemanticTokenTypes3.variable="variable",SemanticTokenTypes3.property="property",SemanticTokenTypes3.enumMember="enumMember",SemanticTokenTypes3.event="event",SemanticTokenTypes3.function="function",SemanticTokenTypes3.method="method",SemanticTokenTypes3.macro="macro",SemanticTokenTypes3.keyword="keyword",SemanticTokenTypes3.modifier="modifier",SemanticTokenTypes3.comment="comment",SemanticTokenTypes3.string="string",SemanticTokenTypes3.number="number",SemanticTokenTypes3.regexp="regexp",SemanticTokenTypes3.operator="operator",SemanticTokenTypes3.decorator="decorator",SemanticTokenTypes3.label="label"})(SemanticTokenTypes||(SemanticTokenTypes={}));(function(SemanticTokenModifiers3){SemanticTokenModifiers3.declaration="declaration",SemanticTokenModifiers3.definition="definition",SemanticTokenModifiers3.readonly="readonly",SemanticTokenModifiers3.static="static",SemanticTokenModifiers3.deprecated="deprecated",SemanticTokenModifiers3.abstract="abstract",SemanticTokenModifiers3.async="async",SemanticTokenModifiers3.modification="modification",SemanticTokenModifiers3.documentation="documentation",SemanticTokenModifiers3.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers||(SemanticTokenModifiers={}));(function(SemanticTokens5){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&(candidate.resultId===void 0||typeof candidate.resultId=="string")&&Array.isArray(candidate.data)&&(candidate.data.length===0||typeof candidate.data[0]=="number")}SemanticTokens5.is=is})(SemanticTokens||(SemanticTokens={}));(function(InlineValueText3){function create(range,text){return{range,text}}InlineValueText3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&Is.string(candidate.text)}InlineValueText3.is=is})(InlineValueText||(InlineValueText={}));(function(InlineValueVariableLookup3){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&Is.boolean(candidate.caseSensitiveLookup)&&(Is.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup3.is=is})(InlineValueVariableLookup||(InlineValueVariableLookup={}));(function(InlineValueEvaluatableExpression3){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&(Is.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression3.is=is})(InlineValueEvaluatableExpression||(InlineValueEvaluatableExpression={}));(function(InlineValueContext3){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(value.stoppedLocation)}InlineValueContext3.is=is})(InlineValueContext||(InlineValueContext={}));(function(InlayHintKind3){InlayHintKind3.Type=1,InlayHintKind3.Parameter=2;function is(value){return value===1||value===2}InlayHintKind3.is=is})(InlayHintKind||(InlayHintKind={}));(function(InlayHintLabelPart3){function create(value){return{value}}InlayHintLabelPart3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent.is(candidate.tooltip))&&(candidate.location===void 0||Location.is(candidate.location))&&(candidate.command===void 0||Command.is(candidate.command))}InlayHintLabelPart3.is=is})(InlayHintLabelPart||(InlayHintLabelPart={}));(function(InlayHint3){function create(position,label,kind){let result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Position.is(candidate.position)&&(Is.string(candidate.label)||Is.typedArray(candidate.label,InlayHintLabelPart.is))&&(candidate.kind===void 0||InlayHintKind.is(candidate.kind))&&candidate.textEdits===void 0||Is.typedArray(candidate.textEdits,TextEdit.is)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is.boolean(candidate.paddingRight))}InlayHint3.is=is})(InlayHint||(InlayHint={}));(function(StringValue3){function createSnippet(value){return{kind:"snippet",value}}StringValue3.createSnippet=createSnippet;function isSnippet(value){let candidate=value;return Is.objectLiteral(candidate)&&candidate.kind==="snippet"&&Is.string(candidate.value)}StringValue3.isSnippet=isSnippet})(StringValue||(StringValue={}));(function(InlineCompletionItem3){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem3.create=create})(InlineCompletionItem||(InlineCompletionItem={}));(function(InlineCompletionList3){function create(items){return{items}}InlineCompletionList3.create=create})(InlineCompletionList||(InlineCompletionList={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3.Invoked=1,InlineCompletionTriggerKind3.Automatic=2})(InlineCompletionTriggerKind||(InlineCompletionTriggerKind={}));(function(SelectedCompletionInfo3){function create(range,text){return{range,text}}SelectedCompletionInfo3.create=create})(SelectedCompletionInfo||(SelectedCompletionInfo={}));(function(InlineCompletionContext3){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext3.create=create})(InlineCompletionContext||(InlineCompletionContext={}));(function(WorkspaceFolder3){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&URI.is(candidate.uri)&&Is.string(candidate.name)}WorkspaceFolder3.is=is})(WorkspaceFolder||(WorkspaceFolder={}));EOL=[`
7
+ ${JSON.stringify(message,null,4)}`);let responseMessage=message;if(Is3.string(responseMessage.id)||Is3.number(responseMessage.id)){let key=responseMessage.id,responseHandler=responsePromises.get(key);responseHandler&&responseHandler.reject(new Error("The received response has neither a result nor an error property."))}}function stringifyTrace(params){if(params!=null)switch(trace){case Trace.Verbose:return JSON.stringify(params,null,4);case Trace.Compact:return JSON.stringify(params);default:return}}function traceSendingRequest(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&message.params&&(data=`Params: ${stringifyTrace(message.params)}`),tracer.log(`Sending request '${message.method} - (${message.id})'.`,data)}else logLSPMessage("send-request",message)}function traceSendingNotification(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.params?data=`Params: ${stringifyTrace(message.params)}`:data="No parameters provided."),tracer.log(`Sending notification '${message.method}'.`,data)}else logLSPMessage("send-notification",message)}function traceSendingResponse(message,method,startTime){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.error&&message.error.data?data=`Error data: ${stringifyTrace(message.error.data)}`:message.result?data=`Result: ${stringifyTrace(message.result)}`:message.error===void 0&&(data="No result returned.")),tracer.log(`Sending response '${method} - (${message.id})'. Processing request took ${Date.now()-startTime}ms`,data)}else logLSPMessage("send-response",message)}function traceReceivedRequest(message){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&message.params&&(data=`Params: ${stringifyTrace(message.params)}`),tracer.log(`Received request '${message.method} - (${message.id})'.`,data)}else logLSPMessage("receive-request",message)}function traceReceivedNotification(message){if(!(trace===Trace.Off||!tracer||message.method===LogTraceNotification.type.method))if(traceFormat===TraceFormat.Text){let data;(trace===Trace.Verbose||trace===Trace.Compact)&&(message.params?data=`Params: ${stringifyTrace(message.params)}`:data="No parameters provided."),tracer.log(`Received notification '${message.method}'.`,data)}else logLSPMessage("receive-notification",message)}function traceReceivedResponse(message,responsePromise){if(!(trace===Trace.Off||!tracer))if(traceFormat===TraceFormat.Text){let data;if((trace===Trace.Verbose||trace===Trace.Compact)&&(message.error&&message.error.data?data=`Error data: ${stringifyTrace(message.error.data)}`:message.result?data=`Result: ${stringifyTrace(message.result)}`:message.error===void 0&&(data="No result returned.")),responsePromise){let error=message.error?` Request failed: ${message.error.message} (${message.error.code}).`:"";tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now()-responsePromise.timerStart}ms.${error}`,data)}else tracer.log(`Received response ${message.id} without active response promise.`,data)}else logLSPMessage("receive-response",message)}function logLSPMessage(type,message){if(!tracer||trace===Trace.Off)return;let lspMessage={isLSPMessage:!0,type,message,timestamp:Date.now()};tracer.log(lspMessage)}function throwIfClosedOrDisposed(){if(isClosed())throw new ConnectionError(ConnectionErrors.Closed,"Connection is closed.");if(isDisposed())throw new ConnectionError(ConnectionErrors.Disposed,"Connection is disposed.")}function throwIfListening(){if(isListening())throw new ConnectionError(ConnectionErrors.AlreadyListening,"Connection is already listening")}function throwIfNotListening(){if(!isListening())throw new Error("Call listen() first.")}function undefinedToNull(param){return param===void 0?null:param}function nullToUndefined(param){if(param!==null)return param}function isNamedParam(param){return param!=null&&!Array.isArray(param)&&typeof param=="object"}function computeSingleParam(parameterStructures,param){switch(parameterStructures){case messages_1.ParameterStructures.auto:return isNamedParam(param)?nullToUndefined(param):[undefinedToNull(param)];case messages_1.ParameterStructures.byName:if(!isNamedParam(param))throw new Error("Received parameters by name but param is not an object literal.");return nullToUndefined(param);case messages_1.ParameterStructures.byPosition:return[undefinedToNull(param)];default:throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`)}}function computeMessageParams(type,params){let result,numberOfParams=type.numberOfParams;switch(numberOfParams){case 0:result=void 0;break;case 1:result=computeSingleParam(type.parameterStructures,params[0]);break;default:result=[];for(let i=0;i<params.length&&i<numberOfParams;i++)result.push(undefinedToNull(params[i]));if(params.length<numberOfParams)for(let i=params.length;i<numberOfParams;i++)result.push(null);break}return result}let connection2={sendNotification:(type,...args)=>{throwIfClosedOrDisposed();let method,messageParams;if(Is3.string(type)){method=type;let first=args[0],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length,numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' notification parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params)}let notificationMessage={jsonrpc:version,method,params:messageParams};return traceSendingNotification(notificationMessage),messageWriter.write(notificationMessage).catch(error=>{throw logger.error("Sending notification failed."),error})},onNotification:(type,handler)=>{throwIfClosedOrDisposed();let method;return Is3.func(type)?starNotificationHandler=type:handler&&(Is3.string(type)?(method=type,notificationHandlers.set(type,{type:void 0,handler})):(method=type.method,notificationHandlers.set(type.method,{type,handler}))),{dispose:()=>{method!==void 0?notificationHandlers.get(method)?.handler===handler&&notificationHandlers.delete(method):starNotificationHandler===type&&(starNotificationHandler=void 0)}}},onProgress:(_type,token,handler)=>{if(progressHandlers.has(token))throw new Error(`Progress handler for token ${token} already registered`);return progressHandlers.set(token,handler),{dispose:()=>{progressHandlers.get(token)===handler&&progressHandlers.delete(token)}}},sendProgress:(_type,token,value)=>connection2.sendNotification(ProgressNotification.type,{token,value}),onUnhandledProgress:unhandledProgressEmitter.event,sendRequest:(type,...args)=>{throwIfClosedOrDisposed(),throwIfNotListening();function sendCancellation(connection3,id2){let p=cancellationStrategy.sender.sendCancellation(connection3,id2);p===void 0?logger.log(`Received no promise from cancellation strategy when cancelling id ${id2}`):p.catch(()=>{logger.log(`Sending cancellation messages for id ${id2} failed.`)})}let method,messageParams,token;if(Is3.string(type)){method=type;let first=args[0],last=args[args.length-1],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length;cancellation_1.CancellationToken.is(last)&&(paramEnd=paramEnd-1,token=last);let numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' request parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params);let numberOfParams=type.numberOfParams;token=cancellation_1.CancellationToken.is(params[numberOfParams])?params[numberOfParams]:void 0}let id=sequenceNumber++,disposable,tokenWasCancelled=!1;token!==void 0&&(token.isCancellationRequested?tokenWasCancelled=!0:disposable=token.onCancellationRequested(()=>{sendCancellation(connection2,id)}));let requestMessage={jsonrpc:version,id,method,params:messageParams};return traceSendingRequest(requestMessage),typeof cancellationStrategy.sender.enableCancellation=="function"&&cancellationStrategy.sender.enableCancellation(requestMessage),new Promise(async(resolve,reject)=>{let resolveWithCleanup=r=>{resolve(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},rejectWithCleanup=r=>{reject(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},responsePromise={method,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{responsePromises.set(id,responsePromise),await messageWriter.write(requestMessage),tokenWasCancelled&&sendCancellation(connection2,id)}catch(error){throw responsePromises.delete(id),responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError,error.message?error.message:"Unknown reason")),logger.error("Sending request failed."),error}})},onRequest:(type,handler)=>{throwIfClosedOrDisposed();let method=null;return StarRequestHandler.is(type)?(method=void 0,starRequestHandler=type):Is3.string(type)?(method=null,handler!==void 0&&(method=type,requestHandlers.set(type,{handler,type:void 0}))):handler!==void 0&&(method=type.method,requestHandlers.set(type.method,{type,handler})),{dispose:()=>{method!==null&&(method!==void 0?requestHandlers.get(method)?.handler===handler&&requestHandlers.delete(method):starRequestHandler===type&&(starRequestHandler=void 0))}}},hasPendingResponse:()=>responsePromises.size>0,trace:async(_value,_tracer,sendNotificationOrTraceOptions)=>{let _sendNotification=!1,_traceFormat=TraceFormat.Text;sendNotificationOrTraceOptions!==void 0&&(Is3.boolean(sendNotificationOrTraceOptions)?_sendNotification=sendNotificationOrTraceOptions:(_sendNotification=sendNotificationOrTraceOptions.sendNotification||!1,_traceFormat=sendNotificationOrTraceOptions.traceFormat||TraceFormat.Text)),trace=_value,traceFormat=_traceFormat,trace===Trace.Off?tracer=void 0:tracer=_tracer,_sendNotification&&!isClosed()&&!isDisposed()&&await connection2.sendNotification(SetTraceNotification.type,{value:Trace.toString(_value)})},onError:errorEmitter.event,onClose:closeEmitter.event,onUnhandledNotification:unhandledNotificationEmitter.event,onDispose:disposeEmitter.event,end:()=>{messageWriter.end()},dispose:()=>{if(isDisposed())return;state=ConnectionState.Disposed,disposeEmitter.fire(void 0);let error=new messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let promise of responsePromises.values())promise.reject(error);responsePromises=new Map,requestTokens=new Map,knownCanceledRequests=new Set,messageQueue=new linkedMap_1.LinkedMap,Is3.func(messageWriter.dispose)&&messageWriter.dispose(),Is3.func(messageReader.dispose)&&messageReader.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),state=ConnectionState.Listening,messageReader.listen(callback)},inspect:()=>{(0,ral_1.default)().console.log("inspect")}};return connection2.onNotification(LogTraceNotification.type,params=>{if(trace===Trace.Off||!tracer)return;let verbose=trace===Trace.Verbose||trace===Trace.Compact;tracer.log(params.message,verbose?params.verbose:void 0)}),connection2.onNotification(ProgressNotification.type,async params=>{let handler=progressHandlers.get(params.token);handler?await handler(params.value):unhandledProgressEmitter.fire(params)}),connection2}}});var require_api=__commonJS({"node_modules/vscode-jsonrpc/lib/common/api.js"(exports){"use strict";var __importDefault=exports&&exports.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});exports.ProgressType=exports.ProgressToken=exports.createMessageConnection=exports.NullLogger=exports.ConnectionOptions=exports.ConnectionStrategy=exports.AbstractMessageBuffer=exports.WriteableStreamMessageWriter=exports.AbstractMessageWriter=exports.MessageWriter=exports.ReadableStreamMessageReader=exports.AbstractMessageReader=exports.MessageReader=exports.SharedArrayReceiverStrategy=exports.SharedArraySenderStrategy=exports.CancellationToken=exports.CancellationTokenSource=exports.Emitter=exports.Event=exports.Disposable=exports.LRUCache=exports.Touch=exports.LinkedMap=exports.ParameterStructures=exports.NotificationType9=exports.NotificationType8=exports.NotificationType7=exports.NotificationType6=exports.NotificationType5=exports.NotificationType4=exports.NotificationType3=exports.NotificationType2=exports.NotificationType1=exports.NotificationType0=exports.NotificationType=exports.ErrorCodes=exports.ResponseError=exports.RequestType9=exports.RequestType8=exports.RequestType7=exports.RequestType6=exports.RequestType5=exports.RequestType4=exports.RequestType3=exports.RequestType2=exports.RequestType1=exports.RequestType0=exports.RequestType=exports.Message=exports.RAL=void 0;exports.MessageStrategy=exports.CancellationStrategy=exports.CancellationSenderStrategy=exports.RequestCancellationReceiverStrategy=exports.IdCancellationReceiverStrategy=exports.CancellationReceiverStrategy=exports.ConnectionError=exports.ConnectionErrors=exports.LogTraceNotification=exports.SetTraceNotification=exports.TraceFormat=exports.TraceValues=exports.TraceValue=exports.Trace=void 0;var messages_1=require_messages();Object.defineProperty(exports,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap();Object.defineProperty(exports,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable();Object.defineProperty(exports,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events();Object.defineProperty(exports,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation();Object.defineProperty(exports,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation();Object.defineProperty(exports,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader();Object.defineProperty(exports,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter();Object.defineProperty(exports,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer();Object.defineProperty(exports,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection();Object.defineProperty(exports,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports,"TraceValue",{enumerable:!0,get:function(){return connection_1.TraceValue}});Object.defineProperty(exports,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports,"IdCancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.IdCancellationReceiverStrategy}});Object.defineProperty(exports,"RequestCancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.RequestCancellationReceiverStrategy}});Object.defineProperty(exports,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});Object.defineProperty(exports,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});var ral_1=__importDefault(require_ral());exports.RAL=ral_1.default}});var main_exports={};__export(main_exports,{AnnotatedTextEdit:()=>AnnotatedTextEdit,ApplyKind:()=>ApplyKind,ChangeAnnotation:()=>ChangeAnnotation,ChangeAnnotationIdentifier:()=>ChangeAnnotationIdentifier,CodeAction:()=>CodeAction,CodeActionContext:()=>CodeActionContext,CodeActionKind:()=>CodeActionKind,CodeActionTag:()=>CodeActionTag,CodeActionTriggerKind:()=>CodeActionTriggerKind,CodeDescription:()=>CodeDescription,CodeLens:()=>CodeLens,Color:()=>Color,ColorInformation:()=>ColorInformation,ColorPresentation:()=>ColorPresentation,Command:()=>Command,CompletionItem:()=>CompletionItem,CompletionItemKind:()=>CompletionItemKind,CompletionItemLabelDetails:()=>CompletionItemLabelDetails,CompletionItemTag:()=>CompletionItemTag,CompletionList:()=>CompletionList,CreateFile:()=>CreateFile,DeleteFile:()=>DeleteFile,Diagnostic:()=>Diagnostic,DiagnosticRelatedInformation:()=>DiagnosticRelatedInformation,DiagnosticSeverity:()=>DiagnosticSeverity,DiagnosticTag:()=>DiagnosticTag,DocumentHighlight:()=>DocumentHighlight,DocumentHighlightKind:()=>DocumentHighlightKind,DocumentLink:()=>DocumentLink,DocumentSymbol:()=>DocumentSymbol,DocumentUri:()=>DocumentUri,EOL:()=>EOL,FoldingRange:()=>FoldingRange,FoldingRangeKind:()=>FoldingRangeKind,FormattingOptions:()=>FormattingOptions,Hover:()=>Hover,InlayHint:()=>InlayHint,InlayHintKind:()=>InlayHintKind,InlayHintLabelPart:()=>InlayHintLabelPart,InlineCompletionContext:()=>InlineCompletionContext,InlineCompletionItem:()=>InlineCompletionItem,InlineCompletionList:()=>InlineCompletionList,InlineCompletionTriggerKind:()=>InlineCompletionTriggerKind,InlineValueContext:()=>InlineValueContext,InlineValueEvaluatableExpression:()=>InlineValueEvaluatableExpression,InlineValueText:()=>InlineValueText,InlineValueVariableLookup:()=>InlineValueVariableLookup,InsertReplaceEdit:()=>InsertReplaceEdit,InsertTextFormat:()=>InsertTextFormat,InsertTextMode:()=>InsertTextMode,LanguageKind:()=>LanguageKind,Location:()=>Location,LocationLink:()=>LocationLink,MarkedString:()=>MarkedString,MarkupContent:()=>MarkupContent,MarkupKind:()=>MarkupKind,OptionalVersionedTextDocumentIdentifier:()=>OptionalVersionedTextDocumentIdentifier,ParameterInformation:()=>ParameterInformation,Position:()=>Position,Range:()=>Range,RenameFile:()=>RenameFile,SelectedCompletionInfo:()=>SelectedCompletionInfo,SelectionRange:()=>SelectionRange,SemanticTokenModifiers:()=>SemanticTokenModifiers,SemanticTokenTypes:()=>SemanticTokenTypes,SemanticTokens:()=>SemanticTokens,SignatureInformation:()=>SignatureInformation,SnippetTextEdit:()=>SnippetTextEdit,StringValue:()=>StringValue,SymbolInformation:()=>SymbolInformation,SymbolKind:()=>SymbolKind,SymbolTag:()=>SymbolTag,TextDocument:()=>TextDocument,TextDocumentEdit:()=>TextDocumentEdit,TextDocumentIdentifier:()=>TextDocumentIdentifier,TextDocumentItem:()=>TextDocumentItem,TextEdit:()=>TextEdit,URI:()=>URI,VersionedTextDocumentIdentifier:()=>VersionedTextDocumentIdentifier,WorkspaceChange:()=>WorkspaceChange,WorkspaceEdit:()=>WorkspaceEdit,WorkspaceFolder:()=>WorkspaceFolder,WorkspaceSymbol:()=>WorkspaceSymbol,integer:()=>integer,uinteger:()=>uinteger});var DocumentUri,URI,integer,uinteger,Position,Range,Location,LocationLink,Color,ColorInformation,ColorPresentation,FoldingRangeKind,FoldingRange,DiagnosticRelatedInformation,DiagnosticSeverity,DiagnosticTag,CodeDescription,Diagnostic,Command,TextEdit,ChangeAnnotation,ChangeAnnotationIdentifier,AnnotatedTextEdit,TextDocumentEdit,CreateFile,RenameFile,DeleteFile,WorkspaceEdit,TextEditChangeImpl,SnippetTextEdit,ChangeAnnotations,WorkspaceChange,TextDocumentIdentifier,VersionedTextDocumentIdentifier,OptionalVersionedTextDocumentIdentifier,LanguageKind,TextDocumentItem,MarkupKind,MarkupContent,CompletionItemKind,InsertTextFormat,CompletionItemTag,InsertReplaceEdit,InsertTextMode,ApplyKind,CompletionItemLabelDetails,CompletionItem,CompletionList,MarkedString,Hover,ParameterInformation,SignatureInformation,DocumentHighlightKind,DocumentHighlight,SymbolKind,SymbolTag,SymbolInformation,WorkspaceSymbol,DocumentSymbol,CodeActionKind,CodeActionTriggerKind,CodeActionContext,CodeActionTag,CodeAction,CodeLens,FormattingOptions,DocumentLink,SelectionRange,SemanticTokenTypes,SemanticTokenModifiers,SemanticTokens,InlineValueText,InlineValueVariableLookup,InlineValueEvaluatableExpression,InlineValueContext,InlayHintKind,InlayHintLabelPart,InlayHint,StringValue,InlineCompletionItem,InlineCompletionList,InlineCompletionTriggerKind,SelectedCompletionInfo,InlineCompletionContext,WorkspaceFolder,EOL,TextDocument,FullTextDocument,Is,init_main=__esm({"node_modules/vscode-languageserver-types/lib/esm/main.js"(){"use strict";(function(DocumentUri3){function is(value){return typeof value=="string"}DocumentUri3.is=is})(DocumentUri||(DocumentUri={}));(function(URI3){function is(value){return typeof value=="string"}URI3.is=is})(URI||(URI={}));(function(integer3){integer3.MIN_VALUE=-2147483648,integer3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer3.MIN_VALUE<=value&&value<=integer3.MAX_VALUE}integer3.is=is})(integer||(integer={}));(function(uinteger3){uinteger3.MIN_VALUE=0,uinteger3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger3.MIN_VALUE<=value&&value<=uinteger3.MAX_VALUE}uinteger3.is=is})(uinteger||(uinteger={}));(function(Position4){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger.MAX_VALUE),{line,character}}Position4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.line)&&Is.uinteger(candidate.character)}Position4.is=is})(Position||(Position={}));(function(Range4){function create(one,two,three,four){if(Is.uinteger(one)&&Is.uinteger(two)&&Is.uinteger(three)&&Is.uinteger(four))return{start:Position.create(one,two),end:Position.create(three,four)};if(Position.is(one)&&Position.is(two))return{start:one,end:two};throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`)}Range4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Position.is(candidate.start)&&Position.is(candidate.end)}Range4.is=is})(Range||(Range={}));(function(Location4){function create(uri,range){return{uri,range}}Location4.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&(Is.string(candidate.uri)||Is.undefined(candidate.uri))}Location4.is=is})(Location||(Location={}));(function(LocationLink3){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.targetRange)&&Is.string(candidate.targetUri)&&Range.is(candidate.targetSelectionRange)&&(Range.is(candidate.originSelectionRange)||Is.undefined(candidate.originSelectionRange))}LocationLink3.is=is})(LocationLink||(LocationLink={}));(function(Color3){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.numberRange(candidate.red,0,1)&&Is.numberRange(candidate.green,0,1)&&Is.numberRange(candidate.blue,0,1)&&Is.numberRange(candidate.alpha,0,1)}Color3.is=is})(Color||(Color={}));(function(ColorInformation3){function create(range,color){return{range,color}}ColorInformation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&Color.is(candidate.color)}ColorInformation3.is=is})(ColorInformation||(ColorInformation={}));(function(ColorPresentation3){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.undefined(candidate.textEdit)||TextEdit.is(candidate))&&(Is.undefined(candidate.additionalTextEdits)||Is.typedArray(candidate.additionalTextEdits,TextEdit.is))}ColorPresentation3.is=is})(ColorPresentation||(ColorPresentation={}));(function(FoldingRangeKind4){FoldingRangeKind4.Comment="comment",FoldingRangeKind4.Imports="imports",FoldingRangeKind4.Region="region"})(FoldingRangeKind||(FoldingRangeKind={}));(function(FoldingRange5){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){let result={startLine,endLine};return Is.defined(startCharacter)&&(result.startCharacter=startCharacter),Is.defined(endCharacter)&&(result.endCharacter=endCharacter),Is.defined(kind)&&(result.kind=kind),Is.defined(collapsedText)&&(result.collapsedText=collapsedText),result}FoldingRange5.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.startLine)&&Is.uinteger(candidate.startLine)&&(Is.undefined(candidate.startCharacter)||Is.uinteger(candidate.startCharacter))&&(Is.undefined(candidate.endCharacter)||Is.uinteger(candidate.endCharacter))&&(Is.undefined(candidate.kind)||Is.string(candidate.kind))}FoldingRange5.is=is})(FoldingRange||(FoldingRange={}));(function(DiagnosticRelatedInformation3){function create(location,message){return{location,message}}DiagnosticRelatedInformation3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Location.is(candidate.location)&&Is.string(candidate.message)}DiagnosticRelatedInformation3.is=is})(DiagnosticRelatedInformation||(DiagnosticRelatedInformation={}));(function(DiagnosticSeverity7){DiagnosticSeverity7.Error=1,DiagnosticSeverity7.Warning=2,DiagnosticSeverity7.Information=3,DiagnosticSeverity7.Hint=4})(DiagnosticSeverity||(DiagnosticSeverity={}));(function(DiagnosticTag3){DiagnosticTag3.Unnecessary=1,DiagnosticTag3.Deprecated=2})(DiagnosticTag||(DiagnosticTag={}));(function(CodeDescription3){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.href)}CodeDescription3.is=is})(CodeDescription||(CodeDescription={}));(function(Diagnostic8){function create(range,message,severity,code,source,relatedInformation){let result={range,message};return Is.defined(severity)&&(result.severity=severity),Is.defined(code)&&(result.code=code),Is.defined(source)&&(result.source=source),Is.defined(relatedInformation)&&(result.relatedInformation=relatedInformation),result}Diagnostic8.create=create;function is(value){var _a;let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.string(candidate.message)||MarkupContent.is(candidate.message))&&(Is.number(candidate.severity)||Is.undefined(candidate.severity))&&(Is.integer(candidate.code)||Is.string(candidate.code)||Is.undefined(candidate.code))&&(Is.undefined(candidate.codeDescription)||Is.string((_a=candidate.codeDescription)===null||_a===void 0?void 0:_a.href))&&(Is.string(candidate.source)||Is.undefined(candidate.source))&&(Is.undefined(candidate.relatedInformation)||Is.typedArray(candidate.relatedInformation,DiagnosticRelatedInformation.is))}Diagnostic8.is=is;function is3_17(value){return Is.string(value.message)}Diagnostic8.is3_17=is3_17;function getMessageString(diagnostic){if(Is.string(diagnostic.message))return diagnostic.message;if(MarkupContent.is(diagnostic.message))return diagnostic.message.value;throw new Error(`Unknown message type ${typeof diagnostic.message}`)}Diagnostic8.getMessageString=getMessageString})(Diagnostic||(Diagnostic={}));(function(Command3){function create(title,command,...args){let result={title,command};return Is.defined(args)&&args.length>0&&(result.arguments=args),result}Command3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.title)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip))&&Is.string(candidate.command)}Command3.is=is})(Command||(Command={}));(function(TextEdit6){function replace(range,newText){return{range,newText}}TextEdit6.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit6.insert=insert;function del(range){return{range,newText:""}}TextEdit6.del=del;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.newText)&&Range.is(candidate.range)}TextEdit6.is=is})(TextEdit||(TextEdit={}));(function(ChangeAnnotation3){function create(label,needsConfirmation,description){let result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.boolean(candidate.needsConfirmation)||candidate.needsConfirmation===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}ChangeAnnotation3.is=is})(ChangeAnnotation||(ChangeAnnotation={}));(function(ChangeAnnotationIdentifier3){function is(value){let candidate=value;return Is.string(candidate)}ChangeAnnotationIdentifier3.is=is})(ChangeAnnotationIdentifier||(ChangeAnnotationIdentifier={}));(function(AnnotatedTextEdit3){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit3.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit3.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit3.del=del;function is(value){let candidate=value;return TextEdit.is(candidate)&&(ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}AnnotatedTextEdit3.is=is})(AnnotatedTextEdit||(AnnotatedTextEdit={}));(function(TextDocumentEdit3){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit3.is=is})(TextDocumentEdit||(TextDocumentEdit={}));(function(CreateFile3){function create(uri,options,annotation){let result={kind:"create",uri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}CreateFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="create"&&Is.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}CreateFile3.is=is})(CreateFile||(CreateFile={}));(function(RenameFile3){function create(oldUri,newUri,options,annotation){let result={kind:"rename",oldUri,newUri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}RenameFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="rename"&&Is.string(candidate.oldUri)&&Is.string(candidate.newUri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}RenameFile3.is=is})(RenameFile||(RenameFile={}));(function(DeleteFile3){function create(uri,options,annotation){let result={kind:"delete",uri};return options!==void 0&&(options.recursive!==void 0||options.ignoreIfNotExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}DeleteFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="delete"&&Is.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.recursive===void 0||Is.boolean(candidate.options.recursive))&&(candidate.options.ignoreIfNotExists===void 0||Is.boolean(candidate.options.ignoreIfNotExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier.is(candidate.annotationId))}DeleteFile3.is=is})(DeleteFile||(DeleteFile={}));(function(WorkspaceEdit5){function is(value){let candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(change=>Is.string(change.kind)?CreateFile.is(change)||RenameFile.is(change)||DeleteFile.is(change):TextDocumentEdit.is(change)))}WorkspaceEdit5.is=is})(WorkspaceEdit||(WorkspaceEdit={}));TextEditChangeImpl=class{constructor(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}insert(position,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.insert(position,newText):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.insert(position,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.insert(position,newText,id)),this.edits.push(edit),id!==void 0)return id}replace(range,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.replace(range,newText):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.replace(range,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.replace(range,newText,id)),this.edits.push(edit),id!==void 0)return id}delete(range,annotation){let edit,id;if(annotation===void 0?edit=TextEdit.del(range):ChangeAnnotationIdentifier.is(annotation)?(id=annotation,edit=AnnotatedTextEdit.del(range,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit.del(range,id)),this.edits.push(edit),id!==void 0)return id}add(edit){this.edits.push(edit)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}};(function(SnippetTextEdit2){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&StringValue.isSnippet(candidate.snippet)&&(candidate.annotationId===void 0||ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}SnippetTextEdit2.is=is})(SnippetTextEdit||(SnippetTextEdit={}));ChangeAnnotations=class{constructor(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(idOrAnnotation,annotation){let id;if(ChangeAnnotationIdentifier.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error(`Id ${id} is already in use.`);if(annotation===void 0)throw new Error(`No annotation provided for id ${id}`);return this._annotations[id]=annotation,this._size++,id}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange=class{constructor(workspaceEdit){this._textEditChanges=Object.create(null),workspaceEdit!==void 0?(this._workspaceEdit=workspaceEdit,workspaceEdit.documentChanges?(this._changeAnnotations=new ChangeAnnotations(workspaceEdit.changeAnnotations),workspaceEdit.changeAnnotations=this._changeAnnotations.all(),workspaceEdit.documentChanges.forEach(change=>{if(TextDocumentEdit.is(change)){let textEditChange=new TextEditChangeImpl(change.edits,this._changeAnnotations);this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(key=>{let textEditChange=new TextEditChangeImpl(workspaceEdit.changes[key]);this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(key){if(OptionalVersionedTextDocumentIdentifier.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){let edits=[],textDocumentEdit={textDocument,edits};this._workspaceEdit.documentChanges.push(textDocumentEdit),result=new TextEditChangeImpl(edits,this._changeAnnotations),this._textEditChanges[textDocument.uri]=result}return result}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let result=this._textEditChanges[key];if(!result){let edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl(edits),this._textEditChanges[key]=result}return result}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=CreateFile.create(uri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=CreateFile.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}renameFile(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=RenameFile.create(oldUri,newUri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=RenameFile.create(oldUri,newUri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}deleteFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=DeleteFile.create(uri,options):(id=ChangeAnnotationIdentifier.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=DeleteFile.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}};(function(TextDocumentIdentifier3){function create(uri){return{uri}}TextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)}TextDocumentIdentifier3.is=is})(TextDocumentIdentifier||(TextDocumentIdentifier={}));(function(VersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.integer(candidate.version)}VersionedTextDocumentIdentifier3.is=is})(VersionedTextDocumentIdentifier||(VersionedTextDocumentIdentifier={}));(function(OptionalVersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&(candidate.version===null||Is.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier3.is=is})(OptionalVersionedTextDocumentIdentifier||(OptionalVersionedTextDocumentIdentifier={}));(function(LanguageKind2){LanguageKind2.ABAP="abap",LanguageKind2.WindowsBat="bat",LanguageKind2.BibTeX="bibtex",LanguageKind2.Clojure="clojure",LanguageKind2.Coffeescript="coffeescript",LanguageKind2.C="c",LanguageKind2.CPP="cpp",LanguageKind2.CSharp="csharp",LanguageKind2.CSS="css",LanguageKind2.D="d",LanguageKind2.Delphi="pascal",LanguageKind2.Diff="diff",LanguageKind2.Dart="dart",LanguageKind2.Dockerfile="dockerfile",LanguageKind2.Elixir="elixir",LanguageKind2.Erlang="erlang",LanguageKind2.FSharp="fsharp",LanguageKind2.GitCommit="git-commit",LanguageKind2.GitRebase="git-rebase",LanguageKind2.Go="go",LanguageKind2.Groovy="groovy",LanguageKind2.Handlebars="handlebars",LanguageKind2.Haskell="haskell",LanguageKind2.HTML="html",LanguageKind2.Ini="ini",LanguageKind2.Java="java",LanguageKind2.JavaScript="javascript",LanguageKind2.JavaScriptReact="javascriptreact",LanguageKind2.JSON="json",LanguageKind2.LaTeX="latex",LanguageKind2.Less="less",LanguageKind2.Lua="lua",LanguageKind2.Makefile="makefile",LanguageKind2.Markdown="markdown",LanguageKind2.ObjectiveC="objective-c",LanguageKind2.ObjectiveCPP="objective-cpp",LanguageKind2.Pascal="pascal",LanguageKind2.Perl="perl",LanguageKind2.Perl6="perl6",LanguageKind2.PHP="php",LanguageKind2.Plaintext="plaintext",LanguageKind2.Powershell="powershell",LanguageKind2.Pug="jade",LanguageKind2.Python="python",LanguageKind2.R="r",LanguageKind2.Razor="razor",LanguageKind2.Ruby="ruby",LanguageKind2.Rust="rust",LanguageKind2.SCSS="scss",LanguageKind2.SASS="sass",LanguageKind2.Scala="scala",LanguageKind2.ShaderLab="shaderlab",LanguageKind2.ShellScript="shellscript",LanguageKind2.SQL="sql",LanguageKind2.Swift="swift",LanguageKind2.TypeScript="typescript",LanguageKind2.TypeScriptReact="typescriptreact",LanguageKind2.TeX="tex",LanguageKind2.VisualBasic="vb",LanguageKind2.XML="xml",LanguageKind2.XSL="xsl",LanguageKind2.YAML="yaml"})(LanguageKind||(LanguageKind={}));(function(TextDocumentItem3){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.string(candidate.languageId)&&Is.integer(candidate.version)&&Is.string(candidate.text)}TextDocumentItem3.is=is})(TextDocumentItem||(TextDocumentItem={}));(function(MarkupKind4){MarkupKind4.PlainText="plaintext",MarkupKind4.Markdown="markdown";function is(value){let candidate=value;return candidate===MarkupKind4.PlainText||candidate===MarkupKind4.Markdown}MarkupKind4.is=is})(MarkupKind||(MarkupKind={}));(function(MarkupContent4){function is(value){let candidate=value;return Is.objectLiteral(value)&&MarkupKind.is(candidate.kind)&&Is.string(candidate.value)}MarkupContent4.is=is})(MarkupContent||(MarkupContent={}));(function(CompletionItemKind4){CompletionItemKind4.Text=1,CompletionItemKind4.Method=2,CompletionItemKind4.Function=3,CompletionItemKind4.Constructor=4,CompletionItemKind4.Field=5,CompletionItemKind4.Variable=6,CompletionItemKind4.Class=7,CompletionItemKind4.Interface=8,CompletionItemKind4.Module=9,CompletionItemKind4.Property=10,CompletionItemKind4.Unit=11,CompletionItemKind4.Value=12,CompletionItemKind4.Enum=13,CompletionItemKind4.Keyword=14,CompletionItemKind4.Snippet=15,CompletionItemKind4.Color=16,CompletionItemKind4.File=17,CompletionItemKind4.Reference=18,CompletionItemKind4.Folder=19,CompletionItemKind4.EnumMember=20,CompletionItemKind4.Constant=21,CompletionItemKind4.Struct=22,CompletionItemKind4.Event=23,CompletionItemKind4.Operator=24,CompletionItemKind4.TypeParameter=25})(CompletionItemKind||(CompletionItemKind={}));(function(InsertTextFormat4){InsertTextFormat4.PlainText=1,InsertTextFormat4.Snippet=2})(InsertTextFormat||(InsertTextFormat={}));(function(CompletionItemTag3){CompletionItemTag3.Deprecated=1})(CompletionItemTag||(CompletionItemTag={}));(function(InsertReplaceEdit3){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit3.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.newText)&&Range.is(candidate.insert)&&Range.is(candidate.replace)}InsertReplaceEdit3.is=is})(InsertReplaceEdit||(InsertReplaceEdit={}));(function(InsertTextMode3){InsertTextMode3.asIs=1,InsertTextMode3.adjustIndentation=2})(InsertTextMode||(InsertTextMode={}));(function(ApplyKind2){ApplyKind2.Replace=1,ApplyKind2.Merge=2})(ApplyKind||(ApplyKind={}));(function(CompletionItemLabelDetails3){function is(value){let candidate=value;return candidate&&(Is.string(candidate.detail)||candidate.detail===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails3.is=is})(CompletionItemLabelDetails||(CompletionItemLabelDetails={}));(function(CompletionItem5){function create(label){return{label}}CompletionItem5.create=create})(CompletionItem||(CompletionItem={}));(function(CompletionList3){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList3.create=create})(CompletionList||(CompletionList={}));(function(MarkedString3){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString3.fromPlainText=fromPlainText;function is(value){let candidate=value;return Is.string(candidate)||Is.objectLiteral(candidate)&&Is.string(candidate.language)&&Is.string(candidate.value)}MarkedString3.is=is})(MarkedString||(MarkedString={}));(function(Hover5){function is(value){let candidate=value;return!!candidate&&Is.objectLiteral(candidate)&&(MarkupContent.is(candidate.contents)||MarkedString.is(candidate.contents)||Is.typedArray(candidate.contents,MarkedString.is))&&(value.range===void 0||Range.is(value.range))}Hover5.is=is})(Hover||(Hover={}));(function(ParameterInformation3){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation3.create=create})(ParameterInformation||(ParameterInformation={}));(function(SignatureInformation3){function create(label,documentation,...parameters){let result={label};return Is.defined(documentation)&&(result.documentation=documentation),Is.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation3.create=create})(SignatureInformation||(SignatureInformation={}));(function(DocumentHighlightKind3){DocumentHighlightKind3.Text=1,DocumentHighlightKind3.Read=2,DocumentHighlightKind3.Write=3})(DocumentHighlightKind||(DocumentHighlightKind={}));(function(DocumentHighlight3){function create(range,kind){let result={range};return Is.number(kind)&&(result.kind=kind),result}DocumentHighlight3.create=create})(DocumentHighlight||(DocumentHighlight={}));(function(SymbolKind4){SymbolKind4.File=1,SymbolKind4.Module=2,SymbolKind4.Namespace=3,SymbolKind4.Package=4,SymbolKind4.Class=5,SymbolKind4.Method=6,SymbolKind4.Property=7,SymbolKind4.Field=8,SymbolKind4.Constructor=9,SymbolKind4.Enum=10,SymbolKind4.Interface=11,SymbolKind4.Function=12,SymbolKind4.Variable=13,SymbolKind4.Constant=14,SymbolKind4.String=15,SymbolKind4.Number=16,SymbolKind4.Boolean=17,SymbolKind4.Array=18,SymbolKind4.Object=19,SymbolKind4.Key=20,SymbolKind4.Null=21,SymbolKind4.EnumMember=22,SymbolKind4.Struct=23,SymbolKind4.Event=24,SymbolKind4.Operator=25,SymbolKind4.TypeParameter=26})(SymbolKind||(SymbolKind={}));(function(SymbolTag3){SymbolTag3.Deprecated=1})(SymbolTag||(SymbolTag={}));(function(SymbolInformation3){function create(name,kind,range,uri,containerName){let result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation3.create=create})(SymbolInformation||(SymbolInformation={}));(function(WorkspaceSymbol3){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol3.create=create})(WorkspaceSymbol||(WorkspaceSymbol={}));(function(DocumentSymbol4){function create(name,detail,kind,range,selectionRange,children){let result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol4.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.name)&&Is.number(candidate.kind)&&Range.is(candidate.range)&&Range.is(candidate.selectionRange)&&(candidate.detail===void 0||Is.string(candidate.detail))&&(candidate.deprecated===void 0||Is.boolean(candidate.deprecated))&&(candidate.children===void 0||Array.isArray(candidate.children))&&(candidate.tags===void 0||Array.isArray(candidate.tags))}DocumentSymbol4.is=is})(DocumentSymbol||(DocumentSymbol={}));(function(CodeActionKind5){CodeActionKind5.Empty="",CodeActionKind5.QuickFix="quickfix",CodeActionKind5.Refactor="refactor",CodeActionKind5.RefactorExtract="refactor.extract",CodeActionKind5.RefactorInline="refactor.inline",CodeActionKind5.RefactorMove="refactor.move",CodeActionKind5.RefactorRewrite="refactor.rewrite",CodeActionKind5.Source="source",CodeActionKind5.SourceOrganizeImports="source.organizeImports",CodeActionKind5.SourceFixAll="source.fixAll",CodeActionKind5.Notebook="notebook"})(CodeActionKind||(CodeActionKind={}));(function(CodeActionTriggerKind3){CodeActionTriggerKind3.Invoked=1,CodeActionTriggerKind3.Automatic=2})(CodeActionTriggerKind||(CodeActionTriggerKind={}));(function(CodeActionContext3){function create(diagnostics,only,triggerKind){let result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.typedArray(candidate.diagnostics,Diagnostic.is)&&(candidate.only===void 0||Is.typedArray(candidate.only,Is.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind.Invoked||candidate.triggerKind===CodeActionTriggerKind.Automatic)}CodeActionContext3.is=is})(CodeActionContext||(CodeActionContext={}));(function(CodeActionTag2){CodeActionTag2.LLMGenerated=1;function is(value){return Is.defined(value)&&value===CodeActionTag2.LLMGenerated}CodeActionTag2.is=is})(CodeActionTag||(CodeActionTag={}));(function(CodeAction4){function create(title,kindOrCommandOrEdit,kind){let result={title},checkKind=!0;return typeof kindOrCommandOrEdit=="string"?(checkKind=!1,result.kind=kindOrCommandOrEdit):Command.is(kindOrCommandOrEdit)?result.command=kindOrCommandOrEdit:result.edit=kindOrCommandOrEdit,checkKind&&kind!==void 0&&(result.kind=kind),result}CodeAction4.create=create;function is(value){let candidate=value;return candidate&&Is.string(candidate.title)&&(candidate.diagnostics===void 0||Is.typedArray(candidate.diagnostics,Diagnostic.is))&&(candidate.kind===void 0||Is.string(candidate.kind))&&(candidate.edit!==void 0||candidate.command!==void 0)&&(candidate.command===void 0||Command.is(candidate.command))&&(candidate.isPreferred===void 0||Is.boolean(candidate.isPreferred))&&(candidate.edit===void 0||WorkspaceEdit.is(candidate.edit))&&(candidate.tags===void 0||Is.typedArray(candidate.tags,CodeActionTag.is))}CodeAction4.is=is})(CodeAction||(CodeAction={}));(function(CodeLens3){function create(range,data){let result={range};return Is.defined(data)&&(result.data=data),result}CodeLens3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.undefined(candidate.command)||Command.is(candidate.command))}CodeLens3.is=is})(CodeLens||(CodeLens={}));(function(FormattingOptions3){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Is.uinteger(candidate.tabSize)&&Is.boolean(candidate.insertSpaces)}FormattingOptions3.is=is})(FormattingOptions||(FormattingOptions={}));(function(DocumentLink3){function create(range,target,data){return{range,target,data}}DocumentLink3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(candidate.range)&&(Is.undefined(candidate.target)||Is.string(candidate.target))}DocumentLink3.is=is})(DocumentLink||(DocumentLink={}));(function(SelectionRange3){function create(range,parent){return{range,parent}}SelectionRange3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Range.is(candidate.range)&&(candidate.parent===void 0||SelectionRange3.is(candidate.parent))}SelectionRange3.is=is})(SelectionRange||(SelectionRange={}));(function(SemanticTokenTypes3){SemanticTokenTypes3.namespace="namespace",SemanticTokenTypes3.type="type",SemanticTokenTypes3.class="class",SemanticTokenTypes3.enum="enum",SemanticTokenTypes3.interface="interface",SemanticTokenTypes3.struct="struct",SemanticTokenTypes3.typeParameter="typeParameter",SemanticTokenTypes3.parameter="parameter",SemanticTokenTypes3.variable="variable",SemanticTokenTypes3.property="property",SemanticTokenTypes3.enumMember="enumMember",SemanticTokenTypes3.event="event",SemanticTokenTypes3.function="function",SemanticTokenTypes3.method="method",SemanticTokenTypes3.macro="macro",SemanticTokenTypes3.keyword="keyword",SemanticTokenTypes3.modifier="modifier",SemanticTokenTypes3.comment="comment",SemanticTokenTypes3.string="string",SemanticTokenTypes3.number="number",SemanticTokenTypes3.regexp="regexp",SemanticTokenTypes3.operator="operator",SemanticTokenTypes3.decorator="decorator",SemanticTokenTypes3.label="label"})(SemanticTokenTypes||(SemanticTokenTypes={}));(function(SemanticTokenModifiers3){SemanticTokenModifiers3.declaration="declaration",SemanticTokenModifiers3.definition="definition",SemanticTokenModifiers3.readonly="readonly",SemanticTokenModifiers3.static="static",SemanticTokenModifiers3.deprecated="deprecated",SemanticTokenModifiers3.abstract="abstract",SemanticTokenModifiers3.async="async",SemanticTokenModifiers3.modification="modification",SemanticTokenModifiers3.documentation="documentation",SemanticTokenModifiers3.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers||(SemanticTokenModifiers={}));(function(SemanticTokens5){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&(candidate.resultId===void 0||typeof candidate.resultId=="string")&&Array.isArray(candidate.data)&&(candidate.data.length===0||typeof candidate.data[0]=="number")}SemanticTokens5.is=is})(SemanticTokens||(SemanticTokens={}));(function(InlineValueText3){function create(range,text){return{range,text}}InlineValueText3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&Is.string(candidate.text)}InlineValueText3.is=is})(InlineValueText||(InlineValueText={}));(function(InlineValueVariableLookup3){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&Is.boolean(candidate.caseSensitiveLookup)&&(Is.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup3.is=is})(InlineValueVariableLookup||(InlineValueVariableLookup={}));(function(InlineValueEvaluatableExpression3){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression3.create=create;function is(value){let candidate=value;return candidate!=null&&Range.is(candidate.range)&&(Is.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression3.is=is})(InlineValueEvaluatableExpression||(InlineValueEvaluatableExpression={}));(function(InlineValueContext3){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext3.create=create;function is(value){let candidate=value;return Is.defined(candidate)&&Range.is(value.stoppedLocation)}InlineValueContext3.is=is})(InlineValueContext||(InlineValueContext={}));(function(InlayHintKind3){InlayHintKind3.Type=1,InlayHintKind3.Parameter=2;function is(value){return value===1||value===2}InlayHintKind3.is=is})(InlayHintKind||(InlayHintKind={}));(function(InlayHintLabelPart3){function create(value){return{value}}InlayHintLabelPart3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent.is(candidate.tooltip))&&(candidate.location===void 0||Location.is(candidate.location))&&(candidate.command===void 0||Command.is(candidate.command))}InlayHintLabelPart3.is=is})(InlayHintLabelPart||(InlayHintLabelPart={}));(function(InlayHint3){function create(position,label,kind){let result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint3.create=create;function is(value){let candidate=value;return Is.objectLiteral(candidate)&&Position.is(candidate.position)&&(Is.string(candidate.label)||Is.typedArray(candidate.label,InlayHintLabelPart.is))&&(candidate.kind===void 0||InlayHintKind.is(candidate.kind))&&candidate.textEdits===void 0||Is.typedArray(candidate.textEdits,TextEdit.is)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is.boolean(candidate.paddingRight))}InlayHint3.is=is})(InlayHint||(InlayHint={}));(function(StringValue3){function createSnippet(value){return{kind:"snippet",value}}StringValue3.createSnippet=createSnippet;function isSnippet(value){let candidate=value;return Is.objectLiteral(candidate)&&candidate.kind==="snippet"&&Is.string(candidate.value)}StringValue3.isSnippet=isSnippet})(StringValue||(StringValue={}));(function(InlineCompletionItem3){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem3.create=create})(InlineCompletionItem||(InlineCompletionItem={}));(function(InlineCompletionList3){function create(items){return{items}}InlineCompletionList3.create=create})(InlineCompletionList||(InlineCompletionList={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3.Invoked=1,InlineCompletionTriggerKind3.Automatic=2})(InlineCompletionTriggerKind||(InlineCompletionTriggerKind={}));(function(SelectedCompletionInfo3){function create(range,text){return{range,text}}SelectedCompletionInfo3.create=create})(SelectedCompletionInfo||(SelectedCompletionInfo={}));(function(InlineCompletionContext3){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext3.create=create})(InlineCompletionContext||(InlineCompletionContext={}));(function(WorkspaceFolder3){function is(value){let candidate=value;return Is.objectLiteral(candidate)&&URI.is(candidate.uri)&&Is.string(candidate.name)}WorkspaceFolder3.is=is})(WorkspaceFolder||(WorkspaceFolder={}));EOL=[`
8
8
  `,`\r
9
9
  `,"\r"];(function(TextDocument4){function create(uri,languageId,version,content){return new FullTextDocument(uri,languageId,version,content)}TextDocument4.create=create;function is(value){let candidate=value;return!!(Is.defined(candidate)&&Is.string(candidate.uri)&&(Is.undefined(candidate.languageId)||Is.string(candidate.languageId))&&Is.uinteger(candidate.lineCount)&&Is.func(candidate.getText)&&Is.func(candidate.positionAt)&&Is.func(candidate.offsetAt))}TextDocument4.is=is;function applyEdits(document,edits){let text=document.getText(),sortedEdits=mergeSort2(edits,(a,b)=>{let diff=a.range.start.line-b.range.start.line;return diff===0?a.range.start.character-b.range.start.character:diff}),lastModifiedOffset=text.length;for(let i=sortedEdits.length-1;i>=0;i--){let e=sortedEdits[i],startOffset=document.offsetAt(e.range.start),endOffset=document.offsetAt(e.range.end);if(endOffset<=lastModifiedOffset)text=text.substring(0,startOffset)+e.newText+text.substring(endOffset,text.length);else throw new Error("Overlapping edit");lastModifiedOffset=startOffset}return text}TextDocument4.applyEdits=applyEdits;function mergeSort2(data,compare){if(data.length<=1)return data;let p=data.length/2|0,left=data.slice(0,p),right=data.slice(p);mergeSort2(left,compare),mergeSort2(right,compare);let leftIdx=0,rightIdx=0,i=0;for(;leftIdx<left.length&&rightIdx<right.length;)compare(left[leftIdx],right[rightIdx])<=0?data[i++]=left[leftIdx++]:data[i++]=right[rightIdx++];for(;leftIdx<left.length;)data[i++]=left[leftIdx++];for(;rightIdx<right.length;)data[i++]=right[rightIdx++];return data}})(TextDocument||(TextDocument={}));FullTextDocument=class{constructor(uri,languageId,version,content){this._uri=uri,this._languageId=languageId,this._version=version,this._content=content,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(range){if(range){let start=this.offsetAt(range.start),end=this.offsetAt(range.end);return this._content.substring(start,end)}return this._content}update(event,version){this._content=event.text,this._version=version,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let lineOffsets=[],text=this._content,isLineStart=!0;for(let i=0;i<text.length;i++){isLineStart&&(lineOffsets.push(i),isLineStart=!1);let ch=text.charAt(i);isLineStart=ch==="\r"||ch===`
10
10
  `,ch==="\r"&&i+1<text.length&&text.charAt(i+1)===`
@@ -38,7 +38,7 @@ ${JSON.stringify(message,null,4)}`);let responseMessage=message;if(Is3.string(re
38
38
 
39
39
  `:message.error===void 0&&(data=`No result returned.
40
40
 
41
- `)),responsePromise){let error=message.error?` Request failed: ${message.error.message} (${message.error.code}).`:"";tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now()-responsePromise.timerStart}ms.${error}`,data)}else tracer.log(`Received response ${message.id} without active response promise.`,data)}else logLSPMessage("receive-response",message)}function logLSPMessage(type,message){if(!tracer||trace===Trace.Off)return;let lspMessage={isLSPMessage:!0,type,message,timestamp:Date.now()};tracer.log(lspMessage)}function throwIfClosedOrDisposed(){if(isClosed())throw new ConnectionError(ConnectionErrors.Closed,"Connection is closed.");if(isDisposed())throw new ConnectionError(ConnectionErrors.Disposed,"Connection is disposed.")}function throwIfListening(){if(isListening())throw new ConnectionError(ConnectionErrors.AlreadyListening,"Connection is already listening")}function throwIfNotListening(){if(!isListening())throw new Error("Call listen() first.")}function undefinedToNull(param){return param===void 0?null:param}function nullToUndefined(param){if(param!==null)return param}function isNamedParam(param){return param!=null&&!Array.isArray(param)&&typeof param=="object"}function computeSingleParam(parameterStructures,param){switch(parameterStructures){case messages_1.ParameterStructures.auto:return isNamedParam(param)?nullToUndefined(param):[undefinedToNull(param)];case messages_1.ParameterStructures.byName:if(!isNamedParam(param))throw new Error("Received parameters by name but param is not an object literal.");return nullToUndefined(param);case messages_1.ParameterStructures.byPosition:return[undefinedToNull(param)];default:throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`)}}function computeMessageParams(type,params){let result,numberOfParams=type.numberOfParams;switch(numberOfParams){case 0:result=void 0;break;case 1:result=computeSingleParam(type.parameterStructures,params[0]);break;default:result=[];for(let i=0;i<params.length&&i<numberOfParams;i++)result.push(undefinedToNull(params[i]));if(params.length<numberOfParams)for(let i=params.length;i<numberOfParams;i++)result.push(null);break}return result}let connection2={sendNotification:(type,...args)=>{throwIfClosedOrDisposed();let method,messageParams;if(Is3.string(type)){method=type;let first=args[0],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length,numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' notification parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params)}let notificationMessage={jsonrpc:version,method,params:messageParams};return traceSendingNotification(notificationMessage),messageWriter.write(notificationMessage).catch(error=>{throw logger.error("Sending notification failed."),error})},onNotification:(type,handler)=>{throwIfClosedOrDisposed();let method;return Is3.func(type)?starNotificationHandler=type:handler&&(Is3.string(type)?(method=type,notificationHandlers.set(type,{type:void 0,handler})):(method=type.method,notificationHandlers.set(type.method,{type,handler}))),{dispose:()=>{method!==void 0?notificationHandlers.delete(method):starNotificationHandler=void 0}}},onProgress:(_type,token,handler)=>{if(progressHandlers.has(token))throw new Error(`Progress handler for token ${token} already registered`);return progressHandlers.set(token,handler),{dispose:()=>{progressHandlers.delete(token)}}},sendProgress:(_type,token,value)=>connection2.sendNotification(ProgressNotification.type,{token,value}),onUnhandledProgress:unhandledProgressEmitter.event,sendRequest:(type,...args)=>{throwIfClosedOrDisposed(),throwIfNotListening();let method,messageParams,token;if(Is3.string(type)){method=type;let first=args[0],last=args[args.length-1],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length;cancellation_1.CancellationToken.is(last)&&(paramEnd=paramEnd-1,token=last);let numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' request parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params);let numberOfParams=type.numberOfParams;token=cancellation_1.CancellationToken.is(params[numberOfParams])?params[numberOfParams]:void 0}let id=sequenceNumber++,disposable;token&&(disposable=token.onCancellationRequested(()=>{let p=cancellationStrategy.sender.sendCancellation(connection2,id);return p===void 0?(logger.log(`Received no promise from cancellation strategy when cancelling id ${id}`),Promise.resolve()):p.catch(()=>{logger.log(`Sending cancellation messages for id ${id} failed`)})}));let requestMessage={jsonrpc:version,id,method,params:messageParams};return traceSendingRequest(requestMessage),typeof cancellationStrategy.sender.enableCancellation=="function"&&cancellationStrategy.sender.enableCancellation(requestMessage),new Promise(async(resolve,reject)=>{let resolveWithCleanup=r=>{resolve(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},rejectWithCleanup=r=>{reject(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},responsePromise={method,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{await messageWriter.write(requestMessage),responsePromises.set(id,responsePromise)}catch(error){throw logger.error("Sending request failed."),responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError,error.message?error.message:"Unknown reason")),error}})},onRequest:(type,handler)=>{throwIfClosedOrDisposed();let method=null;return StarRequestHandler.is(type)?(method=void 0,starRequestHandler=type):Is3.string(type)?(method=null,handler!==void 0&&(method=type,requestHandlers.set(type,{handler,type:void 0}))):handler!==void 0&&(method=type.method,requestHandlers.set(type.method,{type,handler})),{dispose:()=>{method!==null&&(method!==void 0?requestHandlers.delete(method):starRequestHandler=void 0)}}},hasPendingResponse:()=>responsePromises.size>0,trace:async(_value,_tracer,sendNotificationOrTraceOptions)=>{let _sendNotification=!1,_traceFormat=TraceFormat.Text;sendNotificationOrTraceOptions!==void 0&&(Is3.boolean(sendNotificationOrTraceOptions)?_sendNotification=sendNotificationOrTraceOptions:(_sendNotification=sendNotificationOrTraceOptions.sendNotification||!1,_traceFormat=sendNotificationOrTraceOptions.traceFormat||TraceFormat.Text)),trace=_value,traceFormat=_traceFormat,trace===Trace.Off?tracer=void 0:tracer=_tracer,_sendNotification&&!isClosed()&&!isDisposed()&&await connection2.sendNotification(SetTraceNotification.type,{value:Trace.toString(_value)})},onError:errorEmitter.event,onClose:closeEmitter.event,onUnhandledNotification:unhandledNotificationEmitter.event,onDispose:disposeEmitter.event,end:()=>{messageWriter.end()},dispose:()=>{if(isDisposed())return;state=ConnectionState.Disposed,disposeEmitter.fire(void 0);let error=new messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let promise of responsePromises.values())promise.reject(error);responsePromises=new Map,requestTokens=new Map,knownCanceledRequests=new Set,messageQueue=new linkedMap_1.LinkedMap,Is3.func(messageWriter.dispose)&&messageWriter.dispose(),Is3.func(messageReader.dispose)&&messageReader.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),state=ConnectionState.Listening,messageReader.listen(callback)},inspect:()=>{(0,ral_1.default)().console.log("inspect")}};return connection2.onNotification(LogTraceNotification.type,params=>{if(trace===Trace.Off||!tracer)return;let verbose=trace===Trace.Verbose||trace===Trace.Compact;tracer.log(params.message,verbose?params.verbose:void 0)}),connection2.onNotification(ProgressNotification.type,params=>{let handler=progressHandlers.get(params.token);handler?handler(params.value):unhandledProgressEmitter.fire(params)}),connection2}exports.createMessageConnection=createMessageConnection}});var require_api4=__commonJS({"server/node_modules/vscode-jsonrpc/lib/common/api.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.ProgressType=exports.ProgressToken=exports.createMessageConnection=exports.NullLogger=exports.ConnectionOptions=exports.ConnectionStrategy=exports.AbstractMessageBuffer=exports.WriteableStreamMessageWriter=exports.AbstractMessageWriter=exports.MessageWriter=exports.ReadableStreamMessageReader=exports.AbstractMessageReader=exports.MessageReader=exports.SharedArrayReceiverStrategy=exports.SharedArraySenderStrategy=exports.CancellationToken=exports.CancellationTokenSource=exports.Emitter=exports.Event=exports.Disposable=exports.LRUCache=exports.Touch=exports.LinkedMap=exports.ParameterStructures=exports.NotificationType9=exports.NotificationType8=exports.NotificationType7=exports.NotificationType6=exports.NotificationType5=exports.NotificationType4=exports.NotificationType3=exports.NotificationType2=exports.NotificationType1=exports.NotificationType0=exports.NotificationType=exports.ErrorCodes=exports.ResponseError=exports.RequestType9=exports.RequestType8=exports.RequestType7=exports.RequestType6=exports.RequestType5=exports.RequestType4=exports.RequestType3=exports.RequestType2=exports.RequestType1=exports.RequestType0=exports.RequestType=exports.Message=exports.RAL=void 0;exports.MessageStrategy=exports.CancellationStrategy=exports.CancellationSenderStrategy=exports.CancellationReceiverStrategy=exports.ConnectionError=exports.ConnectionErrors=exports.LogTraceNotification=exports.SetTraceNotification=exports.TraceFormat=exports.TraceValues=exports.Trace=void 0;var messages_1=require_messages3();Object.defineProperty(exports,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap2();Object.defineProperty(exports,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable2();Object.defineProperty(exports,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events2();Object.defineProperty(exports,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation2();Object.defineProperty(exports,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation2();Object.defineProperty(exports,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader2();Object.defineProperty(exports,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter2();Object.defineProperty(exports,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer2();Object.defineProperty(exports,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection3();Object.defineProperty(exports,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});Object.defineProperty(exports,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});var ral_1=require_ral2();exports.RAL=ral_1.default}});var require_ril2=__commonJS({"server/node_modules/vscode-jsonrpc/lib/browser/ril.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var api_1=require_api4(),MessageBuffer=class _MessageBuffer extends api_1.AbstractMessageBuffer{constructor(encoding="utf-8"){super(encoding),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return _MessageBuffer.emptyBuffer}fromString(value,_encoding){return new TextEncoder().encode(value)}toString(value,encoding){return encoding==="ascii"?this.asciiDecoder.decode(value):new TextDecoder(encoding).decode(value)}asNative(buffer,length){return length===void 0?buffer:buffer.slice(0,length)}allocNative(length){return new Uint8Array(length)}};MessageBuffer.emptyBuffer=new Uint8Array(0);var ReadableStreamWrapper=class{constructor(socket){this.socket=socket,this._onData=new api_1.Emitter,this._messageListener=event=>{event.data.arrayBuffer().then(buffer=>{this._onData.fire(new Uint8Array(buffer))},()=>{(0,api_1.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(listener){return this.socket.addEventListener("close",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("close",listener))}onError(listener){return this.socket.addEventListener("error",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("error",listener))}onEnd(listener){return this.socket.addEventListener("end",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("end",listener))}onData(listener){return this._onData.event(listener)}},WritableStreamWrapper=class{constructor(socket){this.socket=socket}onClose(listener){return this.socket.addEventListener("close",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("close",listener))}onError(listener){return this.socket.addEventListener("error",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("error",listener))}onEnd(listener){return this.socket.addEventListener("end",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("end",listener))}write(data,encoding){if(typeof data=="string"){if(encoding!==void 0&&encoding!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${encoding}`);this.socket.send(data)}else this.socket.send(data);return Promise.resolve()}end(){this.socket.close()}},_textEncoder=new TextEncoder,_ril=Object.freeze({messageBuffer:Object.freeze({create:encoding=>new MessageBuffer(encoding)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(msg,options)=>{if(options.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${options.charset}`);return Promise.resolve(_textEncoder.encode(JSON.stringify(msg,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(buffer,options)=>{if(!(buffer instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(options.charset).decode(buffer)))}})}),stream:Object.freeze({asReadableStream:socket=>new ReadableStreamWrapper(socket),asWritableStream:socket=>new WritableStreamWrapper(socket)}),console,timer:Object.freeze({setTimeout(callback,ms,...args){let handle=setTimeout(callback,ms,...args);return{dispose:()=>clearTimeout(handle)}},setImmediate(callback,...args){let handle=setTimeout(callback,0,...args);return{dispose:()=>clearTimeout(handle)}},setInterval(callback,ms,...args){let handle=setInterval(callback,ms,...args);return{dispose:()=>clearInterval(handle)}}})});function RIL(){return _ril}(function(RIL2){function install(){api_1.RAL.install(_ril)}RIL2.install=install})(RIL||(RIL={}));exports.default=RIL}});var require_main4=__commonJS({"server/node_modules/vscode-jsonrpc/lib/browser/main.js"(exports){"use strict";var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m2,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m2,k);(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m2[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m2,k,k2){k2===void 0&&(k2=k),o[k2]=m2[k]})),__exportStar=exports&&exports.__exportStar||function(m2,exports2){for(var p in m2)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p)&&__createBinding(exports2,m2,p)};Object.defineProperty(exports,"__esModule",{value:!0});exports.createMessageConnection=exports.BrowserMessageWriter=exports.BrowserMessageReader=void 0;var ril_1=require_ril2();ril_1.default.install();var api_1=require_api4();__exportStar(require_api4(),exports);var BrowserMessageReader2=class extends api_1.AbstractMessageReader{constructor(port){super(),this._onData=new api_1.Emitter,this._messageListener=event=>{this._onData.fire(event.data)},port.addEventListener("error",event=>this.fireError(event)),port.onmessage=this._messageListener}listen(callback){return this._onData.event(callback)}};exports.BrowserMessageReader=BrowserMessageReader2;var BrowserMessageWriter2=class extends api_1.AbstractMessageWriter{constructor(port){super(),this.port=port,this.errorCount=0,port.addEventListener("error",event=>this.fireError(event))}write(msg){try{return this.port.postMessage(msg),Promise.resolve()}catch(error){return this.handleError(error,msg),Promise.reject(error)}}handleError(error,msg){this.errorCount++,this.fireError(error,msg,this.errorCount)}end(){}};exports.BrowserMessageWriter=BrowserMessageWriter2;function createMessageConnection(reader,writer,logger,options){return logger===void 0&&(logger=api_1.NullLogger),api_1.ConnectionStrategy.is(options)&&(options={connectionStrategy:options}),(0,api_1.createMessageConnection)(reader,writer,logger,options)}exports.createMessageConnection=createMessageConnection}});var require_browser=__commonJS({"server/node_modules/vscode-jsonrpc/browser.js"(exports,module){"use strict";module.exports=require_main4()}});var main_exports2={};__export(main_exports2,{AnnotatedTextEdit:()=>AnnotatedTextEdit2,ChangeAnnotation:()=>ChangeAnnotation2,ChangeAnnotationIdentifier:()=>ChangeAnnotationIdentifier2,CodeAction:()=>CodeAction2,CodeActionContext:()=>CodeActionContext2,CodeActionKind:()=>CodeActionKind2,CodeActionTriggerKind:()=>CodeActionTriggerKind2,CodeDescription:()=>CodeDescription2,CodeLens:()=>CodeLens2,Color:()=>Color2,ColorInformation:()=>ColorInformation2,ColorPresentation:()=>ColorPresentation2,Command:()=>Command2,CompletionItem:()=>CompletionItem2,CompletionItemKind:()=>CompletionItemKind2,CompletionItemLabelDetails:()=>CompletionItemLabelDetails2,CompletionItemTag:()=>CompletionItemTag2,CompletionList:()=>CompletionList2,CreateFile:()=>CreateFile2,DeleteFile:()=>DeleteFile2,Diagnostic:()=>Diagnostic2,DiagnosticRelatedInformation:()=>DiagnosticRelatedInformation2,DiagnosticSeverity:()=>DiagnosticSeverity2,DiagnosticTag:()=>DiagnosticTag2,DocumentHighlight:()=>DocumentHighlight2,DocumentHighlightKind:()=>DocumentHighlightKind2,DocumentLink:()=>DocumentLink2,DocumentSymbol:()=>DocumentSymbol2,DocumentUri:()=>DocumentUri2,EOL:()=>EOL2,FoldingRange:()=>FoldingRange2,FoldingRangeKind:()=>FoldingRangeKind2,FormattingOptions:()=>FormattingOptions2,Hover:()=>Hover2,InlayHint:()=>InlayHint2,InlayHintKind:()=>InlayHintKind2,InlayHintLabelPart:()=>InlayHintLabelPart2,InlineCompletionContext:()=>InlineCompletionContext2,InlineCompletionItem:()=>InlineCompletionItem2,InlineCompletionList:()=>InlineCompletionList2,InlineCompletionTriggerKind:()=>InlineCompletionTriggerKind2,InlineValueContext:()=>InlineValueContext2,InlineValueEvaluatableExpression:()=>InlineValueEvaluatableExpression2,InlineValueText:()=>InlineValueText2,InlineValueVariableLookup:()=>InlineValueVariableLookup2,InsertReplaceEdit:()=>InsertReplaceEdit2,InsertTextFormat:()=>InsertTextFormat2,InsertTextMode:()=>InsertTextMode2,Location:()=>Location2,LocationLink:()=>LocationLink2,MarkedString:()=>MarkedString2,MarkupContent:()=>MarkupContent2,MarkupKind:()=>MarkupKind2,OptionalVersionedTextDocumentIdentifier:()=>OptionalVersionedTextDocumentIdentifier2,ParameterInformation:()=>ParameterInformation2,Position:()=>Position2,Range:()=>Range2,RenameFile:()=>RenameFile2,SelectedCompletionInfo:()=>SelectedCompletionInfo2,SelectionRange:()=>SelectionRange2,SemanticTokenModifiers:()=>SemanticTokenModifiers2,SemanticTokenTypes:()=>SemanticTokenTypes2,SemanticTokens:()=>SemanticTokens2,SignatureInformation:()=>SignatureInformation2,StringValue:()=>StringValue2,SymbolInformation:()=>SymbolInformation2,SymbolKind:()=>SymbolKind2,SymbolTag:()=>SymbolTag2,TextDocument:()=>TextDocument3,TextDocumentEdit:()=>TextDocumentEdit2,TextDocumentIdentifier:()=>TextDocumentIdentifier2,TextDocumentItem:()=>TextDocumentItem2,TextEdit:()=>TextEdit2,URI:()=>URI2,VersionedTextDocumentIdentifier:()=>VersionedTextDocumentIdentifier2,WorkspaceChange:()=>WorkspaceChange2,WorkspaceEdit:()=>WorkspaceEdit2,WorkspaceFolder:()=>WorkspaceFolder2,WorkspaceSymbol:()=>WorkspaceSymbol2,integer:()=>integer2,uinteger:()=>uinteger2});var DocumentUri2,URI2,integer2,uinteger2,Position2,Range2,Location2,LocationLink2,Color2,ColorInformation2,ColorPresentation2,FoldingRangeKind2,FoldingRange2,DiagnosticRelatedInformation2,DiagnosticSeverity2,DiagnosticTag2,CodeDescription2,Diagnostic2,Command2,TextEdit2,ChangeAnnotation2,ChangeAnnotationIdentifier2,AnnotatedTextEdit2,TextDocumentEdit2,CreateFile2,RenameFile2,DeleteFile2,WorkspaceEdit2,TextEditChangeImpl2,ChangeAnnotations2,WorkspaceChange2,TextDocumentIdentifier2,VersionedTextDocumentIdentifier2,OptionalVersionedTextDocumentIdentifier2,TextDocumentItem2,MarkupKind2,MarkupContent2,CompletionItemKind2,InsertTextFormat2,CompletionItemTag2,InsertReplaceEdit2,InsertTextMode2,CompletionItemLabelDetails2,CompletionItem2,CompletionList2,MarkedString2,Hover2,ParameterInformation2,SignatureInformation2,DocumentHighlightKind2,DocumentHighlight2,SymbolKind2,SymbolTag2,SymbolInformation2,WorkspaceSymbol2,DocumentSymbol2,CodeActionKind2,CodeActionTriggerKind2,CodeActionContext2,CodeAction2,CodeLens2,FormattingOptions2,DocumentLink2,SelectionRange2,SemanticTokenTypes2,SemanticTokenModifiers2,SemanticTokens2,InlineValueText2,InlineValueVariableLookup2,InlineValueEvaluatableExpression2,InlineValueContext2,InlayHintKind2,InlayHintLabelPart2,InlayHint2,StringValue2,InlineCompletionItem2,InlineCompletionList2,InlineCompletionTriggerKind2,SelectedCompletionInfo2,InlineCompletionContext2,WorkspaceFolder2,EOL2,TextDocument3,FullTextDocument3,Is2,init_main2=__esm({"server/node_modules/vscode-languageserver-types/lib/esm/main.js"(){"use strict";(function(DocumentUri3){function is(value){return typeof value=="string"}DocumentUri3.is=is})(DocumentUri2||(DocumentUri2={}));(function(URI3){function is(value){return typeof value=="string"}URI3.is=is})(URI2||(URI2={}));(function(integer3){integer3.MIN_VALUE=-2147483648,integer3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer3.MIN_VALUE<=value&&value<=integer3.MAX_VALUE}integer3.is=is})(integer2||(integer2={}));(function(uinteger3){uinteger3.MIN_VALUE=0,uinteger3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger3.MIN_VALUE<=value&&value<=uinteger3.MAX_VALUE}uinteger3.is=is})(uinteger2||(uinteger2={}));(function(Position4){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger2.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger2.MAX_VALUE),{line,character}}Position4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.uinteger(candidate.line)&&Is2.uinteger(candidate.character)}Position4.is=is})(Position2||(Position2={}));(function(Range4){function create(one,two,three,four){if(Is2.uinteger(one)&&Is2.uinteger(two)&&Is2.uinteger(three)&&Is2.uinteger(four))return{start:Position2.create(one,two),end:Position2.create(three,four)};if(Position2.is(one)&&Position2.is(two))return{start:one,end:two};throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`)}Range4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Position2.is(candidate.start)&&Position2.is(candidate.end)}Range4.is=is})(Range2||(Range2={}));(function(Location4){function create(uri,range){return{uri,range}}Location4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&(Is2.string(candidate.uri)||Is2.undefined(candidate.uri))}Location4.is=is})(Location2||(Location2={}));(function(LocationLink3){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.targetRange)&&Is2.string(candidate.targetUri)&&Range2.is(candidate.targetSelectionRange)&&(Range2.is(candidate.originSelectionRange)||Is2.undefined(candidate.originSelectionRange))}LocationLink3.is=is})(LocationLink2||(LocationLink2={}));(function(Color3){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.numberRange(candidate.red,0,1)&&Is2.numberRange(candidate.green,0,1)&&Is2.numberRange(candidate.blue,0,1)&&Is2.numberRange(candidate.alpha,0,1)}Color3.is=is})(Color2||(Color2={}));(function(ColorInformation3){function create(range,color){return{range,color}}ColorInformation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&Color2.is(candidate.color)}ColorInformation3.is=is})(ColorInformation2||(ColorInformation2={}));(function(ColorPresentation3){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.label)&&(Is2.undefined(candidate.textEdit)||TextEdit2.is(candidate))&&(Is2.undefined(candidate.additionalTextEdits)||Is2.typedArray(candidate.additionalTextEdits,TextEdit2.is))}ColorPresentation3.is=is})(ColorPresentation2||(ColorPresentation2={}));(function(FoldingRangeKind4){FoldingRangeKind4.Comment="comment",FoldingRangeKind4.Imports="imports",FoldingRangeKind4.Region="region"})(FoldingRangeKind2||(FoldingRangeKind2={}));(function(FoldingRange5){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){let result={startLine,endLine};return Is2.defined(startCharacter)&&(result.startCharacter=startCharacter),Is2.defined(endCharacter)&&(result.endCharacter=endCharacter),Is2.defined(kind)&&(result.kind=kind),Is2.defined(collapsedText)&&(result.collapsedText=collapsedText),result}FoldingRange5.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.uinteger(candidate.startLine)&&Is2.uinteger(candidate.startLine)&&(Is2.undefined(candidate.startCharacter)||Is2.uinteger(candidate.startCharacter))&&(Is2.undefined(candidate.endCharacter)||Is2.uinteger(candidate.endCharacter))&&(Is2.undefined(candidate.kind)||Is2.string(candidate.kind))}FoldingRange5.is=is})(FoldingRange2||(FoldingRange2={}));(function(DiagnosticRelatedInformation3){function create(location,message){return{location,message}}DiagnosticRelatedInformation3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Location2.is(candidate.location)&&Is2.string(candidate.message)}DiagnosticRelatedInformation3.is=is})(DiagnosticRelatedInformation2||(DiagnosticRelatedInformation2={}));(function(DiagnosticSeverity7){DiagnosticSeverity7.Error=1,DiagnosticSeverity7.Warning=2,DiagnosticSeverity7.Information=3,DiagnosticSeverity7.Hint=4})(DiagnosticSeverity2||(DiagnosticSeverity2={}));(function(DiagnosticTag3){DiagnosticTag3.Unnecessary=1,DiagnosticTag3.Deprecated=2})(DiagnosticTag2||(DiagnosticTag2={}));(function(CodeDescription3){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.href)}CodeDescription3.is=is})(CodeDescription2||(CodeDescription2={}));(function(Diagnostic7){function create(range,message,severity,code,source,relatedInformation){let result={range,message};return Is2.defined(severity)&&(result.severity=severity),Is2.defined(code)&&(result.code=code),Is2.defined(source)&&(result.source=source),Is2.defined(relatedInformation)&&(result.relatedInformation=relatedInformation),result}Diagnostic7.create=create;function is(value){var _a;let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&Is2.string(candidate.message)&&(Is2.number(candidate.severity)||Is2.undefined(candidate.severity))&&(Is2.integer(candidate.code)||Is2.string(candidate.code)||Is2.undefined(candidate.code))&&(Is2.undefined(candidate.codeDescription)||Is2.string((_a=candidate.codeDescription)===null||_a===void 0?void 0:_a.href))&&(Is2.string(candidate.source)||Is2.undefined(candidate.source))&&(Is2.undefined(candidate.relatedInformation)||Is2.typedArray(candidate.relatedInformation,DiagnosticRelatedInformation2.is))}Diagnostic7.is=is})(Diagnostic2||(Diagnostic2={}));(function(Command3){function create(title,command,...args){let result={title,command};return Is2.defined(args)&&args.length>0&&(result.arguments=args),result}Command3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.title)&&Is2.string(candidate.command)}Command3.is=is})(Command2||(Command2={}));(function(TextEdit6){function replace(range,newText){return{range,newText}}TextEdit6.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit6.insert=insert;function del(range){return{range,newText:""}}TextEdit6.del=del;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.newText)&&Range2.is(candidate.range)}TextEdit6.is=is})(TextEdit2||(TextEdit2={}));(function(ChangeAnnotation3){function create(label,needsConfirmation,description){let result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.label)&&(Is2.boolean(candidate.needsConfirmation)||candidate.needsConfirmation===void 0)&&(Is2.string(candidate.description)||candidate.description===void 0)}ChangeAnnotation3.is=is})(ChangeAnnotation2||(ChangeAnnotation2={}));(function(ChangeAnnotationIdentifier3){function is(value){let candidate=value;return Is2.string(candidate)}ChangeAnnotationIdentifier3.is=is})(ChangeAnnotationIdentifier2||(ChangeAnnotationIdentifier2={}));(function(AnnotatedTextEdit3){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit3.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit3.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit3.del=del;function is(value){let candidate=value;return TextEdit2.is(candidate)&&(ChangeAnnotation2.is(candidate.annotationId)||ChangeAnnotationIdentifier2.is(candidate.annotationId))}AnnotatedTextEdit3.is=is})(AnnotatedTextEdit2||(AnnotatedTextEdit2={}));(function(TextDocumentEdit3){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&OptionalVersionedTextDocumentIdentifier2.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit3.is=is})(TextDocumentEdit2||(TextDocumentEdit2={}));(function(CreateFile3){function create(uri,options,annotation){let result={kind:"create",uri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}CreateFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="create"&&Is2.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is2.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is2.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}CreateFile3.is=is})(CreateFile2||(CreateFile2={}));(function(RenameFile3){function create(oldUri,newUri,options,annotation){let result={kind:"rename",oldUri,newUri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}RenameFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="rename"&&Is2.string(candidate.oldUri)&&Is2.string(candidate.newUri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is2.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is2.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}RenameFile3.is=is})(RenameFile2||(RenameFile2={}));(function(DeleteFile3){function create(uri,options,annotation){let result={kind:"delete",uri};return options!==void 0&&(options.recursive!==void 0||options.ignoreIfNotExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}DeleteFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="delete"&&Is2.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.recursive===void 0||Is2.boolean(candidate.options.recursive))&&(candidate.options.ignoreIfNotExists===void 0||Is2.boolean(candidate.options.ignoreIfNotExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}DeleteFile3.is=is})(DeleteFile2||(DeleteFile2={}));(function(WorkspaceEdit5){function is(value){let candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(change=>Is2.string(change.kind)?CreateFile2.is(change)||RenameFile2.is(change)||DeleteFile2.is(change):TextDocumentEdit2.is(change)))}WorkspaceEdit5.is=is})(WorkspaceEdit2||(WorkspaceEdit2={}));TextEditChangeImpl2=class{constructor(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}insert(position,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.insert(position,newText):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.insert(position,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.insert(position,newText,id)),this.edits.push(edit),id!==void 0)return id}replace(range,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.replace(range,newText):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.replace(range,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.replace(range,newText,id)),this.edits.push(edit),id!==void 0)return id}delete(range,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.del(range):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.del(range,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.del(range,id)),this.edits.push(edit),id!==void 0)return id}add(edit){this.edits.push(edit)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}},ChangeAnnotations2=class{constructor(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(idOrAnnotation,annotation){let id;if(ChangeAnnotationIdentifier2.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error(`Id ${id} is already in use.`);if(annotation===void 0)throw new Error(`No annotation provided for id ${id}`);return this._annotations[id]=annotation,this._size++,id}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange2=class{constructor(workspaceEdit){this._textEditChanges=Object.create(null),workspaceEdit!==void 0?(this._workspaceEdit=workspaceEdit,workspaceEdit.documentChanges?(this._changeAnnotations=new ChangeAnnotations2(workspaceEdit.changeAnnotations),workspaceEdit.changeAnnotations=this._changeAnnotations.all(),workspaceEdit.documentChanges.forEach(change=>{if(TextDocumentEdit2.is(change)){let textEditChange=new TextEditChangeImpl2(change.edits,this._changeAnnotations);this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(key=>{let textEditChange=new TextEditChangeImpl2(workspaceEdit.changes[key]);this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(key){if(OptionalVersionedTextDocumentIdentifier2.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){let edits=[],textDocumentEdit={textDocument,edits};this._workspaceEdit.documentChanges.push(textDocumentEdit),result=new TextEditChangeImpl2(edits,this._changeAnnotations),this._textEditChanges[textDocument.uri]=result}return result}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let result=this._textEditChanges[key];if(!result){let edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl2(edits),this._textEditChanges[key]=result}return result}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations2,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=CreateFile2.create(uri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=CreateFile2.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}renameFile(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=RenameFile2.create(oldUri,newUri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=RenameFile2.create(oldUri,newUri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}deleteFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=DeleteFile2.create(uri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=DeleteFile2.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}};(function(TextDocumentIdentifier3){function create(uri){return{uri}}TextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)}TextDocumentIdentifier3.is=is})(TextDocumentIdentifier2||(TextDocumentIdentifier2={}));(function(VersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&Is2.integer(candidate.version)}VersionedTextDocumentIdentifier3.is=is})(VersionedTextDocumentIdentifier2||(VersionedTextDocumentIdentifier2={}));(function(OptionalVersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&(candidate.version===null||Is2.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier3.is=is})(OptionalVersionedTextDocumentIdentifier2||(OptionalVersionedTextDocumentIdentifier2={}));(function(TextDocumentItem3){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&Is2.string(candidate.languageId)&&Is2.integer(candidate.version)&&Is2.string(candidate.text)}TextDocumentItem3.is=is})(TextDocumentItem2||(TextDocumentItem2={}));(function(MarkupKind4){MarkupKind4.PlainText="plaintext",MarkupKind4.Markdown="markdown";function is(value){let candidate=value;return candidate===MarkupKind4.PlainText||candidate===MarkupKind4.Markdown}MarkupKind4.is=is})(MarkupKind2||(MarkupKind2={}));(function(MarkupContent4){function is(value){let candidate=value;return Is2.objectLiteral(value)&&MarkupKind2.is(candidate.kind)&&Is2.string(candidate.value)}MarkupContent4.is=is})(MarkupContent2||(MarkupContent2={}));(function(CompletionItemKind4){CompletionItemKind4.Text=1,CompletionItemKind4.Method=2,CompletionItemKind4.Function=3,CompletionItemKind4.Constructor=4,CompletionItemKind4.Field=5,CompletionItemKind4.Variable=6,CompletionItemKind4.Class=7,CompletionItemKind4.Interface=8,CompletionItemKind4.Module=9,CompletionItemKind4.Property=10,CompletionItemKind4.Unit=11,CompletionItemKind4.Value=12,CompletionItemKind4.Enum=13,CompletionItemKind4.Keyword=14,CompletionItemKind4.Snippet=15,CompletionItemKind4.Color=16,CompletionItemKind4.File=17,CompletionItemKind4.Reference=18,CompletionItemKind4.Folder=19,CompletionItemKind4.EnumMember=20,CompletionItemKind4.Constant=21,CompletionItemKind4.Struct=22,CompletionItemKind4.Event=23,CompletionItemKind4.Operator=24,CompletionItemKind4.TypeParameter=25})(CompletionItemKind2||(CompletionItemKind2={}));(function(InsertTextFormat4){InsertTextFormat4.PlainText=1,InsertTextFormat4.Snippet=2})(InsertTextFormat2||(InsertTextFormat2={}));(function(CompletionItemTag3){CompletionItemTag3.Deprecated=1})(CompletionItemTag2||(CompletionItemTag2={}));(function(InsertReplaceEdit3){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit3.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.newText)&&Range2.is(candidate.insert)&&Range2.is(candidate.replace)}InsertReplaceEdit3.is=is})(InsertReplaceEdit2||(InsertReplaceEdit2={}));(function(InsertTextMode3){InsertTextMode3.asIs=1,InsertTextMode3.adjustIndentation=2})(InsertTextMode2||(InsertTextMode2={}));(function(CompletionItemLabelDetails3){function is(value){let candidate=value;return candidate&&(Is2.string(candidate.detail)||candidate.detail===void 0)&&(Is2.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails3.is=is})(CompletionItemLabelDetails2||(CompletionItemLabelDetails2={}));(function(CompletionItem5){function create(label){return{label}}CompletionItem5.create=create})(CompletionItem2||(CompletionItem2={}));(function(CompletionList3){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList3.create=create})(CompletionList2||(CompletionList2={}));(function(MarkedString3){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString3.fromPlainText=fromPlainText;function is(value){let candidate=value;return Is2.string(candidate)||Is2.objectLiteral(candidate)&&Is2.string(candidate.language)&&Is2.string(candidate.value)}MarkedString3.is=is})(MarkedString2||(MarkedString2={}));(function(Hover5){function is(value){let candidate=value;return!!candidate&&Is2.objectLiteral(candidate)&&(MarkupContent2.is(candidate.contents)||MarkedString2.is(candidate.contents)||Is2.typedArray(candidate.contents,MarkedString2.is))&&(value.range===void 0||Range2.is(value.range))}Hover5.is=is})(Hover2||(Hover2={}));(function(ParameterInformation3){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation3.create=create})(ParameterInformation2||(ParameterInformation2={}));(function(SignatureInformation3){function create(label,documentation,...parameters){let result={label};return Is2.defined(documentation)&&(result.documentation=documentation),Is2.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation3.create=create})(SignatureInformation2||(SignatureInformation2={}));(function(DocumentHighlightKind3){DocumentHighlightKind3.Text=1,DocumentHighlightKind3.Read=2,DocumentHighlightKind3.Write=3})(DocumentHighlightKind2||(DocumentHighlightKind2={}));(function(DocumentHighlight3){function create(range,kind){let result={range};return Is2.number(kind)&&(result.kind=kind),result}DocumentHighlight3.create=create})(DocumentHighlight2||(DocumentHighlight2={}));(function(SymbolKind4){SymbolKind4.File=1,SymbolKind4.Module=2,SymbolKind4.Namespace=3,SymbolKind4.Package=4,SymbolKind4.Class=5,SymbolKind4.Method=6,SymbolKind4.Property=7,SymbolKind4.Field=8,SymbolKind4.Constructor=9,SymbolKind4.Enum=10,SymbolKind4.Interface=11,SymbolKind4.Function=12,SymbolKind4.Variable=13,SymbolKind4.Constant=14,SymbolKind4.String=15,SymbolKind4.Number=16,SymbolKind4.Boolean=17,SymbolKind4.Array=18,SymbolKind4.Object=19,SymbolKind4.Key=20,SymbolKind4.Null=21,SymbolKind4.EnumMember=22,SymbolKind4.Struct=23,SymbolKind4.Event=24,SymbolKind4.Operator=25,SymbolKind4.TypeParameter=26})(SymbolKind2||(SymbolKind2={}));(function(SymbolTag3){SymbolTag3.Deprecated=1})(SymbolTag2||(SymbolTag2={}));(function(SymbolInformation3){function create(name,kind,range,uri,containerName){let result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation3.create=create})(SymbolInformation2||(SymbolInformation2={}));(function(WorkspaceSymbol3){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol3.create=create})(WorkspaceSymbol2||(WorkspaceSymbol2={}));(function(DocumentSymbol4){function create(name,detail,kind,range,selectionRange,children){let result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol4.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.name)&&Is2.number(candidate.kind)&&Range2.is(candidate.range)&&Range2.is(candidate.selectionRange)&&(candidate.detail===void 0||Is2.string(candidate.detail))&&(candidate.deprecated===void 0||Is2.boolean(candidate.deprecated))&&(candidate.children===void 0||Array.isArray(candidate.children))&&(candidate.tags===void 0||Array.isArray(candidate.tags))}DocumentSymbol4.is=is})(DocumentSymbol2||(DocumentSymbol2={}));(function(CodeActionKind5){CodeActionKind5.Empty="",CodeActionKind5.QuickFix="quickfix",CodeActionKind5.Refactor="refactor",CodeActionKind5.RefactorExtract="refactor.extract",CodeActionKind5.RefactorInline="refactor.inline",CodeActionKind5.RefactorRewrite="refactor.rewrite",CodeActionKind5.Source="source",CodeActionKind5.SourceOrganizeImports="source.organizeImports",CodeActionKind5.SourceFixAll="source.fixAll"})(CodeActionKind2||(CodeActionKind2={}));(function(CodeActionTriggerKind3){CodeActionTriggerKind3.Invoked=1,CodeActionTriggerKind3.Automatic=2})(CodeActionTriggerKind2||(CodeActionTriggerKind2={}));(function(CodeActionContext3){function create(diagnostics,only,triggerKind){let result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.typedArray(candidate.diagnostics,Diagnostic2.is)&&(candidate.only===void 0||Is2.typedArray(candidate.only,Is2.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind2.Invoked||candidate.triggerKind===CodeActionTriggerKind2.Automatic)}CodeActionContext3.is=is})(CodeActionContext2||(CodeActionContext2={}));(function(CodeAction4){function create(title,kindOrCommandOrEdit,kind){let result={title},checkKind=!0;return typeof kindOrCommandOrEdit=="string"?(checkKind=!1,result.kind=kindOrCommandOrEdit):Command2.is(kindOrCommandOrEdit)?result.command=kindOrCommandOrEdit:result.edit=kindOrCommandOrEdit,checkKind&&kind!==void 0&&(result.kind=kind),result}CodeAction4.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.title)&&(candidate.diagnostics===void 0||Is2.typedArray(candidate.diagnostics,Diagnostic2.is))&&(candidate.kind===void 0||Is2.string(candidate.kind))&&(candidate.edit!==void 0||candidate.command!==void 0)&&(candidate.command===void 0||Command2.is(candidate.command))&&(candidate.isPreferred===void 0||Is2.boolean(candidate.isPreferred))&&(candidate.edit===void 0||WorkspaceEdit2.is(candidate.edit))}CodeAction4.is=is})(CodeAction2||(CodeAction2={}));(function(CodeLens3){function create(range,data){let result={range};return Is2.defined(data)&&(result.data=data),result}CodeLens3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&(Is2.undefined(candidate.command)||Command2.is(candidate.command))}CodeLens3.is=is})(CodeLens2||(CodeLens2={}));(function(FormattingOptions3){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.uinteger(candidate.tabSize)&&Is2.boolean(candidate.insertSpaces)}FormattingOptions3.is=is})(FormattingOptions2||(FormattingOptions2={}));(function(DocumentLink3){function create(range,target,data){return{range,target,data}}DocumentLink3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&(Is2.undefined(candidate.target)||Is2.string(candidate.target))}DocumentLink3.is=is})(DocumentLink2||(DocumentLink2={}));(function(SelectionRange3){function create(range,parent){return{range,parent}}SelectionRange3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&(candidate.parent===void 0||SelectionRange3.is(candidate.parent))}SelectionRange3.is=is})(SelectionRange2||(SelectionRange2={}));(function(SemanticTokenTypes3){SemanticTokenTypes3.namespace="namespace",SemanticTokenTypes3.type="type",SemanticTokenTypes3.class="class",SemanticTokenTypes3.enum="enum",SemanticTokenTypes3.interface="interface",SemanticTokenTypes3.struct="struct",SemanticTokenTypes3.typeParameter="typeParameter",SemanticTokenTypes3.parameter="parameter",SemanticTokenTypes3.variable="variable",SemanticTokenTypes3.property="property",SemanticTokenTypes3.enumMember="enumMember",SemanticTokenTypes3.event="event",SemanticTokenTypes3.function="function",SemanticTokenTypes3.method="method",SemanticTokenTypes3.macro="macro",SemanticTokenTypes3.keyword="keyword",SemanticTokenTypes3.modifier="modifier",SemanticTokenTypes3.comment="comment",SemanticTokenTypes3.string="string",SemanticTokenTypes3.number="number",SemanticTokenTypes3.regexp="regexp",SemanticTokenTypes3.operator="operator",SemanticTokenTypes3.decorator="decorator"})(SemanticTokenTypes2||(SemanticTokenTypes2={}));(function(SemanticTokenModifiers3){SemanticTokenModifiers3.declaration="declaration",SemanticTokenModifiers3.definition="definition",SemanticTokenModifiers3.readonly="readonly",SemanticTokenModifiers3.static="static",SemanticTokenModifiers3.deprecated="deprecated",SemanticTokenModifiers3.abstract="abstract",SemanticTokenModifiers3.async="async",SemanticTokenModifiers3.modification="modification",SemanticTokenModifiers3.documentation="documentation",SemanticTokenModifiers3.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers2||(SemanticTokenModifiers2={}));(function(SemanticTokens5){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&(candidate.resultId===void 0||typeof candidate.resultId=="string")&&Array.isArray(candidate.data)&&(candidate.data.length===0||typeof candidate.data[0]=="number")}SemanticTokens5.is=is})(SemanticTokens2||(SemanticTokens2={}));(function(InlineValueText3){function create(range,text){return{range,text}}InlineValueText3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is2.string(candidate.text)}InlineValueText3.is=is})(InlineValueText2||(InlineValueText2={}));(function(InlineValueVariableLookup3){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is2.boolean(candidate.caseSensitiveLookup)&&(Is2.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup3.is=is})(InlineValueVariableLookup2||(InlineValueVariableLookup2={}));(function(InlineValueEvaluatableExpression3){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&(Is2.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression3.is=is})(InlineValueEvaluatableExpression2||(InlineValueEvaluatableExpression2={}));(function(InlineValueContext3){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(value.stoppedLocation)}InlineValueContext3.is=is})(InlineValueContext2||(InlineValueContext2={}));(function(InlayHintKind3){InlayHintKind3.Type=1,InlayHintKind3.Parameter=2;function is(value){return value===1||value===2}InlayHintKind3.is=is})(InlayHintKind2||(InlayHintKind2={}));(function(InlayHintLabelPart3){function create(value){return{value}}InlayHintLabelPart3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is2.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.location===void 0||Location2.is(candidate.location))&&(candidate.command===void 0||Command2.is(candidate.command))}InlayHintLabelPart3.is=is})(InlayHintLabelPart2||(InlayHintLabelPart2={}));(function(InlayHint3){function create(position,label,kind){let result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Position2.is(candidate.position)&&(Is2.string(candidate.label)||Is2.typedArray(candidate.label,InlayHintLabelPart2.is))&&(candidate.kind===void 0||InlayHintKind2.is(candidate.kind))&&candidate.textEdits===void 0||Is2.typedArray(candidate.textEdits,TextEdit2.is)&&(candidate.tooltip===void 0||Is2.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is2.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is2.boolean(candidate.paddingRight))}InlayHint3.is=is})(InlayHint2||(InlayHint2={}));(function(StringValue3){function createSnippet(value){return{kind:"snippet",value}}StringValue3.createSnippet=createSnippet})(StringValue2||(StringValue2={}));(function(InlineCompletionItem3){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem3.create=create})(InlineCompletionItem2||(InlineCompletionItem2={}));(function(InlineCompletionList3){function create(items){return{items}}InlineCompletionList3.create=create})(InlineCompletionList2||(InlineCompletionList2={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3.Invoked=0,InlineCompletionTriggerKind3.Automatic=1})(InlineCompletionTriggerKind2||(InlineCompletionTriggerKind2={}));(function(SelectedCompletionInfo3){function create(range,text){return{range,text}}SelectedCompletionInfo3.create=create})(SelectedCompletionInfo2||(SelectedCompletionInfo2={}));(function(InlineCompletionContext3){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext3.create=create})(InlineCompletionContext2||(InlineCompletionContext2={}));(function(WorkspaceFolder3){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&URI2.is(candidate.uri)&&Is2.string(candidate.name)}WorkspaceFolder3.is=is})(WorkspaceFolder2||(WorkspaceFolder2={}));EOL2=[`
41
+ `)),responsePromise){let error=message.error?` Request failed: ${message.error.message} (${message.error.code}).`:"";tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now()-responsePromise.timerStart}ms.${error}`,data)}else tracer.log(`Received response ${message.id} without active response promise.`,data)}else logLSPMessage("receive-response",message)}function logLSPMessage(type,message){if(!tracer||trace===Trace.Off)return;let lspMessage={isLSPMessage:!0,type,message,timestamp:Date.now()};tracer.log(lspMessage)}function throwIfClosedOrDisposed(){if(isClosed())throw new ConnectionError(ConnectionErrors.Closed,"Connection is closed.");if(isDisposed())throw new ConnectionError(ConnectionErrors.Disposed,"Connection is disposed.")}function throwIfListening(){if(isListening())throw new ConnectionError(ConnectionErrors.AlreadyListening,"Connection is already listening")}function throwIfNotListening(){if(!isListening())throw new Error("Call listen() first.")}function undefinedToNull(param){return param===void 0?null:param}function nullToUndefined(param){if(param!==null)return param}function isNamedParam(param){return param!=null&&!Array.isArray(param)&&typeof param=="object"}function computeSingleParam(parameterStructures,param){switch(parameterStructures){case messages_1.ParameterStructures.auto:return isNamedParam(param)?nullToUndefined(param):[undefinedToNull(param)];case messages_1.ParameterStructures.byName:if(!isNamedParam(param))throw new Error("Received parameters by name but param is not an object literal.");return nullToUndefined(param);case messages_1.ParameterStructures.byPosition:return[undefinedToNull(param)];default:throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`)}}function computeMessageParams(type,params){let result,numberOfParams=type.numberOfParams;switch(numberOfParams){case 0:result=void 0;break;case 1:result=computeSingleParam(type.parameterStructures,params[0]);break;default:result=[];for(let i=0;i<params.length&&i<numberOfParams;i++)result.push(undefinedToNull(params[i]));if(params.length<numberOfParams)for(let i=params.length;i<numberOfParams;i++)result.push(null);break}return result}let connection2={sendNotification:(type,...args)=>{throwIfClosedOrDisposed();let method,messageParams;if(Is3.string(type)){method=type;let first=args[0],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length,numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' notification parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params)}let notificationMessage={jsonrpc:version,method,params:messageParams};return traceSendingNotification(notificationMessage),messageWriter.write(notificationMessage).catch(error=>{throw logger.error("Sending notification failed."),error})},onNotification:(type,handler)=>{throwIfClosedOrDisposed();let method;return Is3.func(type)?starNotificationHandler=type:handler&&(Is3.string(type)?(method=type,notificationHandlers.set(type,{type:void 0,handler})):(method=type.method,notificationHandlers.set(type.method,{type,handler}))),{dispose:()=>{method!==void 0?notificationHandlers.delete(method):starNotificationHandler=void 0}}},onProgress:(_type,token,handler)=>{if(progressHandlers.has(token))throw new Error(`Progress handler for token ${token} already registered`);return progressHandlers.set(token,handler),{dispose:()=>{progressHandlers.delete(token)}}},sendProgress:(_type,token,value)=>connection2.sendNotification(ProgressNotification.type,{token,value}),onUnhandledProgress:unhandledProgressEmitter.event,sendRequest:(type,...args)=>{throwIfClosedOrDisposed(),throwIfNotListening();let method,messageParams,token;if(Is3.string(type)){method=type;let first=args[0],last=args[args.length-1],paramStart=0,parameterStructures=messages_1.ParameterStructures.auto;messages_1.ParameterStructures.is(first)&&(paramStart=1,parameterStructures=first);let paramEnd=args.length;cancellation_1.CancellationToken.is(last)&&(paramEnd=paramEnd-1,token=last);let numberOfParams=paramEnd-paramStart;switch(numberOfParams){case 0:messageParams=void 0;break;case 1:messageParams=computeSingleParam(parameterStructures,args[paramStart]);break;default:if(parameterStructures===messages_1.ParameterStructures.byName)throw new Error(`Received ${numberOfParams} parameters for 'by Name' request parameter structure.`);messageParams=args.slice(paramStart,paramEnd).map(value=>undefinedToNull(value));break}}else{let params=args;method=type.method,messageParams=computeMessageParams(type,params);let numberOfParams=type.numberOfParams;token=cancellation_1.CancellationToken.is(params[numberOfParams])?params[numberOfParams]:void 0}let id=sequenceNumber++,disposable;token&&(disposable=token.onCancellationRequested(()=>{let p=cancellationStrategy.sender.sendCancellation(connection2,id);return p===void 0?(logger.log(`Received no promise from cancellation strategy when cancelling id ${id}`),Promise.resolve()):p.catch(()=>{logger.log(`Sending cancellation messages for id ${id} failed`)})}));let requestMessage={jsonrpc:version,id,method,params:messageParams};return traceSendingRequest(requestMessage),typeof cancellationStrategy.sender.enableCancellation=="function"&&cancellationStrategy.sender.enableCancellation(requestMessage),new Promise(async(resolve,reject)=>{let resolveWithCleanup=r=>{resolve(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},rejectWithCleanup=r=>{reject(r),cancellationStrategy.sender.cleanup(id),disposable?.dispose()},responsePromise={method,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{await messageWriter.write(requestMessage),responsePromises.set(id,responsePromise)}catch(error){throw logger.error("Sending request failed."),responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError,error.message?error.message:"Unknown reason")),error}})},onRequest:(type,handler)=>{throwIfClosedOrDisposed();let method=null;return StarRequestHandler.is(type)?(method=void 0,starRequestHandler=type):Is3.string(type)?(method=null,handler!==void 0&&(method=type,requestHandlers.set(type,{handler,type:void 0}))):handler!==void 0&&(method=type.method,requestHandlers.set(type.method,{type,handler})),{dispose:()=>{method!==null&&(method!==void 0?requestHandlers.delete(method):starRequestHandler=void 0)}}},hasPendingResponse:()=>responsePromises.size>0,trace:async(_value,_tracer,sendNotificationOrTraceOptions)=>{let _sendNotification=!1,_traceFormat=TraceFormat.Text;sendNotificationOrTraceOptions!==void 0&&(Is3.boolean(sendNotificationOrTraceOptions)?_sendNotification=sendNotificationOrTraceOptions:(_sendNotification=sendNotificationOrTraceOptions.sendNotification||!1,_traceFormat=sendNotificationOrTraceOptions.traceFormat||TraceFormat.Text)),trace=_value,traceFormat=_traceFormat,trace===Trace.Off?tracer=void 0:tracer=_tracer,_sendNotification&&!isClosed()&&!isDisposed()&&await connection2.sendNotification(SetTraceNotification.type,{value:Trace.toString(_value)})},onError:errorEmitter.event,onClose:closeEmitter.event,onUnhandledNotification:unhandledNotificationEmitter.event,onDispose:disposeEmitter.event,end:()=>{messageWriter.end()},dispose:()=>{if(isDisposed())return;state=ConnectionState.Disposed,disposeEmitter.fire(void 0);let error=new messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let promise of responsePromises.values())promise.reject(error);responsePromises=new Map,requestTokens=new Map,knownCanceledRequests=new Set,messageQueue=new linkedMap_1.LinkedMap,Is3.func(messageWriter.dispose)&&messageWriter.dispose(),Is3.func(messageReader.dispose)&&messageReader.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),state=ConnectionState.Listening,messageReader.listen(callback)},inspect:()=>{(0,ral_1.default)().console.log("inspect")}};return connection2.onNotification(LogTraceNotification.type,params=>{if(trace===Trace.Off||!tracer)return;let verbose=trace===Trace.Verbose||trace===Trace.Compact;tracer.log(params.message,verbose?params.verbose:void 0)}),connection2.onNotification(ProgressNotification.type,params=>{let handler=progressHandlers.get(params.token);handler?handler(params.value):unhandledProgressEmitter.fire(params)}),connection2}exports.createMessageConnection=createMessageConnection}});var require_api4=__commonJS({"server/node_modules/vscode-jsonrpc/lib/common/api.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.ProgressType=exports.ProgressToken=exports.createMessageConnection=exports.NullLogger=exports.ConnectionOptions=exports.ConnectionStrategy=exports.AbstractMessageBuffer=exports.WriteableStreamMessageWriter=exports.AbstractMessageWriter=exports.MessageWriter=exports.ReadableStreamMessageReader=exports.AbstractMessageReader=exports.MessageReader=exports.SharedArrayReceiverStrategy=exports.SharedArraySenderStrategy=exports.CancellationToken=exports.CancellationTokenSource=exports.Emitter=exports.Event=exports.Disposable=exports.LRUCache=exports.Touch=exports.LinkedMap=exports.ParameterStructures=exports.NotificationType9=exports.NotificationType8=exports.NotificationType7=exports.NotificationType6=exports.NotificationType5=exports.NotificationType4=exports.NotificationType3=exports.NotificationType2=exports.NotificationType1=exports.NotificationType0=exports.NotificationType=exports.ErrorCodes=exports.ResponseError=exports.RequestType9=exports.RequestType8=exports.RequestType7=exports.RequestType6=exports.RequestType5=exports.RequestType4=exports.RequestType3=exports.RequestType2=exports.RequestType1=exports.RequestType0=exports.RequestType=exports.Message=exports.RAL=void 0;exports.MessageStrategy=exports.CancellationStrategy=exports.CancellationSenderStrategy=exports.CancellationReceiverStrategy=exports.ConnectionError=exports.ConnectionErrors=exports.LogTraceNotification=exports.SetTraceNotification=exports.TraceFormat=exports.TraceValues=exports.Trace=void 0;var messages_1=require_messages3();Object.defineProperty(exports,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap2();Object.defineProperty(exports,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable2();Object.defineProperty(exports,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events2();Object.defineProperty(exports,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation2();Object.defineProperty(exports,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation2();Object.defineProperty(exports,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader2();Object.defineProperty(exports,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter2();Object.defineProperty(exports,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer2();Object.defineProperty(exports,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection3();Object.defineProperty(exports,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});Object.defineProperty(exports,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});var ral_1=require_ral2();exports.RAL=ral_1.default}});var require_ril2=__commonJS({"server/node_modules/vscode-jsonrpc/lib/browser/ril.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var api_1=require_api4(),MessageBuffer=class _MessageBuffer extends api_1.AbstractMessageBuffer{constructor(encoding="utf-8"){super(encoding),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return _MessageBuffer.emptyBuffer}fromString(value,_encoding){return new TextEncoder().encode(value)}toString(value,encoding){return encoding==="ascii"?this.asciiDecoder.decode(value):new TextDecoder(encoding).decode(value)}asNative(buffer,length){return length===void 0?buffer:buffer.slice(0,length)}allocNative(length){return new Uint8Array(length)}};MessageBuffer.emptyBuffer=new Uint8Array(0);var ReadableStreamWrapper=class{constructor(socket){this.socket=socket,this._onData=new api_1.Emitter,this._messageListener=event=>{event.data.arrayBuffer().then(buffer=>{this._onData.fire(new Uint8Array(buffer))},()=>{(0,api_1.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(listener){return this.socket.addEventListener("close",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("close",listener))}onError(listener){return this.socket.addEventListener("error",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("error",listener))}onEnd(listener){return this.socket.addEventListener("end",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("end",listener))}onData(listener){return this._onData.event(listener)}},WritableStreamWrapper=class{constructor(socket){this.socket=socket}onClose(listener){return this.socket.addEventListener("close",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("close",listener))}onError(listener){return this.socket.addEventListener("error",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("error",listener))}onEnd(listener){return this.socket.addEventListener("end",listener),api_1.Disposable.create(()=>this.socket.removeEventListener("end",listener))}write(data,encoding){if(typeof data=="string"){if(encoding!==void 0&&encoding!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${encoding}`);this.socket.send(data)}else this.socket.send(data);return Promise.resolve()}end(){this.socket.close()}},_textEncoder=new TextEncoder,_ril=Object.freeze({messageBuffer:Object.freeze({create:encoding=>new MessageBuffer(encoding)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(msg,options)=>{if(options.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${options.charset}`);return Promise.resolve(_textEncoder.encode(JSON.stringify(msg,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(buffer,options)=>{if(!(buffer instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(options.charset).decode(buffer)))}})}),stream:Object.freeze({asReadableStream:socket=>new ReadableStreamWrapper(socket),asWritableStream:socket=>new WritableStreamWrapper(socket)}),console,timer:Object.freeze({setTimeout(callback,ms,...args){let handle=setTimeout(callback,ms,...args);return{dispose:()=>clearTimeout(handle)}},setImmediate(callback,...args){let handle=setTimeout(callback,0,...args);return{dispose:()=>clearTimeout(handle)}},setInterval(callback,ms,...args){let handle=setInterval(callback,ms,...args);return{dispose:()=>clearInterval(handle)}}})});function RIL(){return _ril}(function(RIL2){function install(){api_1.RAL.install(_ril)}RIL2.install=install})(RIL||(RIL={}));exports.default=RIL}});var require_main4=__commonJS({"server/node_modules/vscode-jsonrpc/lib/browser/main.js"(exports){"use strict";var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m2,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m2,k);(!desc||("get"in desc?!m2.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m2[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m2,k,k2){k2===void 0&&(k2=k),o[k2]=m2[k]})),__exportStar=exports&&exports.__exportStar||function(m2,exports2){for(var p in m2)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p)&&__createBinding(exports2,m2,p)};Object.defineProperty(exports,"__esModule",{value:!0});exports.createMessageConnection=exports.BrowserMessageWriter=exports.BrowserMessageReader=void 0;var ril_1=require_ril2();ril_1.default.install();var api_1=require_api4();__exportStar(require_api4(),exports);var BrowserMessageReader2=class extends api_1.AbstractMessageReader{constructor(port){super(),this._onData=new api_1.Emitter,this._messageListener=event=>{this._onData.fire(event.data)},port.addEventListener("error",event=>this.fireError(event)),port.onmessage=this._messageListener}listen(callback){return this._onData.event(callback)}};exports.BrowserMessageReader=BrowserMessageReader2;var BrowserMessageWriter2=class extends api_1.AbstractMessageWriter{constructor(port){super(),this.port=port,this.errorCount=0,port.addEventListener("error",event=>this.fireError(event))}write(msg){try{return this.port.postMessage(msg),Promise.resolve()}catch(error){return this.handleError(error,msg),Promise.reject(error)}}handleError(error,msg){this.errorCount++,this.fireError(error,msg,this.errorCount)}end(){}};exports.BrowserMessageWriter=BrowserMessageWriter2;function createMessageConnection(reader,writer,logger,options){return logger===void 0&&(logger=api_1.NullLogger),api_1.ConnectionStrategy.is(options)&&(options={connectionStrategy:options}),(0,api_1.createMessageConnection)(reader,writer,logger,options)}exports.createMessageConnection=createMessageConnection}});var require_browser=__commonJS({"server/node_modules/vscode-jsonrpc/browser.js"(exports,module){"use strict";module.exports=require_main4()}});var main_exports2={};__export(main_exports2,{AnnotatedTextEdit:()=>AnnotatedTextEdit2,ChangeAnnotation:()=>ChangeAnnotation2,ChangeAnnotationIdentifier:()=>ChangeAnnotationIdentifier2,CodeAction:()=>CodeAction2,CodeActionContext:()=>CodeActionContext2,CodeActionKind:()=>CodeActionKind2,CodeActionTriggerKind:()=>CodeActionTriggerKind2,CodeDescription:()=>CodeDescription2,CodeLens:()=>CodeLens2,Color:()=>Color2,ColorInformation:()=>ColorInformation2,ColorPresentation:()=>ColorPresentation2,Command:()=>Command2,CompletionItem:()=>CompletionItem2,CompletionItemKind:()=>CompletionItemKind2,CompletionItemLabelDetails:()=>CompletionItemLabelDetails2,CompletionItemTag:()=>CompletionItemTag2,CompletionList:()=>CompletionList2,CreateFile:()=>CreateFile2,DeleteFile:()=>DeleteFile2,Diagnostic:()=>Diagnostic2,DiagnosticRelatedInformation:()=>DiagnosticRelatedInformation2,DiagnosticSeverity:()=>DiagnosticSeverity2,DiagnosticTag:()=>DiagnosticTag2,DocumentHighlight:()=>DocumentHighlight2,DocumentHighlightKind:()=>DocumentHighlightKind2,DocumentLink:()=>DocumentLink2,DocumentSymbol:()=>DocumentSymbol2,DocumentUri:()=>DocumentUri2,EOL:()=>EOL2,FoldingRange:()=>FoldingRange2,FoldingRangeKind:()=>FoldingRangeKind2,FormattingOptions:()=>FormattingOptions2,Hover:()=>Hover2,InlayHint:()=>InlayHint2,InlayHintKind:()=>InlayHintKind2,InlayHintLabelPart:()=>InlayHintLabelPart2,InlineCompletionContext:()=>InlineCompletionContext2,InlineCompletionItem:()=>InlineCompletionItem2,InlineCompletionList:()=>InlineCompletionList2,InlineCompletionTriggerKind:()=>InlineCompletionTriggerKind2,InlineValueContext:()=>InlineValueContext2,InlineValueEvaluatableExpression:()=>InlineValueEvaluatableExpression2,InlineValueText:()=>InlineValueText2,InlineValueVariableLookup:()=>InlineValueVariableLookup2,InsertReplaceEdit:()=>InsertReplaceEdit2,InsertTextFormat:()=>InsertTextFormat2,InsertTextMode:()=>InsertTextMode2,Location:()=>Location2,LocationLink:()=>LocationLink2,MarkedString:()=>MarkedString2,MarkupContent:()=>MarkupContent2,MarkupKind:()=>MarkupKind2,OptionalVersionedTextDocumentIdentifier:()=>OptionalVersionedTextDocumentIdentifier2,ParameterInformation:()=>ParameterInformation2,Position:()=>Position2,Range:()=>Range2,RenameFile:()=>RenameFile2,SelectedCompletionInfo:()=>SelectedCompletionInfo2,SelectionRange:()=>SelectionRange2,SemanticTokenModifiers:()=>SemanticTokenModifiers2,SemanticTokenTypes:()=>SemanticTokenTypes2,SemanticTokens:()=>SemanticTokens2,SignatureInformation:()=>SignatureInformation2,StringValue:()=>StringValue2,SymbolInformation:()=>SymbolInformation2,SymbolKind:()=>SymbolKind2,SymbolTag:()=>SymbolTag2,TextDocument:()=>TextDocument3,TextDocumentEdit:()=>TextDocumentEdit2,TextDocumentIdentifier:()=>TextDocumentIdentifier2,TextDocumentItem:()=>TextDocumentItem2,TextEdit:()=>TextEdit2,URI:()=>URI2,VersionedTextDocumentIdentifier:()=>VersionedTextDocumentIdentifier2,WorkspaceChange:()=>WorkspaceChange2,WorkspaceEdit:()=>WorkspaceEdit2,WorkspaceFolder:()=>WorkspaceFolder2,WorkspaceSymbol:()=>WorkspaceSymbol2,integer:()=>integer2,uinteger:()=>uinteger2});var DocumentUri2,URI2,integer2,uinteger2,Position2,Range2,Location2,LocationLink2,Color2,ColorInformation2,ColorPresentation2,FoldingRangeKind2,FoldingRange2,DiagnosticRelatedInformation2,DiagnosticSeverity2,DiagnosticTag2,CodeDescription2,Diagnostic2,Command2,TextEdit2,ChangeAnnotation2,ChangeAnnotationIdentifier2,AnnotatedTextEdit2,TextDocumentEdit2,CreateFile2,RenameFile2,DeleteFile2,WorkspaceEdit2,TextEditChangeImpl2,ChangeAnnotations2,WorkspaceChange2,TextDocumentIdentifier2,VersionedTextDocumentIdentifier2,OptionalVersionedTextDocumentIdentifier2,TextDocumentItem2,MarkupKind2,MarkupContent2,CompletionItemKind2,InsertTextFormat2,CompletionItemTag2,InsertReplaceEdit2,InsertTextMode2,CompletionItemLabelDetails2,CompletionItem2,CompletionList2,MarkedString2,Hover2,ParameterInformation2,SignatureInformation2,DocumentHighlightKind2,DocumentHighlight2,SymbolKind2,SymbolTag2,SymbolInformation2,WorkspaceSymbol2,DocumentSymbol2,CodeActionKind2,CodeActionTriggerKind2,CodeActionContext2,CodeAction2,CodeLens2,FormattingOptions2,DocumentLink2,SelectionRange2,SemanticTokenTypes2,SemanticTokenModifiers2,SemanticTokens2,InlineValueText2,InlineValueVariableLookup2,InlineValueEvaluatableExpression2,InlineValueContext2,InlayHintKind2,InlayHintLabelPart2,InlayHint2,StringValue2,InlineCompletionItem2,InlineCompletionList2,InlineCompletionTriggerKind2,SelectedCompletionInfo2,InlineCompletionContext2,WorkspaceFolder2,EOL2,TextDocument3,FullTextDocument3,Is2,init_main2=__esm({"server/node_modules/vscode-languageserver-types/lib/esm/main.js"(){"use strict";(function(DocumentUri3){function is(value){return typeof value=="string"}DocumentUri3.is=is})(DocumentUri2||(DocumentUri2={}));(function(URI3){function is(value){return typeof value=="string"}URI3.is=is})(URI2||(URI2={}));(function(integer3){integer3.MIN_VALUE=-2147483648,integer3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer3.MIN_VALUE<=value&&value<=integer3.MAX_VALUE}integer3.is=is})(integer2||(integer2={}));(function(uinteger3){uinteger3.MIN_VALUE=0,uinteger3.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger3.MIN_VALUE<=value&&value<=uinteger3.MAX_VALUE}uinteger3.is=is})(uinteger2||(uinteger2={}));(function(Position4){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger2.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger2.MAX_VALUE),{line,character}}Position4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.uinteger(candidate.line)&&Is2.uinteger(candidate.character)}Position4.is=is})(Position2||(Position2={}));(function(Range4){function create(one,two,three,four){if(Is2.uinteger(one)&&Is2.uinteger(two)&&Is2.uinteger(three)&&Is2.uinteger(four))return{start:Position2.create(one,two),end:Position2.create(three,four)};if(Position2.is(one)&&Position2.is(two))return{start:one,end:two};throw new Error(`Range#create called with invalid arguments[${one}, ${two}, ${three}, ${four}]`)}Range4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Position2.is(candidate.start)&&Position2.is(candidate.end)}Range4.is=is})(Range2||(Range2={}));(function(Location4){function create(uri,range){return{uri,range}}Location4.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&(Is2.string(candidate.uri)||Is2.undefined(candidate.uri))}Location4.is=is})(Location2||(Location2={}));(function(LocationLink3){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.targetRange)&&Is2.string(candidate.targetUri)&&Range2.is(candidate.targetSelectionRange)&&(Range2.is(candidate.originSelectionRange)||Is2.undefined(candidate.originSelectionRange))}LocationLink3.is=is})(LocationLink2||(LocationLink2={}));(function(Color3){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.numberRange(candidate.red,0,1)&&Is2.numberRange(candidate.green,0,1)&&Is2.numberRange(candidate.blue,0,1)&&Is2.numberRange(candidate.alpha,0,1)}Color3.is=is})(Color2||(Color2={}));(function(ColorInformation3){function create(range,color){return{range,color}}ColorInformation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&Color2.is(candidate.color)}ColorInformation3.is=is})(ColorInformation2||(ColorInformation2={}));(function(ColorPresentation3){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.label)&&(Is2.undefined(candidate.textEdit)||TextEdit2.is(candidate))&&(Is2.undefined(candidate.additionalTextEdits)||Is2.typedArray(candidate.additionalTextEdits,TextEdit2.is))}ColorPresentation3.is=is})(ColorPresentation2||(ColorPresentation2={}));(function(FoldingRangeKind4){FoldingRangeKind4.Comment="comment",FoldingRangeKind4.Imports="imports",FoldingRangeKind4.Region="region"})(FoldingRangeKind2||(FoldingRangeKind2={}));(function(FoldingRange5){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){let result={startLine,endLine};return Is2.defined(startCharacter)&&(result.startCharacter=startCharacter),Is2.defined(endCharacter)&&(result.endCharacter=endCharacter),Is2.defined(kind)&&(result.kind=kind),Is2.defined(collapsedText)&&(result.collapsedText=collapsedText),result}FoldingRange5.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.uinteger(candidate.startLine)&&Is2.uinteger(candidate.startLine)&&(Is2.undefined(candidate.startCharacter)||Is2.uinteger(candidate.startCharacter))&&(Is2.undefined(candidate.endCharacter)||Is2.uinteger(candidate.endCharacter))&&(Is2.undefined(candidate.kind)||Is2.string(candidate.kind))}FoldingRange5.is=is})(FoldingRange2||(FoldingRange2={}));(function(DiagnosticRelatedInformation3){function create(location,message){return{location,message}}DiagnosticRelatedInformation3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Location2.is(candidate.location)&&Is2.string(candidate.message)}DiagnosticRelatedInformation3.is=is})(DiagnosticRelatedInformation2||(DiagnosticRelatedInformation2={}));(function(DiagnosticSeverity7){DiagnosticSeverity7.Error=1,DiagnosticSeverity7.Warning=2,DiagnosticSeverity7.Information=3,DiagnosticSeverity7.Hint=4})(DiagnosticSeverity2||(DiagnosticSeverity2={}));(function(DiagnosticTag3){DiagnosticTag3.Unnecessary=1,DiagnosticTag3.Deprecated=2})(DiagnosticTag2||(DiagnosticTag2={}));(function(CodeDescription3){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.href)}CodeDescription3.is=is})(CodeDescription2||(CodeDescription2={}));(function(Diagnostic8){function create(range,message,severity,code,source,relatedInformation){let result={range,message};return Is2.defined(severity)&&(result.severity=severity),Is2.defined(code)&&(result.code=code),Is2.defined(source)&&(result.source=source),Is2.defined(relatedInformation)&&(result.relatedInformation=relatedInformation),result}Diagnostic8.create=create;function is(value){var _a;let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&Is2.string(candidate.message)&&(Is2.number(candidate.severity)||Is2.undefined(candidate.severity))&&(Is2.integer(candidate.code)||Is2.string(candidate.code)||Is2.undefined(candidate.code))&&(Is2.undefined(candidate.codeDescription)||Is2.string((_a=candidate.codeDescription)===null||_a===void 0?void 0:_a.href))&&(Is2.string(candidate.source)||Is2.undefined(candidate.source))&&(Is2.undefined(candidate.relatedInformation)||Is2.typedArray(candidate.relatedInformation,DiagnosticRelatedInformation2.is))}Diagnostic8.is=is})(Diagnostic2||(Diagnostic2={}));(function(Command3){function create(title,command,...args){let result={title,command};return Is2.defined(args)&&args.length>0&&(result.arguments=args),result}Command3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.title)&&Is2.string(candidate.command)}Command3.is=is})(Command2||(Command2={}));(function(TextEdit6){function replace(range,newText){return{range,newText}}TextEdit6.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit6.insert=insert;function del(range){return{range,newText:""}}TextEdit6.del=del;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.newText)&&Range2.is(candidate.range)}TextEdit6.is=is})(TextEdit2||(TextEdit2={}));(function(ChangeAnnotation3){function create(label,needsConfirmation,description){let result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Is2.string(candidate.label)&&(Is2.boolean(candidate.needsConfirmation)||candidate.needsConfirmation===void 0)&&(Is2.string(candidate.description)||candidate.description===void 0)}ChangeAnnotation3.is=is})(ChangeAnnotation2||(ChangeAnnotation2={}));(function(ChangeAnnotationIdentifier3){function is(value){let candidate=value;return Is2.string(candidate)}ChangeAnnotationIdentifier3.is=is})(ChangeAnnotationIdentifier2||(ChangeAnnotationIdentifier2={}));(function(AnnotatedTextEdit3){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit3.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit3.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit3.del=del;function is(value){let candidate=value;return TextEdit2.is(candidate)&&(ChangeAnnotation2.is(candidate.annotationId)||ChangeAnnotationIdentifier2.is(candidate.annotationId))}AnnotatedTextEdit3.is=is})(AnnotatedTextEdit2||(AnnotatedTextEdit2={}));(function(TextDocumentEdit3){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&OptionalVersionedTextDocumentIdentifier2.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit3.is=is})(TextDocumentEdit2||(TextDocumentEdit2={}));(function(CreateFile3){function create(uri,options,annotation){let result={kind:"create",uri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}CreateFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="create"&&Is2.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is2.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is2.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}CreateFile3.is=is})(CreateFile2||(CreateFile2={}));(function(RenameFile3){function create(oldUri,newUri,options,annotation){let result={kind:"rename",oldUri,newUri};return options!==void 0&&(options.overwrite!==void 0||options.ignoreIfExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}RenameFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="rename"&&Is2.string(candidate.oldUri)&&Is2.string(candidate.newUri)&&(candidate.options===void 0||(candidate.options.overwrite===void 0||Is2.boolean(candidate.options.overwrite))&&(candidate.options.ignoreIfExists===void 0||Is2.boolean(candidate.options.ignoreIfExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}RenameFile3.is=is})(RenameFile2||(RenameFile2={}));(function(DeleteFile3){function create(uri,options,annotation){let result={kind:"delete",uri};return options!==void 0&&(options.recursive!==void 0||options.ignoreIfNotExists!==void 0)&&(result.options=options),annotation!==void 0&&(result.annotationId=annotation),result}DeleteFile3.create=create;function is(value){let candidate=value;return candidate&&candidate.kind==="delete"&&Is2.string(candidate.uri)&&(candidate.options===void 0||(candidate.options.recursive===void 0||Is2.boolean(candidate.options.recursive))&&(candidate.options.ignoreIfNotExists===void 0||Is2.boolean(candidate.options.ignoreIfNotExists)))&&(candidate.annotationId===void 0||ChangeAnnotationIdentifier2.is(candidate.annotationId))}DeleteFile3.is=is})(DeleteFile2||(DeleteFile2={}));(function(WorkspaceEdit5){function is(value){let candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(change=>Is2.string(change.kind)?CreateFile2.is(change)||RenameFile2.is(change)||DeleteFile2.is(change):TextDocumentEdit2.is(change)))}WorkspaceEdit5.is=is})(WorkspaceEdit2||(WorkspaceEdit2={}));TextEditChangeImpl2=class{constructor(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}insert(position,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.insert(position,newText):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.insert(position,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.insert(position,newText,id)),this.edits.push(edit),id!==void 0)return id}replace(range,newText,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.replace(range,newText):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.replace(range,newText,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.replace(range,newText,id)),this.edits.push(edit),id!==void 0)return id}delete(range,annotation){let edit,id;if(annotation===void 0?edit=TextEdit2.del(range):ChangeAnnotationIdentifier2.is(annotation)?(id=annotation,edit=AnnotatedTextEdit2.del(range,annotation)):(this.assertChangeAnnotations(this.changeAnnotations),id=this.changeAnnotations.manage(annotation),edit=AnnotatedTextEdit2.del(range,id)),this.edits.push(edit),id!==void 0)return id}add(edit){this.edits.push(edit)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}},ChangeAnnotations2=class{constructor(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(idOrAnnotation,annotation){let id;if(ChangeAnnotationIdentifier2.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error(`Id ${id} is already in use.`);if(annotation===void 0)throw new Error(`No annotation provided for id ${id}`);return this._annotations[id]=annotation,this._size++,id}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange2=class{constructor(workspaceEdit){this._textEditChanges=Object.create(null),workspaceEdit!==void 0?(this._workspaceEdit=workspaceEdit,workspaceEdit.documentChanges?(this._changeAnnotations=new ChangeAnnotations2(workspaceEdit.changeAnnotations),workspaceEdit.changeAnnotations=this._changeAnnotations.all(),workspaceEdit.documentChanges.forEach(change=>{if(TextDocumentEdit2.is(change)){let textEditChange=new TextEditChangeImpl2(change.edits,this._changeAnnotations);this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(key=>{let textEditChange=new TextEditChangeImpl2(workspaceEdit.changes[key]);this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(key){if(OptionalVersionedTextDocumentIdentifier2.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){let edits=[],textDocumentEdit={textDocument,edits};this._workspaceEdit.documentChanges.push(textDocumentEdit),result=new TextEditChangeImpl2(edits,this._changeAnnotations),this._textEditChanges[textDocument.uri]=result}return result}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let result=this._textEditChanges[key];if(!result){let edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl2(edits),this._textEditChanges[key]=result}return result}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations2,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=CreateFile2.create(uri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=CreateFile2.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}renameFile(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=RenameFile2.create(oldUri,newUri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=RenameFile2.create(oldUri,newUri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}deleteFile(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let annotation;ChangeAnnotation2.is(optionsOrAnnotation)||ChangeAnnotationIdentifier2.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;let operation,id;if(annotation===void 0?operation=DeleteFile2.create(uri,options):(id=ChangeAnnotationIdentifier2.is(annotation)?annotation:this._changeAnnotations.manage(annotation),operation=DeleteFile2.create(uri,options,id)),this._workspaceEdit.documentChanges.push(operation),id!==void 0)return id}};(function(TextDocumentIdentifier3){function create(uri){return{uri}}TextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)}TextDocumentIdentifier3.is=is})(TextDocumentIdentifier2||(TextDocumentIdentifier2={}));(function(VersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&Is2.integer(candidate.version)}VersionedTextDocumentIdentifier3.is=is})(VersionedTextDocumentIdentifier2||(VersionedTextDocumentIdentifier2={}));(function(OptionalVersionedTextDocumentIdentifier3){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&(candidate.version===null||Is2.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier3.is=is})(OptionalVersionedTextDocumentIdentifier2||(OptionalVersionedTextDocumentIdentifier2={}));(function(TextDocumentItem3){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.string(candidate.uri)&&Is2.string(candidate.languageId)&&Is2.integer(candidate.version)&&Is2.string(candidate.text)}TextDocumentItem3.is=is})(TextDocumentItem2||(TextDocumentItem2={}));(function(MarkupKind4){MarkupKind4.PlainText="plaintext",MarkupKind4.Markdown="markdown";function is(value){let candidate=value;return candidate===MarkupKind4.PlainText||candidate===MarkupKind4.Markdown}MarkupKind4.is=is})(MarkupKind2||(MarkupKind2={}));(function(MarkupContent4){function is(value){let candidate=value;return Is2.objectLiteral(value)&&MarkupKind2.is(candidate.kind)&&Is2.string(candidate.value)}MarkupContent4.is=is})(MarkupContent2||(MarkupContent2={}));(function(CompletionItemKind4){CompletionItemKind4.Text=1,CompletionItemKind4.Method=2,CompletionItemKind4.Function=3,CompletionItemKind4.Constructor=4,CompletionItemKind4.Field=5,CompletionItemKind4.Variable=6,CompletionItemKind4.Class=7,CompletionItemKind4.Interface=8,CompletionItemKind4.Module=9,CompletionItemKind4.Property=10,CompletionItemKind4.Unit=11,CompletionItemKind4.Value=12,CompletionItemKind4.Enum=13,CompletionItemKind4.Keyword=14,CompletionItemKind4.Snippet=15,CompletionItemKind4.Color=16,CompletionItemKind4.File=17,CompletionItemKind4.Reference=18,CompletionItemKind4.Folder=19,CompletionItemKind4.EnumMember=20,CompletionItemKind4.Constant=21,CompletionItemKind4.Struct=22,CompletionItemKind4.Event=23,CompletionItemKind4.Operator=24,CompletionItemKind4.TypeParameter=25})(CompletionItemKind2||(CompletionItemKind2={}));(function(InsertTextFormat4){InsertTextFormat4.PlainText=1,InsertTextFormat4.Snippet=2})(InsertTextFormat2||(InsertTextFormat2={}));(function(CompletionItemTag3){CompletionItemTag3.Deprecated=1})(CompletionItemTag2||(CompletionItemTag2={}));(function(InsertReplaceEdit3){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit3.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.newText)&&Range2.is(candidate.insert)&&Range2.is(candidate.replace)}InsertReplaceEdit3.is=is})(InsertReplaceEdit2||(InsertReplaceEdit2={}));(function(InsertTextMode3){InsertTextMode3.asIs=1,InsertTextMode3.adjustIndentation=2})(InsertTextMode2||(InsertTextMode2={}));(function(CompletionItemLabelDetails3){function is(value){let candidate=value;return candidate&&(Is2.string(candidate.detail)||candidate.detail===void 0)&&(Is2.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails3.is=is})(CompletionItemLabelDetails2||(CompletionItemLabelDetails2={}));(function(CompletionItem5){function create(label){return{label}}CompletionItem5.create=create})(CompletionItem2||(CompletionItem2={}));(function(CompletionList3){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList3.create=create})(CompletionList2||(CompletionList2={}));(function(MarkedString3){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString3.fromPlainText=fromPlainText;function is(value){let candidate=value;return Is2.string(candidate)||Is2.objectLiteral(candidate)&&Is2.string(candidate.language)&&Is2.string(candidate.value)}MarkedString3.is=is})(MarkedString2||(MarkedString2={}));(function(Hover5){function is(value){let candidate=value;return!!candidate&&Is2.objectLiteral(candidate)&&(MarkupContent2.is(candidate.contents)||MarkedString2.is(candidate.contents)||Is2.typedArray(candidate.contents,MarkedString2.is))&&(value.range===void 0||Range2.is(value.range))}Hover5.is=is})(Hover2||(Hover2={}));(function(ParameterInformation3){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation3.create=create})(ParameterInformation2||(ParameterInformation2={}));(function(SignatureInformation3){function create(label,documentation,...parameters){let result={label};return Is2.defined(documentation)&&(result.documentation=documentation),Is2.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation3.create=create})(SignatureInformation2||(SignatureInformation2={}));(function(DocumentHighlightKind3){DocumentHighlightKind3.Text=1,DocumentHighlightKind3.Read=2,DocumentHighlightKind3.Write=3})(DocumentHighlightKind2||(DocumentHighlightKind2={}));(function(DocumentHighlight3){function create(range,kind){let result={range};return Is2.number(kind)&&(result.kind=kind),result}DocumentHighlight3.create=create})(DocumentHighlight2||(DocumentHighlight2={}));(function(SymbolKind4){SymbolKind4.File=1,SymbolKind4.Module=2,SymbolKind4.Namespace=3,SymbolKind4.Package=4,SymbolKind4.Class=5,SymbolKind4.Method=6,SymbolKind4.Property=7,SymbolKind4.Field=8,SymbolKind4.Constructor=9,SymbolKind4.Enum=10,SymbolKind4.Interface=11,SymbolKind4.Function=12,SymbolKind4.Variable=13,SymbolKind4.Constant=14,SymbolKind4.String=15,SymbolKind4.Number=16,SymbolKind4.Boolean=17,SymbolKind4.Array=18,SymbolKind4.Object=19,SymbolKind4.Key=20,SymbolKind4.Null=21,SymbolKind4.EnumMember=22,SymbolKind4.Struct=23,SymbolKind4.Event=24,SymbolKind4.Operator=25,SymbolKind4.TypeParameter=26})(SymbolKind2||(SymbolKind2={}));(function(SymbolTag3){SymbolTag3.Deprecated=1})(SymbolTag2||(SymbolTag2={}));(function(SymbolInformation3){function create(name,kind,range,uri,containerName){let result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation3.create=create})(SymbolInformation2||(SymbolInformation2={}));(function(WorkspaceSymbol3){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol3.create=create})(WorkspaceSymbol2||(WorkspaceSymbol2={}));(function(DocumentSymbol4){function create(name,detail,kind,range,selectionRange,children){let result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol4.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.name)&&Is2.number(candidate.kind)&&Range2.is(candidate.range)&&Range2.is(candidate.selectionRange)&&(candidate.detail===void 0||Is2.string(candidate.detail))&&(candidate.deprecated===void 0||Is2.boolean(candidate.deprecated))&&(candidate.children===void 0||Array.isArray(candidate.children))&&(candidate.tags===void 0||Array.isArray(candidate.tags))}DocumentSymbol4.is=is})(DocumentSymbol2||(DocumentSymbol2={}));(function(CodeActionKind5){CodeActionKind5.Empty="",CodeActionKind5.QuickFix="quickfix",CodeActionKind5.Refactor="refactor",CodeActionKind5.RefactorExtract="refactor.extract",CodeActionKind5.RefactorInline="refactor.inline",CodeActionKind5.RefactorRewrite="refactor.rewrite",CodeActionKind5.Source="source",CodeActionKind5.SourceOrganizeImports="source.organizeImports",CodeActionKind5.SourceFixAll="source.fixAll"})(CodeActionKind2||(CodeActionKind2={}));(function(CodeActionTriggerKind3){CodeActionTriggerKind3.Invoked=1,CodeActionTriggerKind3.Automatic=2})(CodeActionTriggerKind2||(CodeActionTriggerKind2={}));(function(CodeActionContext3){function create(diagnostics,only,triggerKind){let result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.typedArray(candidate.diagnostics,Diagnostic2.is)&&(candidate.only===void 0||Is2.typedArray(candidate.only,Is2.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind2.Invoked||candidate.triggerKind===CodeActionTriggerKind2.Automatic)}CodeActionContext3.is=is})(CodeActionContext2||(CodeActionContext2={}));(function(CodeAction4){function create(title,kindOrCommandOrEdit,kind){let result={title},checkKind=!0;return typeof kindOrCommandOrEdit=="string"?(checkKind=!1,result.kind=kindOrCommandOrEdit):Command2.is(kindOrCommandOrEdit)?result.command=kindOrCommandOrEdit:result.edit=kindOrCommandOrEdit,checkKind&&kind!==void 0&&(result.kind=kind),result}CodeAction4.create=create;function is(value){let candidate=value;return candidate&&Is2.string(candidate.title)&&(candidate.diagnostics===void 0||Is2.typedArray(candidate.diagnostics,Diagnostic2.is))&&(candidate.kind===void 0||Is2.string(candidate.kind))&&(candidate.edit!==void 0||candidate.command!==void 0)&&(candidate.command===void 0||Command2.is(candidate.command))&&(candidate.isPreferred===void 0||Is2.boolean(candidate.isPreferred))&&(candidate.edit===void 0||WorkspaceEdit2.is(candidate.edit))}CodeAction4.is=is})(CodeAction2||(CodeAction2={}));(function(CodeLens3){function create(range,data){let result={range};return Is2.defined(data)&&(result.data=data),result}CodeLens3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&(Is2.undefined(candidate.command)||Command2.is(candidate.command))}CodeLens3.is=is})(CodeLens2||(CodeLens2={}));(function(FormattingOptions3){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Is2.uinteger(candidate.tabSize)&&Is2.boolean(candidate.insertSpaces)}FormattingOptions3.is=is})(FormattingOptions2||(FormattingOptions2={}));(function(DocumentLink3){function create(range,target,data){return{range,target,data}}DocumentLink3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(candidate.range)&&(Is2.undefined(candidate.target)||Is2.string(candidate.target))}DocumentLink3.is=is})(DocumentLink2||(DocumentLink2={}));(function(SelectionRange3){function create(range,parent){return{range,parent}}SelectionRange3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Range2.is(candidate.range)&&(candidate.parent===void 0||SelectionRange3.is(candidate.parent))}SelectionRange3.is=is})(SelectionRange2||(SelectionRange2={}));(function(SemanticTokenTypes3){SemanticTokenTypes3.namespace="namespace",SemanticTokenTypes3.type="type",SemanticTokenTypes3.class="class",SemanticTokenTypes3.enum="enum",SemanticTokenTypes3.interface="interface",SemanticTokenTypes3.struct="struct",SemanticTokenTypes3.typeParameter="typeParameter",SemanticTokenTypes3.parameter="parameter",SemanticTokenTypes3.variable="variable",SemanticTokenTypes3.property="property",SemanticTokenTypes3.enumMember="enumMember",SemanticTokenTypes3.event="event",SemanticTokenTypes3.function="function",SemanticTokenTypes3.method="method",SemanticTokenTypes3.macro="macro",SemanticTokenTypes3.keyword="keyword",SemanticTokenTypes3.modifier="modifier",SemanticTokenTypes3.comment="comment",SemanticTokenTypes3.string="string",SemanticTokenTypes3.number="number",SemanticTokenTypes3.regexp="regexp",SemanticTokenTypes3.operator="operator",SemanticTokenTypes3.decorator="decorator"})(SemanticTokenTypes2||(SemanticTokenTypes2={}));(function(SemanticTokenModifiers3){SemanticTokenModifiers3.declaration="declaration",SemanticTokenModifiers3.definition="definition",SemanticTokenModifiers3.readonly="readonly",SemanticTokenModifiers3.static="static",SemanticTokenModifiers3.deprecated="deprecated",SemanticTokenModifiers3.abstract="abstract",SemanticTokenModifiers3.async="async",SemanticTokenModifiers3.modification="modification",SemanticTokenModifiers3.documentation="documentation",SemanticTokenModifiers3.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers2||(SemanticTokenModifiers2={}));(function(SemanticTokens5){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&(candidate.resultId===void 0||typeof candidate.resultId=="string")&&Array.isArray(candidate.data)&&(candidate.data.length===0||typeof candidate.data[0]=="number")}SemanticTokens5.is=is})(SemanticTokens2||(SemanticTokens2={}));(function(InlineValueText3){function create(range,text){return{range,text}}InlineValueText3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is2.string(candidate.text)}InlineValueText3.is=is})(InlineValueText2||(InlineValueText2={}));(function(InlineValueVariableLookup3){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is2.boolean(candidate.caseSensitiveLookup)&&(Is2.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup3.is=is})(InlineValueVariableLookup2||(InlineValueVariableLookup2={}));(function(InlineValueEvaluatableExpression3){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression3.create=create;function is(value){let candidate=value;return candidate!=null&&Range2.is(candidate.range)&&(Is2.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression3.is=is})(InlineValueEvaluatableExpression2||(InlineValueEvaluatableExpression2={}));(function(InlineValueContext3){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext3.create=create;function is(value){let candidate=value;return Is2.defined(candidate)&&Range2.is(value.stoppedLocation)}InlineValueContext3.is=is})(InlineValueContext2||(InlineValueContext2={}));(function(InlayHintKind3){InlayHintKind3.Type=1,InlayHintKind3.Parameter=2;function is(value){return value===1||value===2}InlayHintKind3.is=is})(InlayHintKind2||(InlayHintKind2={}));(function(InlayHintLabelPart3){function create(value){return{value}}InlayHintLabelPart3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is2.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.location===void 0||Location2.is(candidate.location))&&(candidate.command===void 0||Command2.is(candidate.command))}InlayHintLabelPart3.is=is})(InlayHintLabelPart2||(InlayHintLabelPart2={}));(function(InlayHint3){function create(position,label,kind){let result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint3.create=create;function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&Position2.is(candidate.position)&&(Is2.string(candidate.label)||Is2.typedArray(candidate.label,InlayHintLabelPart2.is))&&(candidate.kind===void 0||InlayHintKind2.is(candidate.kind))&&candidate.textEdits===void 0||Is2.typedArray(candidate.textEdits,TextEdit2.is)&&(candidate.tooltip===void 0||Is2.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is2.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is2.boolean(candidate.paddingRight))}InlayHint3.is=is})(InlayHint2||(InlayHint2={}));(function(StringValue3){function createSnippet(value){return{kind:"snippet",value}}StringValue3.createSnippet=createSnippet})(StringValue2||(StringValue2={}));(function(InlineCompletionItem3){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem3.create=create})(InlineCompletionItem2||(InlineCompletionItem2={}));(function(InlineCompletionList3){function create(items){return{items}}InlineCompletionList3.create=create})(InlineCompletionList2||(InlineCompletionList2={}));(function(InlineCompletionTriggerKind3){InlineCompletionTriggerKind3.Invoked=0,InlineCompletionTriggerKind3.Automatic=1})(InlineCompletionTriggerKind2||(InlineCompletionTriggerKind2={}));(function(SelectedCompletionInfo3){function create(range,text){return{range,text}}SelectedCompletionInfo3.create=create})(SelectedCompletionInfo2||(SelectedCompletionInfo2={}));(function(InlineCompletionContext3){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext3.create=create})(InlineCompletionContext2||(InlineCompletionContext2={}));(function(WorkspaceFolder3){function is(value){let candidate=value;return Is2.objectLiteral(candidate)&&URI2.is(candidate.uri)&&Is2.string(candidate.name)}WorkspaceFolder3.is=is})(WorkspaceFolder2||(WorkspaceFolder2={}));EOL2=[`
42
42
  `,`\r
43
43
  `,"\r"];(function(TextDocument4){function create(uri,languageId,version,content){return new FullTextDocument3(uri,languageId,version,content)}TextDocument4.create=create;function is(value){let candidate=value;return!!(Is2.defined(candidate)&&Is2.string(candidate.uri)&&(Is2.undefined(candidate.languageId)||Is2.string(candidate.languageId))&&Is2.uinteger(candidate.lineCount)&&Is2.func(candidate.getText)&&Is2.func(candidate.positionAt)&&Is2.func(candidate.offsetAt))}TextDocument4.is=is;function applyEdits(document,edits){let text=document.getText(),sortedEdits=mergeSort2(edits,(a,b)=>{let diff=a.range.start.line-b.range.start.line;return diff===0?a.range.start.character-b.range.start.character:diff}),lastModifiedOffset=text.length;for(let i=sortedEdits.length-1;i>=0;i--){let e=sortedEdits[i],startOffset=document.offsetAt(e.range.start),endOffset=document.offsetAt(e.range.end);if(endOffset<=lastModifiedOffset)text=text.substring(0,startOffset)+e.newText+text.substring(endOffset,text.length);else throw new Error("Overlapping edit");lastModifiedOffset=startOffset}return text}TextDocument4.applyEdits=applyEdits;function mergeSort2(data,compare){if(data.length<=1)return data;let p=data.length/2|0,left=data.slice(0,p),right=data.slice(p);mergeSort2(left,compare),mergeSort2(right,compare);let leftIdx=0,rightIdx=0,i=0;for(;leftIdx<left.length&&rightIdx<right.length;)compare(left[leftIdx],right[rightIdx])<=0?data[i++]=left[leftIdx++]:data[i++]=right[rightIdx++];for(;leftIdx<left.length;)data[i++]=left[leftIdx++];for(;rightIdx<right.length;)data[i++]=right[rightIdx++];return data}})(TextDocument3||(TextDocument3={}));FullTextDocument3=class{constructor(uri,languageId,version,content){this._uri=uri,this._languageId=languageId,this._version=version,this._content=content,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(range){if(range){let start=this.offsetAt(range.start),end=this.offsetAt(range.end);return this._content.substring(start,end)}return this._content}update(event,version){this._content=event.text,this._version=version,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let lineOffsets=[],text=this._content,isLineStart=!0;for(let i=0;i<text.length;i++){isLineStart&&(lineOffsets.push(i),isLineStart=!1);let ch=text.charAt(i);isLineStart=ch==="\r"||ch===`
44
44
  `,ch==="\r"&&i+1<text.length&&text.charAt(i+1)===`
@@ -28715,4 +28715,4 @@ ${info.documentation}`),{contents:{kind:import_node7.MarkupKind.Markdown,value:l
28715
28715
  `),re=/\bconnect\s+([A-Za-z_][\w.]*)\s+to\s+([A-Za-z_][\w.]*)/g,m2;for(;(m2=re.exec(text))!==null;){let left=m2[1].split(".").pop(),right=m2[2].split(".").pop(),lSym=(indexes.portsByName.get(left)??[])[0],rSym=(indexes.portsByName.get(right)??[])[0];if(!lSym||!rSym)continue;let lType=lSym.typeNames[0]??lSym.typeName,rType=rSym.typeNames[0]??rSym.typeName;if(!lType||!rType||lType===rType||lType==="~"+rType||rType==="~"+lType||lType.startsWith("~")&&lType.slice(1)===rType||rType.startsWith("~")&&rType.slice(1)===lType)continue;let matchLine=text.substring(0,m2.index).split(`
28716
28716
  `).length-1,insideInterfaceDef=!1;for(let i=matchLine;i>=0&&i>=matchLine-30;i--){let line=(lines[i]||"").trim();if(/\binterface\s+def\b/.test(line)){insideInterfaceDef=!0;break}if(/^\s*package\b/.test(line))break}if(insideInterfaceDef)continue;let precedingText=text.substring(Math.max(0,m2.index-300),m2.index);if(/\binterface\s+\w[\w']*(:\w[\w']*)?\s*$/m.test(precedingText))continue;let lDefSyms=indexes.byName.get(lType)??[],rDefSyms=indexes.byName.get(rType)??[],lDef=lDefSyms.find(s=>s.kind.includes("def")),rDef=rDefSyms.find(s=>s.kind.includes("def")),lChildren=lDef?indexes.byParent.get(lDef.qualifiedName)??[]:[],rChildren=rDef?indexes.byParent.get(rDef.qualifiedName)??[]:[];if(lChildren.length===0&&rChildren.length===0)continue;if(lDef&&rDef){let lHierarchy=this.resolveTypeHierarchy(lType,indexes),rHierarchy=this.resolveTypeHierarchy(rType,indexes);if(lHierarchy.has(rType)||rHierarchy.has(lType)||[...lHierarchy].some(t=>rHierarchy.has(t)))continue;let lChildNames=new Set(lChildren.map(c=>c.name));if(rChildren.some(c=>lChildNames.has(c.name)))continue}let range=this.indexToRange(text,m2.index,m2[0].length);diagnostics.push({severity:import_node10.DiagnosticSeverity.Warning,range,message:`Port compatibility issue: '${left}' (${lType}) is connected to '${right}' (${rType})`,source:"sysml",code:"incompatible-port-types",data:{uri}})}return diagnostics}resolveTypeHierarchy(typeName,indexes){let hierarchy=new Set,queue=[typeName];for(;queue.length>0&&hierarchy.size<50;){let current=queue.shift();if(hierarchy.has(current))continue;hierarchy.add(current);let defs=indexes.byName.get(current)??[];for(let def of defs)if(def.kind.includes("def"))for(let parent of def.typeNames)hierarchy.has(parent)||queue.push(parent)}return hierarchy}checkConstraintBodyReferences(text,uri,symbolsInUri,indexes){if(!text)return[];let diagnostics=[],blocks=this.extractConstraintBlocks(text);for(let b of blocks){if(this.hasDocumentationOnlyConstraintBody(b.body)){if(b.isRequire&&this.isInsideViewpoint(text,b.bodyOffset))continue;let trimStart=b.body.search(/\S/),startInBody=trimStart>=0?trimStart:0,trimmedLen=Math.max(1,b.body.trim().length);diagnostics.push({severity:import_node10.DiagnosticSeverity.Warning,range:this.indexToRange(text,b.bodyOffset+startInBody,trimmedLen),message:"Invalid constraint body: expected expression, found documentation text",source:"sysml",code:"invalid-constraint-body",data:{uri}});continue}let parent=this.findConstraintScopeSymbol(symbolsInUri,indexes,b.startLine);if(!parent)continue;let parentMembers=indexes.byParent.get(parent.qualifiedName)??[];if(parentMembers.length===0)continue;let ignoredRanges=this.getIgnoredBodyRanges(b.body),idRe=/\b([A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*)\b/g,im;for(;(im=idRe.exec(b.body))!==null;){if(this.isIndexInRanges(im.index,ignoredRanges))continue;let expr=im[1];if(this.isConstraintKeyword(expr)||/^\d/.test(expr))continue;let path=expr.split(".");if(this.resolvePathFromParent(path,parentMembers,indexes))continue;if(path.length===1){let root=path[0];if(indexes.byName.has(root)||resolveLibraryType(root)!==void 0)continue}let absoluteStart=b.bodyOffset+im.index;diagnostics.push({severity:import_node10.DiagnosticSeverity.Warning,range:this.indexToRange(text,absoluteStart,expr.length),message:`Unresolved constraint reference '${expr}' in scope '${parent.name}'`,source:"sysml",code:"unresolved-constraint-reference",data:{uri}})}}return diagnostics}extractConstraintBlocks(text){let out=[],re=/\b(require\s+)?constraint\s*\{/g,m2;for(;(m2=re.exec(text))!==null;){let open=m2.index+m2[0].length-1,depth=1,i=open+1;for(;i<text.length&&depth>0;){let ch=text[i];ch==="{"&&depth++,ch==="}"&&depth--,i++}if(depth!==0)continue;let bodyStart=open+1,bodyEnd=i-1,body=text.slice(bodyStart,bodyEnd),startLine=text.slice(0,bodyStart).split(`
28717
28717
  `).length-1;out.push({body,bodyOffset:bodyStart,startLine,isRequire:!!m2[1]})}return out}resolvePathFromParent(path,parentMembers,indexes){let root=parentMembers.find(s=>s.name===path[0]);if(!root)return!1;if(path.length===1)return!0;let typeName=root.typeNames[0]??root.typeName;for(let i=1;i<path.length;i++){if(!typeName)return!1;let typeDef=(indexes.definitionsByName.get(typeName)??[])[0];if(!typeDef)return!1;let member=(indexes.byParent.get(typeDef.qualifiedName)??[]).find(s=>s.name===path[i]);if(!member)return!1;typeName=member.typeNames[0]??member.typeName}return!0}findContainingSymbolByLine(symbols,line){return symbols.filter(s=>s.range.start.line<=line&&s.range.end.line>=line).sort((a,b)=>{let ar=(a.range.end.line-a.range.start.line)*1e3+(a.range.end.character-a.range.start.character),br=(b.range.end.line-b.range.start.line)*1e3+(b.range.end.character-b.range.start.character);return ar-br})[0]}findConstraintScopeSymbol(symbolsInUri,indexes,line){let scope=this.findContainingSymbolByLine(symbolsInUri,line);for(;scope;){if((indexes.byParent.get(scope.qualifiedName)??[]).length>0||!scope.parentQualifiedName)return scope;scope=indexes.byQualifiedName.get(scope.parentQualifiedName)}}getOrBuildIndexes(allSymbols){if(this.indexCache&&this.indexCache.symbols===allSymbols)return this.indexCache.indexes;let indexes=buildSymbolIndexes(allSymbols);return this.indexCache={symbols:allSymbols,indexes},indexes}isConstraintKeyword(value){return CONSTRAINT_KEYWORDS.has(value)}getIgnoredBodyRanges(body){let ranges=[],blockRe=/\/\*[\s\S]*?\*\//g,m2;for(;(m2=blockRe.exec(body))!==null;)ranges.push({start:m2.index,end:m2.index+m2[0].length});let lineRe=/\/\/[^\n\r]*/g;for(;(m2=lineRe.exec(body))!==null;)ranges.push({start:m2.index,end:m2.index+m2[0].length});return ranges}isIndexInRanges(index2,ranges){for(let r of ranges)if(index2>=r.start&&index2<r.end)return!0;return!1}hasDocumentationOnlyConstraintBody(body){let trimmed=body.trim();if(!trimmed)return!1;let withoutComments=trimmed.replace(/\/\*[\s\S]*?\*\//g," ").replace(/\/\/[^\n\r]*/g," ").trim();if(withoutComments==="doc"||withoutComments==="comment")return!0;let hasExprSignal=/[<>=!+\-*/%()[\].,:]|\b(and|or|not)\b/.test(withoutComments);return/^[A-Za-z_\s]+$/.test(withoutComments)&&!hasExprSignal}isInsideViewpoint(text,offset){let preceding=text.slice(0,offset),depth=0;for(let i=preceding.length-1;i>=0;i--){let ch=preceding[i];if(ch==="}"&&depth++,ch==="{"){if(depth>0){depth--;continue}let before=preceding.slice(0,i).trimEnd();return/\bviewpoint\b/.test(before.slice(-40))}}return!1}lineOffsetCache;indexToRange(text,start,length){let offsets;if(this.lineOffsetCache&&this.lineOffsetCache.text===text)offsets=this.lineOffsetCache.offsets;else{offsets=[0];for(let i=0;i<text.length;i++)text[i]===`
28718
- `&&offsets.push(i+1);this.lineOffsetCache={text,offsets}}let lo=0,hi=offsets.length-1;for(;lo<hi;){let mid=lo+hi+1>>>1;offsets[mid]<=start?lo=mid:hi=mid-1}let startLine=lo,startChar=start-offsets[startLine];return{start:{line:startLine,character:startChar},end:{line:startLine,character:startChar+length}}}dedupeDiagnostics(diags){let seen=new Set,out=[];for(let d of diags){let key=[d.code??"no-code",d.range.start.line,d.range.start.character,d.range.end.line,d.range.end.character,d.message].join("|");seen.has(key)||(seen.add(key),out.push(d))}return out}checkDuplicateDefinitions(symbols){let diagnostics=[],definitionsByScope=new Map;for(let symbol of symbols){if(!isDefinition(symbol.kind))continue;let scope=symbol.parentQualifiedName??"__root__",scopeMap=definitionsByScope.get(scope);scopeMap||(scopeMap=new Map,definitionsByScope.set(scope,scopeMap));let defs=scopeMap.get(symbol.name);defs||(defs=[],scopeMap.set(symbol.name,defs)),defs.push(symbol)}for(let scopeMap of definitionsByScope.values())for(let[name,defs]of scopeMap)if(defs.length>1)for(let def of defs)diagnostics.push({severity:import_node10.DiagnosticSeverity.Warning,range:def.selectionRange,message:`Duplicate definition: '${name}' is defined ${defs.length} times in the same scope`,source:"sysml",code:"duplicate-definition"});return diagnostics}checkAmbiguousNamespaceName(symbols,allSymbols){let diagnostics=[],conflicts=findConflictedQualifiedNames(allSymbols);if(conflicts.size===0)return diagnostics;for(let symbol of symbols){let conflicting=conflicts.get(symbol.qualifiedName);if(!conflicting)continue;let others=conflicting.filter(s=>s!==symbol),otherKinds=[...new Set(others.map(s=>s.kind))].join(", ");diagnostics.push({severity:import_node10.DiagnosticSeverity.Error,range:symbol.selectionRange,message:`Ambiguous name '${symbol.name}': also declared as ${otherKinds} elsewhere in the workspace. Only a package may be reopened under the same name; rename one of these declarations.`,source:"sysml",code:"ambiguous-namespace-name",data:{name:symbol.name}})}return diagnostics}};async function readFile(_path,_enc){throw new Error("fs/promises.readFile is not available in the browser")}async function readdir(_path,_opts){return[]}var DEFAULT_SKIP_DIRS=["node_modules",".git",".settings","temp","test","tests","out","dist","build","coverage",".venv","__pycache__"],SYSML_EXTENSIONS=[".sysml",".kerml"];function isSysMLFile(name){return SYSML_EXTENSIONS.some(ext=>name.endsWith(ext))}async function findSysMLFilesAsync(dir,skipDirs2){let skip=skipDirs2??new Set(DEFAULT_SKIP_DIRS),results=[],entries;try{entries=await readdir(dir,{withFileTypes:!0})}catch{return results}let childDirPromises=[];for(let entry of entries){let fullPath=join(dir,entry.name);if(entry.isDirectory()){if(skip.has(entry.name))continue;childDirPromises.push(findSysMLFilesAsync(fullPath,skip))}else entry.isFile()&&isSysMLFile(entry.name)&&results.push(fullPath)}if(childDirPromises.length>0){let childResults=await Promise.all(childDirPromises);for(let arr of childResults)results.push(...arr)}return results}async function readFilesBatch(filePaths,batchSize=32){let contents=new Map;for(let i=0;i<filePaths.length;i+=batchSize){let batch=filePaths.slice(i,i+batchSize),settled=await Promise.allSettled(batch.map(async fp=>{let text=await readFile(fp,"utf-8");return{fp,text}}));for(let result of settled)result.status==="fulfilled"&&contents.set(result.value.fp,result.value.text)}return contents}function toFsPath(uri){try{if(uri.startsWith("file://"))return fileURLToPath(uri)}catch{}}var connection=createServerConnection(),documents=new import_node11.TextDocuments(TextDocument2),serverStartTime=Date.now(),documentManager=new DocumentManager,modelProvider=new SysMLModelProvider(documentManager),elementLookupProvider=new ElementLookupProvider(documentManager),diagnosticsProvider=new DiagnosticsProvider(documentManager),completionProvider=new CompletionProvider(documentManager),hoverProvider=new HoverProvider(documentManager),definitionProvider=new DefinitionProvider(documentManager),referencesProvider=new ReferencesProvider(documentManager),documentSymbolProvider=new DocumentSymbolProvider(documentManager),semanticTokensProvider=new SemanticTokensProvider(documentManager),foldingRangeProvider=new FoldingRangeProvider(documentManager),renameProvider=new RenameProvider(documentManager),codeActionProvider=new CodeActionProvider(documentManager),formattingProvider=new FormattingProvider(documents),semanticValidator=new SemanticValidator(documentManager);hoverProvider.setSemanticValidator(semanticValidator);var hasConfigurationCapability=!1,hasWorkspaceFolderCapability=!1,workspaceRoots=[],isWorkspaceFile=!1,skipDirs=new Set(DEFAULT_SKIP_DIRS),serverReady=!1,earlyOpenUris=new Set,workerRequestId=0,isBrowserServer=!0,parseWorker,workerReady=!1;function spawnParseWorker(){if(isBrowserServer){connection.console.log("Parse worker disabled in browser; parsing runs inline");return}let workerPath=join("/","parseWorker.js");try{parseWorker=new Worker(workerPath),parseWorker.on("message",handleWorkerMessage),parseWorker.on("error",err=>{connection.console.log(`Parse worker error: ${err.message}`),workerReady=!1}),parseWorker.on("exit",code=>{connection.console.log(`Parse worker exited with code ${code}`),workerReady=!1,parseWorker=void 0}),workerReady=!0,connection.console.log("Parse worker spawned")}catch(err){connection.console.log(`Failed to spawn parse worker: ${err}`)}}function handleWorkerMessage(msg){if(msg.warmup){connection.console.log(`Worker DFA warm-up: ${msg.elapsed} ms, ${msg.chunksCompleted}/${msg.totalChunks} chunks`+(msg.interrupted?" (interrupted by real parse)":""));return}let{uri,version,errors,keywordDiagnostics}=msg,doc=documents.get(uri);if(!doc||doc.version!==version)return;let diagnostics=[];for(let e of errors){let line=Math.max(0,e.line);diagnostics.push({severity:1,range:{start:{line,character:e.column},end:{line,character:e.column+(e.length||1)}},message:e.message,source:"sysml"})}for(let kd of keywordDiagnostics)diagnostics.push({severity:kd.severity,range:kd.range,message:kd.message,source:"sysml",code:kd.code});connection.sendDiagnostics({uri,diagnostics}),setImmediate(()=>{let currentDoc=documents.get(uri);if(!currentDoc||currentDoc.version!==version)return;documentManager.parse(currentDoc);let correctedDiags=diagnosticsProvider.getDiagnostics(uri),parseResult=documentManager.get(uri);parseResult&&correctedDiags.push(...validateKeywords(parseResult)),connection.sendDiagnostics({uri,diagnostics:correctedDiags}),connection.sendNotification("sysml/status",{state:"end",message:`Parsed ${uri.split("/").pop()} (worker + main)`,fileName:uri.split("/").pop(),uri});let existingSemantic=semanticTimers.get(uri);existingSemantic&&clearTimeout(existingSemantic),semanticTimers.set(uri,setTimeout(()=>{if(semanticTimers.delete(uri),documentManager.getVersion(uri)!==version||!documents.get(uri))return;let semanticDiags=semanticValidator.validate(uri);documentManager.setSemanticDiagnostics(uri,semanticDiags);let allDiags=[...correctedDiags,...semanticDiags];connection.sendDiagnostics({uri,diagnostics:allDiags})},50))})}function requestWorkerParse(document){if(!workerReady||!parseWorker)return!1;let id=++workerRequestId;return parseWorker.postMessage({id,text:document.getText(),uri:document.uri,version:document.version}),!0}connection.onInitialize(params=>{let capabilities=params.capabilities;if(hasConfigurationCapability=!!(capabilities.workspace&&capabilities.workspace.configuration),hasWorkspaceFolderCapability=!!(capabilities.workspace&&capabilities.workspace.workspaceFolders),isWorkspaceFile=params.initializationOptions?.isWorkspaceFile??!1,params.workspaceFolders)workspaceRoots=params.workspaceFolders.map(f=>toFsPath(f.uri)).filter(p=>p!==void 0);else if(params.rootUri){let root=toFsPath(params.rootUri);root&&(workspaceRoots=[root])}let legend={tokenTypes,tokenModifiers},result={capabilities:{textDocumentSync:import_node11.TextDocumentSyncKind.Incremental,completionProvider:{resolveProvider:!0,triggerCharacters:[".",":"," "]},hoverProvider:!0,definitionProvider:!0,referencesProvider:!0,documentSymbolProvider:!0,semanticTokensProvider:{full:!0,legend},foldingRangeProvider:!0,renameProvider:{prepareProvider:!0},codeActionProvider:{codeActionKinds:[import_node11.CodeActionKind.QuickFix]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0}};return hasWorkspaceFolderCapability&&(result.capabilities.workspace={workspaceFolders:{supported:!0}}),result});connection.onInitialized(()=>{hasConfigurationCapability&&(connection.client.register(import_node11.DidChangeConfigurationNotification.type,void 0),pullSettings().catch(()=>{}));let libCount=initLibraryIndex("/");connection.console.log(`SysML v2 Language Server initialized (${libCount} library packages indexed)`);let dfaT0=Date.now();try{let dfaStates=loadDFASnapshot();connection.console.log(`DFA snapshot loaded: ${dfaStates} states in ${Date.now()-dfaT0} ms`)}catch(e){connection.console.log(`DFA snapshot load failed (will use cold DFA): ${e}`)}if(serverReady=!0,spawnParseWorker(),isWorkspaceFile&&workspaceRoots.length>0&&(documentManager.setWorkspaceScanComplete(!1),scanWorkspaceFoldersAsync(workspaceRoots).then(({fileCount,scanMs})=>{connection.console.log(`Workspace scan: pre-parsed ${fileCount} .sysml files in ${scanMs} ms`),documentManager.setWorkspaceScanComplete(!0),revalidateOpenDocuments()})),serverReady=!0,earlyOpenUris.size>0){connection.console.log(`Re-validating ${earlyOpenUris.size} document(s) opened before server was ready`);for(let uri of earlyOpenUris){let doc=documents.get(uri);doc&&validateDocument(doc)}earlyOpenUris.clear()}});async function pullSettings(){if(!hasConfigurationCapability)return;let config=await connection.workspace.getConfiguration("sysml.scan");applySettings(config)}function applySettings(config){if(!config)return;let raw=config.skipDirectories;Array.isArray(raw)&&raw.every(v=>typeof v=="string")&&(skipDirs=new Set(raw))}connection.onDidChangeConfiguration(_change=>{pullSettings().catch(()=>{})});function parseWorkspaceFile(filePath){let uri=pathToFileURL(filePath).toString();if(documents.get(uri))return!1;let content;try{content=readFileSync(filePath,"utf-8")}catch{return!1}let doc=TextDocument2.create(uri,"sysml",0,content);return documentManager.parse(doc),!0}async function scanWorkspaceFoldersAsync(roots){let scanT0=Date.now(),fileArrays=await Promise.all(roots.map(r=>findSysMLFilesAsync(r,skipDirs))),allFiles=[];for(let arr of fileArrays)allFiles.push(...arr);let fileContents=await readFilesBatch(allFiles,32),fileCount=0;for(let i=0;i<allFiles.length;i++){let filePath=allFiles[i],uri=pathToFileURL(filePath).toString();if(documents.get(uri))continue;let content=fileContents.get(filePath);content!==void 0&&(documentManager.parseBatch(uri,0,content),fileCount++,(i+1)%4===0&&await new Promise(resolve=>setImmediate(resolve)))}return{fileCount,scanMs:Date.now()-scanT0}}function revalidateOpenDocuments(){for(let doc of documents.all())validateDocument(doc)}var crossFileRevalidateTimer,CROSS_FILE_REVALIDATE_DEBOUNCE_MS=500;function scheduleCrossFileRevalidate(){crossFileRevalidateTimer&&clearTimeout(crossFileRevalidateTimer),crossFileRevalidateTimer=setTimeout(()=>{crossFileRevalidateTimer=void 0,revalidateOpenDocuments()},CROSS_FILE_REVALIDATE_DEBOUNCE_MS)}documents.onDidOpen(event=>{if(!serverReady){earlyOpenUris.add(event.document.uri),documentManager.parse(event.document);return}validateDocument(event.document),scheduleCrossFileRevalidate()});var debounceTimers=new Map,semanticTimers=new Map,DEBOUNCE_MS=200;documents.onDidChangeContent(event=>{let uri=event.document.uri;documentManager.cacheTextOnly(uri,event.document.version,event.document.getText());let existing=debounceTimers.get(uri);existing&&clearTimeout(existing),debounceTimers.set(uri,setTimeout(()=>{debounceTimers.delete(uri),documents.get(uri)&&(validateDocument(event.document),scheduleCrossFileRevalidate())},DEBOUNCE_MS))});documents.onDidClose(event=>{let uri=event.document.uri,debounceTimer=debounceTimers.get(uri);debounceTimer&&(clearTimeout(debounceTimer),debounceTimers.delete(uri));let semanticTimer=semanticTimers.get(uri);semanticTimer&&(clearTimeout(semanticTimer),semanticTimers.delete(uri)),documentManager.remove(event.document.uri),modelProvider.removeUri(event.document.uri),connection.sendDiagnostics({uri:event.document.uri,diagnostics:[]});let fsPath=toFsPath(event.document.uri);fsPath&&(fsPath.endsWith(".sysml")||fsPath.endsWith(".kerml"))&&parseWorkspaceFile(fsPath)});connection.onDidChangeWatchedFiles(params=>{let changed=!1;for(let change of params.changes){let fsPath=toFsPath(change.uri);fsPath&&(change.type===3?documentManager.get(change.uri)&&(documentManager.remove(change.uri),changed=!0):!documents.get(change.uri)&&(fsPath.endsWith(".sysml")||fsPath.endsWith(".kerml"))&&parseWorkspaceFile(fsPath)&&(changed=!0))}changed&&revalidateOpenDocuments()});async function validateDocument(document){if(!documents.get(document.uri))return;let fileName=document.uri.split("/").pop()??document.uri;if(connection.sendNotification("sysml/status",{state:"begin",message:`Parsing ${fileName}`,fileName,uri:document.uri}),requestWorkerParse(document)){documentManager.cacheTextOnly(document.uri,document.version,document.getText());return}let parseT0=Date.now();documentManager.parse(document);let parseMs=Date.now()-parseT0,diagnostics=diagnosticsProvider.getDiagnostics(document.uri),parseResult=documentManager.get(document.uri);parseResult&&diagnostics.push(...validateKeywords(parseResult)),connection.sendDiagnostics({uri:document.uri,diagnostics}),connection.sendNotification("sysml/status",{state:"end",message:`Parsed ${fileName} (${parseMs} ms)`,fileName,uri:document.uri});let version=document.version,existingSemantic=semanticTimers.get(document.uri);existingSemantic&&clearTimeout(existingSemantic);let semanticTimer=setTimeout(()=>{if(semanticTimers.delete(document.uri),documentManager.getVersion(document.uri)!==version||!documents.get(document.uri))return;let semanticDiags=semanticValidator.validate(document.uri);documentManager.setSemanticDiagnostics(document.uri,semanticDiags),semanticDiags.length!==0&&(diagnostics.push(...semanticDiags),connection.sendDiagnostics({uri:document.uri,diagnostics}))},50);semanticTimers.set(document.uri,semanticTimer)}connection.onCompletion(params=>completionProvider.provideCompletions(params));connection.onCompletionResolve(item=>completionProvider.resolveCompletion(item));connection.onHover(params=>hoverProvider.provideHover(params));connection.onDefinition(params=>definitionProvider.provideDefinition(params));connection.onReferences(params=>referencesProvider.provideReferences(params));connection.onDocumentSymbol(params=>documentSymbolProvider.provideDocumentSymbols(params));connection.languages.semanticTokens.on(params=>semanticTokensProvider.provideSemanticTokens(params));connection.onFoldingRanges(params=>foldingRangeProvider.provideFoldingRanges(params));connection.onPrepareRename(params=>renameProvider.prepareRename(params));connection.onRenameRequest(params=>renameProvider.provideRename(params));connection.onCodeAction(params=>codeActionProvider.provideCodeActions(params));connection.onDocumentFormatting(params=>formattingProvider.provideDocumentFormatting(params));connection.onDocumentRangeFormatting(params=>formattingProvider.provideRangeFormatting(params));connection.onRequest("sysml/model",params=>modelProvider.getModel(params.textDocument.uri,1,params.scope));connection.onRequest("sysml/elementLookup",params=>elementLookupProvider.elementLookup(params));connection.onRequest("sysml/serverStats",()=>{let mem=typeof process<"u"&&typeof process.memoryUsage=="function"?process.memoryUsage():{heapUsed:0,heapTotal:0,rss:0,external:0},toMB=bytes=>Math.round(bytes/1024/1024);return{uptime:Math.round((Date.now()-serverStartTime)/1e3),memory:{heapUsed:toMB(mem.heapUsed),heapTotal:toMB(mem.heapTotal),rss:toMB(mem.rss),external:toMB(mem.external)},caches:{documents:documentManager.getUris().length,symbolTables:modelProvider.cacheSize,semanticTokens:0}}});connection.onRequest("sysml/clearCache",()=>{let docCount=documentManager.getUris().length,stCount=modelProvider.clearAll();for(let uri of documentManager.getUris())documentManager.remove(uri);return{documents:docCount,symbolTables:stCount,semanticTokens:0}});connection.onRequest("sysml/libraryContent",params=>getLibraryFileContent(params?.uri)??null);documents.listen(connection);connection.listen();})();
28718
+ `&&offsets.push(i+1);this.lineOffsetCache={text,offsets}}let lo=0,hi=offsets.length-1;for(;lo<hi;){let mid=lo+hi+1>>>1;offsets[mid]<=start?lo=mid:hi=mid-1}let startLine=lo,startChar=start-offsets[startLine];return{start:{line:startLine,character:startChar},end:{line:startLine,character:startChar+length}}}dedupeDiagnostics(diags){let seen=new Set,out=[];for(let d of diags){let key=[d.code??"no-code",d.range.start.line,d.range.start.character,d.range.end.line,d.range.end.character,d.message].join("|");seen.has(key)||(seen.add(key),out.push(d))}return out}checkDuplicateDefinitions(symbols){let diagnostics=[],definitionsByScope=new Map;for(let symbol of symbols){if(!isDefinition(symbol.kind))continue;let scope=symbol.parentQualifiedName??"__root__",scopeMap=definitionsByScope.get(scope);scopeMap||(scopeMap=new Map,definitionsByScope.set(scope,scopeMap));let defs=scopeMap.get(symbol.name);defs||(defs=[],scopeMap.set(symbol.name,defs)),defs.push(symbol)}for(let scopeMap of definitionsByScope.values())for(let[name,defs]of scopeMap)if(defs.length>1)for(let def of defs)diagnostics.push({severity:import_node10.DiagnosticSeverity.Warning,range:def.selectionRange,message:`Duplicate definition: '${name}' is defined ${defs.length} times in the same scope`,source:"sysml",code:"duplicate-definition"});return diagnostics}checkAmbiguousNamespaceName(symbols,allSymbols){let diagnostics=[],conflicts=findConflictedQualifiedNames(allSymbols);if(conflicts.size===0)return diagnostics;for(let symbol of symbols){let conflicting=conflicts.get(symbol.qualifiedName);if(!conflicting)continue;let others=conflicting.filter(s=>s!==symbol),otherKinds=[...new Set(others.map(s=>s.kind))].join(", ");diagnostics.push({severity:import_node10.DiagnosticSeverity.Error,range:symbol.selectionRange,message:`Ambiguous name '${symbol.name}': also declared as ${otherKinds} elsewhere in the workspace. Only a package may be reopened under the same name; rename one of these declarations.`,source:"sysml",code:"ambiguous-namespace-name",data:{name:symbol.name}})}return diagnostics}};async function readFile(_path,_enc){throw new Error("fs/promises.readFile is not available in the browser")}async function readdir(_path,_opts){return[]}var DEFAULT_SKIP_DIRS=["node_modules",".git",".settings","temp","test","tests","out","dist","build","coverage",".venv","__pycache__"],SYSML_EXTENSIONS=[".sysml",".kerml"];function isSysMLFile(name){return SYSML_EXTENSIONS.some(ext=>name.endsWith(ext))}async function findSysMLFilesAsync(dir,skipDirs2){let skip=skipDirs2??new Set(DEFAULT_SKIP_DIRS),results=[],entries;try{entries=await readdir(dir,{withFileTypes:!0})}catch{return results}let childDirPromises=[];for(let entry of entries){let fullPath=join(dir,entry.name);if(entry.isDirectory()){if(skip.has(entry.name))continue;childDirPromises.push(findSysMLFilesAsync(fullPath,skip))}else entry.isFile()&&isSysMLFile(entry.name)&&results.push(fullPath)}if(childDirPromises.length>0){let childResults=await Promise.all(childDirPromises);for(let arr of childResults)results.push(...arr)}return results}async function readFilesBatch(filePaths,batchSize=32){let contents=new Map;for(let i=0;i<filePaths.length;i+=batchSize){let batch=filePaths.slice(i,i+batchSize),settled=await Promise.allSettled(batch.map(async fp=>{let text=await readFile(fp,"utf-8");return{fp,text}}));for(let result of settled)result.status==="fulfilled"&&contents.set(result.value.fp,result.value.text)}return contents}function toFsPath(uri){try{if(uri.startsWith("file://"))return fileURLToPath(uri)}catch{}}var connection=createServerConnection(),documents=new import_node11.TextDocuments(TextDocument2),serverStartTime=Date.now(),documentManager=new DocumentManager,modelProvider=new SysMLModelProvider(documentManager),elementLookupProvider=new ElementLookupProvider(documentManager),diagnosticsProvider=new DiagnosticsProvider(documentManager),completionProvider=new CompletionProvider(documentManager),hoverProvider=new HoverProvider(documentManager),definitionProvider=new DefinitionProvider(documentManager),referencesProvider=new ReferencesProvider(documentManager),documentSymbolProvider=new DocumentSymbolProvider(documentManager),semanticTokensProvider=new SemanticTokensProvider(documentManager),foldingRangeProvider=new FoldingRangeProvider(documentManager),renameProvider=new RenameProvider(documentManager),codeActionProvider=new CodeActionProvider(documentManager),formattingProvider=new FormattingProvider(documents),semanticValidator=new SemanticValidator(documentManager);hoverProvider.setSemanticValidator(semanticValidator);var hasConfigurationCapability=!1,hasWorkspaceFolderCapability=!1,workspaceRoots=[],isWorkspaceFile=!1,preloadOnOpen="workspaceOnly",disabledDiagnosticCodes=new Set;function publishDiagnostics(uri,diagnostics){connection.sendDiagnostics({uri,diagnostics:diagnostics.filter(diagnostic=>diagnostic.code===void 0||!disabledDiagnosticCodes.has(String(diagnostic.code)))})}var skipDirs=new Set(DEFAULT_SKIP_DIRS),serverReady=!1,earlyOpenUris=new Set,workerRequestId=0,isBrowserServer=!0,parseWorker,workerReady=!1;function spawnParseWorker(){if(isBrowserServer){connection.console.log("Parse worker disabled in browser; parsing runs inline");return}let workerPath=join("/","parseWorker.js");try{parseWorker=new Worker(workerPath),parseWorker.on("message",handleWorkerMessage),parseWorker.on("error",err=>{connection.console.log(`Parse worker error: ${err.message}`),workerReady=!1}),parseWorker.on("exit",code=>{connection.console.log(`Parse worker exited with code ${code}`),workerReady=!1,parseWorker=void 0}),workerReady=!0,connection.console.log("Parse worker spawned")}catch(err){connection.console.log(`Failed to spawn parse worker: ${err}`)}}function handleWorkerMessage(msg){if(msg.warmup){connection.console.log(`Worker DFA warm-up: ${msg.elapsed} ms, ${msg.chunksCompleted}/${msg.totalChunks} chunks`+(msg.interrupted?" (interrupted by real parse)":""));return}let{uri,version,errors,keywordDiagnostics}=msg,doc=documents.get(uri);if(!doc||doc.version!==version)return;let diagnostics=[];for(let e of errors){let line=Math.max(0,e.line);diagnostics.push({severity:1,range:{start:{line,character:e.column},end:{line,character:e.column+(e.length||1)}},message:e.message,source:"sysml"})}for(let kd of keywordDiagnostics)diagnostics.push({severity:kd.severity,range:kd.range,message:kd.message,source:"sysml",code:kd.code});publishDiagnostics(uri,diagnostics),setImmediate(()=>{let currentDoc=documents.get(uri);if(!currentDoc||currentDoc.version!==version)return;documentManager.parse(currentDoc);let correctedDiags=diagnosticsProvider.getDiagnostics(uri),parseResult=documentManager.get(uri);parseResult&&correctedDiags.push(...validateKeywords(parseResult)),publishDiagnostics(uri,correctedDiags),connection.sendNotification("sysml/status",{state:"end",message:`Parsed ${uri.split("/").pop()} (worker + main)`,fileName:uri.split("/").pop(),uri});let existingSemantic=semanticTimers.get(uri);existingSemantic&&clearTimeout(existingSemantic),semanticTimers.set(uri,setTimeout(()=>{if(semanticTimers.delete(uri),documentManager.getVersion(uri)!==version||!documents.get(uri))return;let semanticDiags=semanticValidator.validate(uri);documentManager.setSemanticDiagnostics(uri,semanticDiags);let allDiags=[...correctedDiags,...semanticDiags];publishDiagnostics(uri,allDiags)},50))})}function requestWorkerParse(document){if(!workerReady||!parseWorker)return!1;let id=++workerRequestId;return parseWorker.postMessage({id,text:document.getText(),uri:document.uri,version:document.version}),!0}connection.onInitialize(params=>{let capabilities=params.capabilities;if(hasConfigurationCapability=!!(capabilities.workspace&&capabilities.workspace.configuration),hasWorkspaceFolderCapability=!!(capabilities.workspace&&capabilities.workspace.workspaceFolders),isWorkspaceFile=params.initializationOptions?.isWorkspaceFile??!1,params.workspaceFolders)workspaceRoots=params.workspaceFolders.map(f=>toFsPath(f.uri)).filter(p=>p!==void 0);else if(params.rootUri){let root=toFsPath(params.rootUri);root&&(workspaceRoots=[root])}let legend={tokenTypes,tokenModifiers},result={capabilities:{textDocumentSync:import_node11.TextDocumentSyncKind.Incremental,completionProvider:{resolveProvider:!0,triggerCharacters:[".",":"," "]},hoverProvider:!0,definitionProvider:!0,referencesProvider:!0,documentSymbolProvider:!0,semanticTokensProvider:{full:!0,legend},foldingRangeProvider:!0,renameProvider:{prepareProvider:!0},codeActionProvider:{codeActionKinds:[import_node11.CodeActionKind.QuickFix]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0}};return hasWorkspaceFolderCapability&&(result.capabilities.workspace={workspaceFolders:{supported:!0}}),result});connection.onInitialized(async()=>{hasConfigurationCapability&&(connection.client.register(import_node11.DidChangeConfigurationNotification.type,void 0),await pullSettings().catch(()=>{}));let libCount=initLibraryIndex("/");connection.console.log(`SysML v2 Language Server initialized (${libCount} library packages indexed)`);let dfaT0=Date.now();try{let dfaStates=loadDFASnapshot();connection.console.log(`DFA snapshot loaded: ${dfaStates} states in ${Date.now()-dfaT0} ms`)}catch(e){connection.console.log(`DFA snapshot load failed (will use cold DFA): ${e}`)}if(serverReady=!0,spawnParseWorker(),workspaceRoots.length>0&&(preloadOnOpen==="always"||preloadOnOpen==="workspaceOnly"&&isWorkspaceFile)&&(documentManager.setWorkspaceScanComplete(!1),scanWorkspaceFoldersAsync(workspaceRoots).then(({fileCount,scanMs})=>{connection.console.log(`Workspace scan: pre-parsed ${fileCount} .sysml files in ${scanMs} ms`),documentManager.setWorkspaceScanComplete(!0),revalidateOpenDocuments()})),serverReady=!0,earlyOpenUris.size>0){connection.console.log(`Re-validating ${earlyOpenUris.size} document(s) opened before server was ready`);for(let uri of earlyOpenUris){let doc=documents.get(uri);doc&&validateDocument(doc)}earlyOpenUris.clear()}});async function pullSettings(){if(!hasConfigurationCapability)return;let config=await connection.workspace.getConfiguration("sysml.scan");applySettings(config);let policy=(await connection.workspace.getConfiguration("sysml.workspace"))?.preloadOnOpen;preloadOnOpen=policy==="always"||policy==="never"?policy:"workspaceOnly";let codes=(await connection.workspace.getConfiguration("sysml.validation"))?.disabledCodes;disabledDiagnosticCodes=new Set(Array.isArray(codes)?codes.filter(code=>typeof code=="string"):[])}function applySettings(config){if(!config)return;let raw=config.skipDirectories;Array.isArray(raw)&&raw.every(v=>typeof v=="string")&&(skipDirs=new Set(raw))}connection.onDidChangeConfiguration(_change=>{pullSettings().then(()=>revalidateOpenDocuments()).catch(()=>{})});function parseWorkspaceFile(filePath){let uri=pathToFileURL(filePath).toString();if(documents.get(uri))return!1;let content;try{content=readFileSync(filePath,"utf-8")}catch{return!1}let doc=TextDocument2.create(uri,"sysml",0,content);return documentManager.parse(doc),!0}async function scanWorkspaceFoldersAsync(roots){let scanT0=Date.now(),fileArrays=await Promise.all(roots.map(r=>findSysMLFilesAsync(r,skipDirs))),allFiles=[];for(let arr of fileArrays)allFiles.push(...arr);let fileContents=await readFilesBatch(allFiles,32),fileCount=0;for(let i=0;i<allFiles.length;i++){let filePath=allFiles[i],uri=pathToFileURL(filePath).toString();if(documents.get(uri))continue;let content=fileContents.get(filePath);content!==void 0&&(documentManager.parseBatch(uri,0,content),fileCount++,(i+1)%4===0&&await new Promise(resolve=>setImmediate(resolve)))}return{fileCount,scanMs:Date.now()-scanT0}}function revalidateOpenDocuments(){for(let doc of documents.all())validateDocument(doc)}var crossFileRevalidateTimer,CROSS_FILE_REVALIDATE_DEBOUNCE_MS=500;function scheduleCrossFileRevalidate(){crossFileRevalidateTimer&&clearTimeout(crossFileRevalidateTimer),crossFileRevalidateTimer=setTimeout(()=>{crossFileRevalidateTimer=void 0,revalidateOpenDocuments()},CROSS_FILE_REVALIDATE_DEBOUNCE_MS)}documents.onDidOpen(event=>{if(!serverReady){earlyOpenUris.add(event.document.uri),documentManager.parse(event.document);return}validateDocument(event.document),scheduleCrossFileRevalidate()});var debounceTimers=new Map,semanticTimers=new Map,DEBOUNCE_MS=200;documents.onDidChangeContent(event=>{let uri=event.document.uri;documentManager.cacheTextOnly(uri,event.document.version,event.document.getText());let existing=debounceTimers.get(uri);existing&&clearTimeout(existing),debounceTimers.set(uri,setTimeout(()=>{debounceTimers.delete(uri),documents.get(uri)&&(validateDocument(event.document),scheduleCrossFileRevalidate())},DEBOUNCE_MS))});documents.onDidClose(event=>{let uri=event.document.uri,debounceTimer=debounceTimers.get(uri);debounceTimer&&(clearTimeout(debounceTimer),debounceTimers.delete(uri));let semanticTimer=semanticTimers.get(uri);semanticTimer&&(clearTimeout(semanticTimer),semanticTimers.delete(uri)),documentManager.remove(event.document.uri),modelProvider.removeUri(event.document.uri),publishDiagnostics(event.document.uri,[]);let fsPath=toFsPath(event.document.uri);fsPath&&(fsPath.endsWith(".sysml")||fsPath.endsWith(".kerml"))&&parseWorkspaceFile(fsPath)});connection.onDidChangeWatchedFiles(params=>{let changed=!1;for(let change of params.changes){let fsPath=toFsPath(change.uri);fsPath&&(change.type===3?documentManager.get(change.uri)&&(documentManager.remove(change.uri),changed=!0):!documents.get(change.uri)&&(fsPath.endsWith(".sysml")||fsPath.endsWith(".kerml"))&&parseWorkspaceFile(fsPath)&&(changed=!0))}changed&&revalidateOpenDocuments()});async function validateDocument(document){if(!documents.get(document.uri))return;let fileName=document.uri.split("/").pop()??document.uri;if(connection.sendNotification("sysml/status",{state:"begin",message:`Parsing ${fileName}`,fileName,uri:document.uri}),requestWorkerParse(document)){documentManager.cacheTextOnly(document.uri,document.version,document.getText());return}let parseT0=Date.now();documentManager.parse(document);let parseMs=Date.now()-parseT0,diagnostics=diagnosticsProvider.getDiagnostics(document.uri),parseResult=documentManager.get(document.uri);parseResult&&diagnostics.push(...validateKeywords(parseResult)),publishDiagnostics(document.uri,diagnostics),connection.sendNotification("sysml/status",{state:"end",message:`Parsed ${fileName} (${parseMs} ms)`,fileName,uri:document.uri});let version=document.version,existingSemantic=semanticTimers.get(document.uri);existingSemantic&&clearTimeout(existingSemantic);let semanticTimer=setTimeout(()=>{if(semanticTimers.delete(document.uri),documentManager.getVersion(document.uri)!==version||!documents.get(document.uri))return;let semanticDiags=semanticValidator.validate(document.uri);documentManager.setSemanticDiagnostics(document.uri,semanticDiags),semanticDiags.length!==0&&(diagnostics.push(...semanticDiags),publishDiagnostics(document.uri,diagnostics))},50);semanticTimers.set(document.uri,semanticTimer)}connection.onCompletion(params=>completionProvider.provideCompletions(params));connection.onCompletionResolve(item=>completionProvider.resolveCompletion(item));connection.onHover(params=>hoverProvider.provideHover(params));connection.onDefinition(params=>definitionProvider.provideDefinition(params));connection.onReferences(params=>referencesProvider.provideReferences(params));connection.onDocumentSymbol(params=>documentSymbolProvider.provideDocumentSymbols(params));connection.languages.semanticTokens.on(params=>semanticTokensProvider.provideSemanticTokens(params));connection.onFoldingRanges(params=>foldingRangeProvider.provideFoldingRanges(params));connection.onPrepareRename(params=>renameProvider.prepareRename(params));connection.onRenameRequest(params=>renameProvider.provideRename(params));connection.onCodeAction(params=>codeActionProvider.provideCodeActions(params));connection.onDocumentFormatting(params=>formattingProvider.provideDocumentFormatting(params));connection.onDocumentRangeFormatting(params=>formattingProvider.provideRangeFormatting(params));connection.onRequest("sysml/model",params=>modelProvider.getModel(params.textDocument.uri,1,params.scope));connection.onRequest("sysml/elementLookup",params=>elementLookupProvider.elementLookup(params));connection.onRequest("sysml/serverStats",()=>{let mem=typeof process<"u"&&typeof process.memoryUsage=="function"?process.memoryUsage():{heapUsed:0,heapTotal:0,rss:0,external:0},toMB=bytes=>Math.round(bytes/1024/1024);return{uptime:Math.round((Date.now()-serverStartTime)/1e3),memory:{heapUsed:toMB(mem.heapUsed),heapTotal:toMB(mem.heapTotal),rss:toMB(mem.rss),external:toMB(mem.external)},caches:{documents:documentManager.getUris().length,symbolTables:modelProvider.cacheSize,semanticTokens:0}}});connection.onRequest("sysml/clearCache",()=>{let docCount=documentManager.getUris().length,stCount=modelProvider.clearAll();for(let uri of documentManager.getUris())documentManager.remove(uri);return{documents:docCount,symbolTables:stCount,semanticTokens:0}});connection.onRequest("sysml/libraryContent",params=>getLibraryFileContent(params?.uri)??null);documents.listen(connection);connection.listen();})();