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.
- package/CHANGELOG.md +10 -0
- package/dist/server/browserServerMain.js +3 -3
- package/dist/server/server.js +2 -2
- package/package.json +22 -1
package/dist/server/server.js
CHANGED
|
@@ -28,7 +28,7 @@ ${JSON.stringify(message,null,4)}`);let responseMessage=message;if(Is.string(res
|
|
|
28
28
|
|
|
29
29
|
`:message.error===void 0&&(data=`No result returned.
|
|
30
30
|
|
|
31
|
-
`)),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(Is.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 Is.func(type)?starNotificationHandler=type:handler&&(Is.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(Is.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(resolve2,reject)=>{let resolveWithCleanup=r=>{resolve2(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):Is.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&&(Is.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,Is.func(messageWriter.dispose)&&messageWriter.dispose(),Is.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}exports2.createMessageConnection=createMessageConnection}});var require_api=__commonJS({"server/node_modules/vscode-jsonrpc/lib/common/api.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.ProgressType=exports2.ProgressToken=exports2.createMessageConnection=exports2.NullLogger=exports2.ConnectionOptions=exports2.ConnectionStrategy=exports2.AbstractMessageBuffer=exports2.WriteableStreamMessageWriter=exports2.AbstractMessageWriter=exports2.MessageWriter=exports2.ReadableStreamMessageReader=exports2.AbstractMessageReader=exports2.MessageReader=exports2.SharedArrayReceiverStrategy=exports2.SharedArraySenderStrategy=exports2.CancellationToken=exports2.CancellationTokenSource=exports2.Emitter=exports2.Event=exports2.Disposable=exports2.LRUCache=exports2.Touch=exports2.LinkedMap=exports2.ParameterStructures=exports2.NotificationType9=exports2.NotificationType8=exports2.NotificationType7=exports2.NotificationType6=exports2.NotificationType5=exports2.NotificationType4=exports2.NotificationType3=exports2.NotificationType2=exports2.NotificationType1=exports2.NotificationType0=exports2.NotificationType=exports2.ErrorCodes=exports2.ResponseError=exports2.RequestType9=exports2.RequestType8=exports2.RequestType7=exports2.RequestType6=exports2.RequestType5=exports2.RequestType4=exports2.RequestType3=exports2.RequestType2=exports2.RequestType1=exports2.RequestType0=exports2.RequestType=exports2.Message=exports2.RAL=void 0;exports2.MessageStrategy=exports2.CancellationStrategy=exports2.CancellationSenderStrategy=exports2.CancellationReceiverStrategy=exports2.ConnectionError=exports2.ConnectionErrors=exports2.LogTraceNotification=exports2.SetTraceNotification=exports2.TraceFormat=exports2.TraceValues=exports2.Trace=void 0;var messages_1=require_messages();Object.defineProperty(exports2,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports2,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports2,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports2,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports2,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports2,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports2,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports2,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports2,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports2,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports2,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports2,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports2,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports2,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports2,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports2,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports2,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports2,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports2,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports2,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports2,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports2,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports2,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports2,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports2,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports2,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap();Object.defineProperty(exports2,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports2,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports2,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable();Object.defineProperty(exports2,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events();Object.defineProperty(exports2,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports2,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation();Object.defineProperty(exports2,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports2,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation();Object.defineProperty(exports2,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports2,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader();Object.defineProperty(exports2,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports2,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports2,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter();Object.defineProperty(exports2,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports2,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports2,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer();Object.defineProperty(exports2,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection();Object.defineProperty(exports2,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports2,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports2,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports2,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports2,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports2,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports2,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports2,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});Object.defineProperty(exports2,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports2,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports2,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports2,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports2,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports2,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports2,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports2,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports2,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});var ral_1=require_ral();exports2.RAL=ral_1.default}});var require_ril=__commonJS({"server/node_modules/vscode-jsonrpc/lib/node/ril.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});var util_1=require("util"),api_1=require_api(),MessageBuffer=class _MessageBuffer extends api_1.AbstractMessageBuffer{constructor(encoding="utf-8"){super(encoding)}emptyBuffer(){return _MessageBuffer.emptyBuffer}fromString(value,encoding){return Buffer.from(value,encoding)}toString(value,encoding){return value instanceof Buffer?value.toString(encoding):new util_1.TextDecoder(encoding).decode(value)}asNative(buffer,length){return length===void 0?buffer instanceof Buffer?buffer:Buffer.from(buffer):buffer instanceof Buffer?buffer.slice(0,length):Buffer.from(buffer,0,length)}allocNative(length){return Buffer.allocUnsafe(length)}};MessageBuffer.emptyBuffer=Buffer.allocUnsafe(0);var ReadableStreamWrapper=class{constructor(stream){this.stream=stream}onClose(listener){return this.stream.on("close",listener),api_1.Disposable.create(()=>this.stream.off("close",listener))}onError(listener){return this.stream.on("error",listener),api_1.Disposable.create(()=>this.stream.off("error",listener))}onEnd(listener){return this.stream.on("end",listener),api_1.Disposable.create(()=>this.stream.off("end",listener))}onData(listener){return this.stream.on("data",listener),api_1.Disposable.create(()=>this.stream.off("data",listener))}},WritableStreamWrapper=class{constructor(stream){this.stream=stream}onClose(listener){return this.stream.on("close",listener),api_1.Disposable.create(()=>this.stream.off("close",listener))}onError(listener){return this.stream.on("error",listener),api_1.Disposable.create(()=>this.stream.off("error",listener))}onEnd(listener){return this.stream.on("end",listener),api_1.Disposable.create(()=>this.stream.off("end",listener))}write(data,encoding){return new Promise((resolve2,reject)=>{let callback=error=>{error==null?resolve2():reject(error)};typeof data=="string"?this.stream.write(data,encoding,callback):this.stream.write(data,callback)})}end(){this.stream.end()}},_ril=Object.freeze({messageBuffer:Object.freeze({create:encoding=>new MessageBuffer(encoding)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(msg,options)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(msg,void 0,0),options.charset))}catch(err){return Promise.reject(err)}}}),decoder:Object.freeze({name:"application/json",decode:(buffer,options)=>{try{return buffer instanceof Buffer?Promise.resolve(JSON.parse(buffer.toString(options.charset))):Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)))}catch(err){return Promise.reject(err)}}})}),stream:Object.freeze({asReadableStream:stream=>new ReadableStreamWrapper(stream),asWritableStream:stream=>new WritableStreamWrapper(stream)}),console,timer:Object.freeze({setTimeout(callback,ms,...args){let handle=setTimeout(callback,ms,...args);return{dispose:()=>clearTimeout(handle)}},setImmediate(callback,...args){let handle=setImmediate(callback,...args);return{dispose:()=>clearImmediate(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={}));exports2.default=RIL}});var require_main=__commonJS({"server/node_modules/vscode-jsonrpc/lib/node/main.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__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=exports2&&exports2.__exportStar||function(m2,exports3){for(var p in m2)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p)&&__createBinding(exports3,m2,p)};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.createMessageConnection=exports2.createServerSocketTransport=exports2.createClientSocketTransport=exports2.createServerPipeTransport=exports2.createClientPipeTransport=exports2.generateRandomPipeName=exports2.StreamMessageWriter=exports2.StreamMessageReader=exports2.SocketMessageWriter=exports2.SocketMessageReader=exports2.PortMessageWriter=exports2.PortMessageReader=exports2.IPCMessageWriter=exports2.IPCMessageReader=void 0;var ril_1=require_ril();ril_1.default.install();var path3=require("path"),os=require("os"),crypto_1=require("crypto"),net_1=require("net"),api_1=require_api();__exportStar(require_api(),exports2);var IPCMessageReader=class extends api_1.AbstractMessageReader{constructor(process2){super(),this.process=process2;let eventEmitter=this.process;eventEmitter.on("error",error=>this.fireError(error)),eventEmitter.on("close",()=>this.fireClose())}listen(callback){return this.process.on("message",callback),api_1.Disposable.create(()=>this.process.off("message",callback))}};exports2.IPCMessageReader=IPCMessageReader;var IPCMessageWriter=class extends api_1.AbstractMessageWriter{constructor(process2){super(),this.process=process2,this.errorCount=0;let eventEmitter=this.process;eventEmitter.on("error",error=>this.fireError(error)),eventEmitter.on("close",()=>this.fireClose)}write(msg){try{return typeof this.process.send=="function"&&this.process.send(msg,void 0,void 0,error=>{error?(this.errorCount++,this.handleError(error,msg)):this.errorCount=0}),Promise.resolve()}catch(error){return this.handleError(error,msg),Promise.reject(error)}}handleError(error,msg){this.errorCount++,this.fireError(error,msg,this.errorCount)}end(){}};exports2.IPCMessageWriter=IPCMessageWriter;var PortMessageReader=class extends api_1.AbstractMessageReader{constructor(port){super(),this.onData=new api_1.Emitter,port.on("close",()=>this.fireClose),port.on("error",error=>this.fireError(error)),port.on("message",message=>{this.onData.fire(message)})}listen(callback){return this.onData.event(callback)}};exports2.PortMessageReader=PortMessageReader;var PortMessageWriter=class extends api_1.AbstractMessageWriter{constructor(port){super(),this.port=port,this.errorCount=0,port.on("close",()=>this.fireClose()),port.on("error",error=>this.fireError(error))}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(){}};exports2.PortMessageWriter=PortMessageWriter;var SocketMessageReader=class extends api_1.ReadableStreamMessageReader{constructor(socket,encoding="utf-8"){super((0,ril_1.default)().stream.asReadableStream(socket),encoding)}};exports2.SocketMessageReader=SocketMessageReader;var SocketMessageWriter=class extends api_1.WriteableStreamMessageWriter{constructor(socket,options){super((0,ril_1.default)().stream.asWritableStream(socket),options),this.socket=socket}dispose(){super.dispose(),this.socket.destroy()}};exports2.SocketMessageWriter=SocketMessageWriter;var StreamMessageReader=class extends api_1.ReadableStreamMessageReader{constructor(readable,encoding){super((0,ril_1.default)().stream.asReadableStream(readable),encoding)}};exports2.StreamMessageReader=StreamMessageReader;var StreamMessageWriter=class extends api_1.WriteableStreamMessageWriter{constructor(writable,options){super((0,ril_1.default)().stream.asWritableStream(writable),options)}};exports2.StreamMessageWriter=StreamMessageWriter;var XDG_RUNTIME_DIR=process.env.XDG_RUNTIME_DIR,safeIpcPathLengths=new Map([["linux",107],["darwin",103]]);function generateRandomPipeName(){let randomSuffix=(0,crypto_1.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${randomSuffix}-sock`;let result;XDG_RUNTIME_DIR?result=path3.join(XDG_RUNTIME_DIR,`vscode-ipc-${randomSuffix}.sock`):result=path3.join(os.tmpdir(),`vscode-${randomSuffix}.sock`);let limit=safeIpcPathLengths.get(process.platform);return limit!==void 0&&result.length>limit&&(0,ril_1.default)().console.warn(`WARNING: IPC handle "${result}" is longer than ${limit} characters.`),result}exports2.generateRandomPipeName=generateRandomPipeName;function createClientPipeTransport(pipeName,encoding="utf-8"){let connectResolve,connected=new Promise((resolve2,_reject)=>{connectResolve=resolve2});return new Promise((resolve2,reject)=>{let server=(0,net_1.createServer)(socket=>{server.close(),connectResolve([new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)])});server.on("error",reject),server.listen(pipeName,()=>{server.removeListener("error",reject),resolve2({onConnected:()=>connected})})})}exports2.createClientPipeTransport=createClientPipeTransport;function createServerPipeTransport(pipeName,encoding="utf-8"){let socket=(0,net_1.createConnection)(pipeName);return[new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)]}exports2.createServerPipeTransport=createServerPipeTransport;function createClientSocketTransport(port,encoding="utf-8"){let connectResolve,connected=new Promise((resolve2,_reject)=>{connectResolve=resolve2});return new Promise((resolve2,reject)=>{let server=(0,net_1.createServer)(socket=>{server.close(),connectResolve([new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)])});server.on("error",reject),server.listen(port,"127.0.0.1",()=>{server.removeListener("error",reject),resolve2({onConnected:()=>connected})})})}exports2.createClientSocketTransport=createClientSocketTransport;function createServerSocketTransport(port,encoding="utf-8"){let socket=(0,net_1.createConnection)(port,"127.0.0.1");return[new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)]}exports2.createServerSocketTransport=createServerSocketTransport;function isReadableStream(value){let candidate=value;return candidate.read!==void 0&&candidate.addListener!==void 0}function isWritableStream(value){let candidate=value;return candidate.write!==void 0&&candidate.addListener!==void 0}function createMessageConnection(input,output,logger,options){logger||(logger=api_1.NullLogger);let reader=isReadableStream(input)?new StreamMessageReader(input):input,writer=isWritableStream(output)?new StreamMessageWriter(output):output;return api_1.ConnectionStrategy.is(options)&&(options={connectionStrategy:options}),(0,api_1.createMessageConnection)(reader,writer,logger,options)}exports2.createMessageConnection=createMessageConnection}});var require_node=__commonJS({"server/node_modules/vscode-jsonrpc/node.js"(exports2,module2){"use strict";module2.exports=require_main()}});var require_main2=__commonJS({"server/node_modules/vscode-languageserver-types/lib/umd/main.js"(exports2,module2){(function(factory){if(typeof module2=="object"&&typeof module2.exports=="object"){var v=factory(require,exports2);v!==void 0&&(module2.exports=v)}else typeof define=="function"&&define.amd&&define(["require","exports"],factory)})(function(require2,exports3){"use strict";Object.defineProperty(exports3,"__esModule",{value:!0}),exports3.TextDocument=exports3.EOL=exports3.WorkspaceFolder=exports3.InlineCompletionContext=exports3.SelectedCompletionInfo=exports3.InlineCompletionTriggerKind=exports3.InlineCompletionList=exports3.InlineCompletionItem=exports3.StringValue=exports3.InlayHint=exports3.InlayHintLabelPart=exports3.InlayHintKind=exports3.InlineValueContext=exports3.InlineValueEvaluatableExpression=exports3.InlineValueVariableLookup=exports3.InlineValueText=exports3.SemanticTokens=exports3.SemanticTokenModifiers=exports3.SemanticTokenTypes=exports3.SelectionRange=exports3.DocumentLink=exports3.FormattingOptions=exports3.CodeLens=exports3.CodeAction=exports3.CodeActionContext=exports3.CodeActionTriggerKind=exports3.CodeActionKind=exports3.DocumentSymbol=exports3.WorkspaceSymbol=exports3.SymbolInformation=exports3.SymbolTag=exports3.SymbolKind=exports3.DocumentHighlight=exports3.DocumentHighlightKind=exports3.SignatureInformation=exports3.ParameterInformation=exports3.Hover=exports3.MarkedString=exports3.CompletionList=exports3.CompletionItem=exports3.CompletionItemLabelDetails=exports3.InsertTextMode=exports3.InsertReplaceEdit=exports3.CompletionItemTag=exports3.InsertTextFormat=exports3.CompletionItemKind=exports3.MarkupContent=exports3.MarkupKind=exports3.TextDocumentItem=exports3.OptionalVersionedTextDocumentIdentifier=exports3.VersionedTextDocumentIdentifier=exports3.TextDocumentIdentifier=exports3.WorkspaceChange=exports3.WorkspaceEdit=exports3.DeleteFile=exports3.RenameFile=exports3.CreateFile=exports3.TextDocumentEdit=exports3.AnnotatedTextEdit=exports3.ChangeAnnotationIdentifier=exports3.ChangeAnnotation=exports3.TextEdit=exports3.Command=exports3.Diagnostic=exports3.CodeDescription=exports3.DiagnosticTag=exports3.DiagnosticSeverity=exports3.DiagnosticRelatedInformation=exports3.FoldingRange=exports3.FoldingRangeKind=exports3.ColorPresentation=exports3.ColorInformation=exports3.Color=exports3.LocationLink=exports3.Location=exports3.Range=exports3.Position=exports3.uinteger=exports3.integer=exports3.URI=exports3.DocumentUri=void 0;var DocumentUri;(function(DocumentUri2){function is(value){return typeof value=="string"}DocumentUri2.is=is})(DocumentUri||(exports3.DocumentUri=DocumentUri={}));var URI;(function(URI2){function is(value){return typeof value=="string"}URI2.is=is})(URI||(exports3.URI=URI={}));var integer;(function(integer2){integer2.MIN_VALUE=-2147483648,integer2.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer2.MIN_VALUE<=value&&value<=integer2.MAX_VALUE}integer2.is=is})(integer||(exports3.integer=integer={}));var uinteger;(function(uinteger2){uinteger2.MIN_VALUE=0,uinteger2.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger2.MIN_VALUE<=value&&value<=uinteger2.MAX_VALUE}uinteger2.is=is})(uinteger||(exports3.uinteger=uinteger={}));var Position2;(function(Position3){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger.MAX_VALUE),{line,character}}Position3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.line)&&Is.uinteger(candidate.character)}Position3.is=is})(Position2||(exports3.Position=Position2={}));var Range2;(function(Range3){function create(one,two,three,four){if(Is.uinteger(one)&&Is.uinteger(two)&&Is.uinteger(three)&&Is.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[".concat(one,", ").concat(two,", ").concat(three,", ").concat(four,"]"))}Range3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Position2.is(candidate.start)&&Position2.is(candidate.end)}Range3.is=is})(Range2||(exports3.Range=Range2={}));var Location2;(function(Location3){function create(uri,range){return{uri,range}}Location3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&(Is.string(candidate.uri)||Is.undefined(candidate.uri))}Location3.is=is})(Location2||(exports3.Location=Location2={}));var LocationLink;(function(LocationLink2){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.targetRange)&&Is.string(candidate.targetUri)&&Range2.is(candidate.targetSelectionRange)&&(Range2.is(candidate.originSelectionRange)||Is.undefined(candidate.originSelectionRange))}LocationLink2.is=is})(LocationLink||(exports3.LocationLink=LocationLink={}));var Color;(function(Color2){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color2.create=create;function is(value){var 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)}Color2.is=is})(Color||(exports3.Color=Color={}));var ColorInformation;(function(ColorInformation2){function create(range,color){return{range,color}}ColorInformation2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&Color.is(candidate.color)}ColorInformation2.is=is})(ColorInformation||(exports3.ColorInformation=ColorInformation={}));var ColorPresentation;(function(ColorPresentation2){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.undefined(candidate.textEdit)||TextEdit4.is(candidate))&&(Is.undefined(candidate.additionalTextEdits)||Is.typedArray(candidate.additionalTextEdits,TextEdit4.is))}ColorPresentation2.is=is})(ColorPresentation||(exports3.ColorPresentation=ColorPresentation={}));var FoldingRangeKind2;(function(FoldingRangeKind3){FoldingRangeKind3.Comment="comment",FoldingRangeKind3.Imports="imports",FoldingRangeKind3.Region="region"})(FoldingRangeKind2||(exports3.FoldingRangeKind=FoldingRangeKind2={}));var FoldingRange3;(function(FoldingRange4){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){var 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}FoldingRange4.create=create;function is(value){var 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))}FoldingRange4.is=is})(FoldingRange3||(exports3.FoldingRange=FoldingRange3={}));var DiagnosticRelatedInformation;(function(DiagnosticRelatedInformation2){function create(location,message){return{location,message}}DiagnosticRelatedInformation2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Location2.is(candidate.location)&&Is.string(candidate.message)}DiagnosticRelatedInformation2.is=is})(DiagnosticRelatedInformation||(exports3.DiagnosticRelatedInformation=DiagnosticRelatedInformation={}));var DiagnosticSeverity5;(function(DiagnosticSeverity6){DiagnosticSeverity6.Error=1,DiagnosticSeverity6.Warning=2,DiagnosticSeverity6.Information=3,DiagnosticSeverity6.Hint=4})(DiagnosticSeverity5||(exports3.DiagnosticSeverity=DiagnosticSeverity5={}));var DiagnosticTag;(function(DiagnosticTag2){DiagnosticTag2.Unnecessary=1,DiagnosticTag2.Deprecated=2})(DiagnosticTag||(exports3.DiagnosticTag=DiagnosticTag={}));var CodeDescription;(function(CodeDescription2){function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.href)}CodeDescription2.is=is})(CodeDescription||(exports3.CodeDescription=CodeDescription={}));var Diagnostic5;(function(Diagnostic6){function create(range,message,severity,code,source,relatedInformation){var 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}Diagnostic6.create=create;function is(value){var _a,candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&Is.string(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))}Diagnostic6.is=is})(Diagnostic5||(exports3.Diagnostic=Diagnostic5={}));var Command;(function(Command2){function create(title,command){for(var args=[],_i=2;_i<arguments.length;_i++)args[_i-2]=arguments[_i];var result={title,command};return Is.defined(args)&&args.length>0&&(result.arguments=args),result}Command2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.title)&&Is.string(candidate.command)}Command2.is=is})(Command||(exports3.Command=Command={}));var TextEdit4;(function(TextEdit5){function replace(range,newText){return{range,newText}}TextEdit5.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit5.insert=insert;function del(range){return{range,newText:""}}TextEdit5.del=del;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.newText)&&Range2.is(candidate.range)}TextEdit5.is=is})(TextEdit4||(exports3.TextEdit=TextEdit4={}));var ChangeAnnotation;(function(ChangeAnnotation2){function create(label,needsConfirmation,description){var result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation2.create=create;function is(value){var 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)}ChangeAnnotation2.is=is})(ChangeAnnotation||(exports3.ChangeAnnotation=ChangeAnnotation={}));var ChangeAnnotationIdentifier;(function(ChangeAnnotationIdentifier2){function is(value){var candidate=value;return Is.string(candidate)}ChangeAnnotationIdentifier2.is=is})(ChangeAnnotationIdentifier||(exports3.ChangeAnnotationIdentifier=ChangeAnnotationIdentifier={}));var AnnotatedTextEdit;(function(AnnotatedTextEdit2){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit2.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit2.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit2.del=del;function is(value){var candidate=value;return TextEdit4.is(candidate)&&(ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}AnnotatedTextEdit2.is=is})(AnnotatedTextEdit||(exports3.AnnotatedTextEdit=AnnotatedTextEdit={}));var TextDocumentEdit;(function(TextDocumentEdit2){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit2.is=is})(TextDocumentEdit||(exports3.TextDocumentEdit=TextDocumentEdit={}));var CreateFile;(function(CreateFile2){function create(uri,options,annotation){var 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}CreateFile2.create=create;function is(value){var 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))}CreateFile2.is=is})(CreateFile||(exports3.CreateFile=CreateFile={}));var RenameFile;(function(RenameFile2){function create(oldUri,newUri,options,annotation){var 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}RenameFile2.create=create;function is(value){var 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))}RenameFile2.is=is})(RenameFile||(exports3.RenameFile=RenameFile={}));var DeleteFile;(function(DeleteFile2){function create(uri,options,annotation){var 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}DeleteFile2.create=create;function is(value){var 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))}DeleteFile2.is=is})(DeleteFile||(exports3.DeleteFile=DeleteFile={}));var WorkspaceEdit3;(function(WorkspaceEdit4){function is(value){var candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(function(change){return Is.string(change.kind)?CreateFile.is(change)||RenameFile.is(change)||DeleteFile.is(change):TextDocumentEdit.is(change)}))}WorkspaceEdit4.is=is})(WorkspaceEdit3||(exports3.WorkspaceEdit=WorkspaceEdit3={}));var TextEditChangeImpl=(function(){function TextEditChangeImpl2(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}return TextEditChangeImpl2.prototype.insert=function(position,newText,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.replace=function(range,newText,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.delete=function(range,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.add=function(edit){this.edits.push(edit)},TextEditChangeImpl2.prototype.all=function(){return this.edits},TextEditChangeImpl2.prototype.clear=function(){this.edits.splice(0,this.edits.length)},TextEditChangeImpl2.prototype.assertChangeAnnotations=function(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},TextEditChangeImpl2})(),ChangeAnnotations=(function(){function ChangeAnnotations2(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}return ChangeAnnotations2.prototype.all=function(){return this._annotations},Object.defineProperty(ChangeAnnotations2.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),ChangeAnnotations2.prototype.manage=function(idOrAnnotation,annotation){var id;if(ChangeAnnotationIdentifier.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error("Id ".concat(id," is already in use."));if(annotation===void 0)throw new Error("No annotation provided for id ".concat(id));return this._annotations[id]=annotation,this._size++,id},ChangeAnnotations2.prototype.nextId=function(){return this._counter++,this._counter.toString()},ChangeAnnotations2})(),WorkspaceChange=(function(){function WorkspaceChange2(workspaceEdit){var _this=this;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(function(change){if(TextDocumentEdit.is(change)){var textEditChange=new TextEditChangeImpl(change.edits,_this._changeAnnotations);_this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(function(key){var textEditChange=new TextEditChangeImpl(workspaceEdit.changes[key]);_this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}return Object.defineProperty(WorkspaceChange2.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),WorkspaceChange2.prototype.getTextEditChange=function(key){if(OptionalVersionedTextDocumentIdentifier.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){var 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.");var result=this._textEditChanges[key];if(!result){var edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl(edits),this._textEditChanges[key]=result}return result}},WorkspaceChange2.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},WorkspaceChange2.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},WorkspaceChange2.prototype.createFile=function(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2.prototype.renameFile=function(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2.prototype.deleteFile=function(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2})();exports3.WorkspaceChange=WorkspaceChange;var TextDocumentIdentifier;(function(TextDocumentIdentifier2){function create(uri){return{uri}}TextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)}TextDocumentIdentifier2.is=is})(TextDocumentIdentifier||(exports3.TextDocumentIdentifier=TextDocumentIdentifier={}));var VersionedTextDocumentIdentifier;(function(VersionedTextDocumentIdentifier2){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.integer(candidate.version)}VersionedTextDocumentIdentifier2.is=is})(VersionedTextDocumentIdentifier||(exports3.VersionedTextDocumentIdentifier=VersionedTextDocumentIdentifier={}));var OptionalVersionedTextDocumentIdentifier;(function(OptionalVersionedTextDocumentIdentifier2){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&(candidate.version===null||Is.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier2.is=is})(OptionalVersionedTextDocumentIdentifier||(exports3.OptionalVersionedTextDocumentIdentifier=OptionalVersionedTextDocumentIdentifier={}));var TextDocumentItem;(function(TextDocumentItem2){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.string(candidate.languageId)&&Is.integer(candidate.version)&&Is.string(candidate.text)}TextDocumentItem2.is=is})(TextDocumentItem||(exports3.TextDocumentItem=TextDocumentItem={}));var MarkupKind2;(function(MarkupKind3){MarkupKind3.PlainText="plaintext",MarkupKind3.Markdown="markdown";function is(value){var candidate=value;return candidate===MarkupKind3.PlainText||candidate===MarkupKind3.Markdown}MarkupKind3.is=is})(MarkupKind2||(exports3.MarkupKind=MarkupKind2={}));var MarkupContent2;(function(MarkupContent3){function is(value){var candidate=value;return Is.objectLiteral(value)&&MarkupKind2.is(candidate.kind)&&Is.string(candidate.value)}MarkupContent3.is=is})(MarkupContent2||(exports3.MarkupContent=MarkupContent2={}));var CompletionItemKind2;(function(CompletionItemKind3){CompletionItemKind3.Text=1,CompletionItemKind3.Method=2,CompletionItemKind3.Function=3,CompletionItemKind3.Constructor=4,CompletionItemKind3.Field=5,CompletionItemKind3.Variable=6,CompletionItemKind3.Class=7,CompletionItemKind3.Interface=8,CompletionItemKind3.Module=9,CompletionItemKind3.Property=10,CompletionItemKind3.Unit=11,CompletionItemKind3.Value=12,CompletionItemKind3.Enum=13,CompletionItemKind3.Keyword=14,CompletionItemKind3.Snippet=15,CompletionItemKind3.Color=16,CompletionItemKind3.File=17,CompletionItemKind3.Reference=18,CompletionItemKind3.Folder=19,CompletionItemKind3.EnumMember=20,CompletionItemKind3.Constant=21,CompletionItemKind3.Struct=22,CompletionItemKind3.Event=23,CompletionItemKind3.Operator=24,CompletionItemKind3.TypeParameter=25})(CompletionItemKind2||(exports3.CompletionItemKind=CompletionItemKind2={}));var InsertTextFormat2;(function(InsertTextFormat3){InsertTextFormat3.PlainText=1,InsertTextFormat3.Snippet=2})(InsertTextFormat2||(exports3.InsertTextFormat=InsertTextFormat2={}));var CompletionItemTag;(function(CompletionItemTag2){CompletionItemTag2.Deprecated=1})(CompletionItemTag||(exports3.CompletionItemTag=CompletionItemTag={}));var InsertReplaceEdit;(function(InsertReplaceEdit2){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit2.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.newText)&&Range2.is(candidate.insert)&&Range2.is(candidate.replace)}InsertReplaceEdit2.is=is})(InsertReplaceEdit||(exports3.InsertReplaceEdit=InsertReplaceEdit={}));var InsertTextMode;(function(InsertTextMode2){InsertTextMode2.asIs=1,InsertTextMode2.adjustIndentation=2})(InsertTextMode||(exports3.InsertTextMode=InsertTextMode={}));var CompletionItemLabelDetails;(function(CompletionItemLabelDetails2){function is(value){var candidate=value;return candidate&&(Is.string(candidate.detail)||candidate.detail===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails2.is=is})(CompletionItemLabelDetails||(exports3.CompletionItemLabelDetails=CompletionItemLabelDetails={}));var CompletionItem3;(function(CompletionItem4){function create(label){return{label}}CompletionItem4.create=create})(CompletionItem3||(exports3.CompletionItem=CompletionItem3={}));var CompletionList;(function(CompletionList2){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList2.create=create})(CompletionList||(exports3.CompletionList=CompletionList={}));var MarkedString;(function(MarkedString2){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString2.fromPlainText=fromPlainText;function is(value){var candidate=value;return Is.string(candidate)||Is.objectLiteral(candidate)&&Is.string(candidate.language)&&Is.string(candidate.value)}MarkedString2.is=is})(MarkedString||(exports3.MarkedString=MarkedString={}));var Hover3;(function(Hover4){function is(value){var candidate=value;return!!candidate&&Is.objectLiteral(candidate)&&(MarkupContent2.is(candidate.contents)||MarkedString.is(candidate.contents)||Is.typedArray(candidate.contents,MarkedString.is))&&(value.range===void 0||Range2.is(value.range))}Hover4.is=is})(Hover3||(exports3.Hover=Hover3={}));var ParameterInformation;(function(ParameterInformation2){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation2.create=create})(ParameterInformation||(exports3.ParameterInformation=ParameterInformation={}));var SignatureInformation;(function(SignatureInformation2){function create(label,documentation){for(var parameters=[],_i=2;_i<arguments.length;_i++)parameters[_i-2]=arguments[_i];var result={label};return Is.defined(documentation)&&(result.documentation=documentation),Is.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation2.create=create})(SignatureInformation||(exports3.SignatureInformation=SignatureInformation={}));var DocumentHighlightKind;(function(DocumentHighlightKind2){DocumentHighlightKind2.Text=1,DocumentHighlightKind2.Read=2,DocumentHighlightKind2.Write=3})(DocumentHighlightKind||(exports3.DocumentHighlightKind=DocumentHighlightKind={}));var DocumentHighlight;(function(DocumentHighlight2){function create(range,kind){var result={range};return Is.number(kind)&&(result.kind=kind),result}DocumentHighlight2.create=create})(DocumentHighlight||(exports3.DocumentHighlight=DocumentHighlight={}));var SymbolKind2;(function(SymbolKind3){SymbolKind3.File=1,SymbolKind3.Module=2,SymbolKind3.Namespace=3,SymbolKind3.Package=4,SymbolKind3.Class=5,SymbolKind3.Method=6,SymbolKind3.Property=7,SymbolKind3.Field=8,SymbolKind3.Constructor=9,SymbolKind3.Enum=10,SymbolKind3.Interface=11,SymbolKind3.Function=12,SymbolKind3.Variable=13,SymbolKind3.Constant=14,SymbolKind3.String=15,SymbolKind3.Number=16,SymbolKind3.Boolean=17,SymbolKind3.Array=18,SymbolKind3.Object=19,SymbolKind3.Key=20,SymbolKind3.Null=21,SymbolKind3.EnumMember=22,SymbolKind3.Struct=23,SymbolKind3.Event=24,SymbolKind3.Operator=25,SymbolKind3.TypeParameter=26})(SymbolKind2||(exports3.SymbolKind=SymbolKind2={}));var SymbolTag;(function(SymbolTag2){SymbolTag2.Deprecated=1})(SymbolTag||(exports3.SymbolTag=SymbolTag={}));var SymbolInformation;(function(SymbolInformation2){function create(name,kind,range,uri,containerName){var result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation2.create=create})(SymbolInformation||(exports3.SymbolInformation=SymbolInformation={}));var WorkspaceSymbol;(function(WorkspaceSymbol2){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol2.create=create})(WorkspaceSymbol||(exports3.WorkspaceSymbol=WorkspaceSymbol={}));var DocumentSymbol2;(function(DocumentSymbol3){function create(name,detail,kind,range,selectionRange,children){var result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol3.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.name)&&Is.number(candidate.kind)&&Range2.is(candidate.range)&&Range2.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))}DocumentSymbol3.is=is})(DocumentSymbol2||(exports3.DocumentSymbol=DocumentSymbol2={}));var CodeActionKind3;(function(CodeActionKind4){CodeActionKind4.Empty="",CodeActionKind4.QuickFix="quickfix",CodeActionKind4.Refactor="refactor",CodeActionKind4.RefactorExtract="refactor.extract",CodeActionKind4.RefactorInline="refactor.inline",CodeActionKind4.RefactorRewrite="refactor.rewrite",CodeActionKind4.Source="source",CodeActionKind4.SourceOrganizeImports="source.organizeImports",CodeActionKind4.SourceFixAll="source.fixAll"})(CodeActionKind3||(exports3.CodeActionKind=CodeActionKind3={}));var CodeActionTriggerKind;(function(CodeActionTriggerKind2){CodeActionTriggerKind2.Invoked=1,CodeActionTriggerKind2.Automatic=2})(CodeActionTriggerKind||(exports3.CodeActionTriggerKind=CodeActionTriggerKind={}));var CodeActionContext;(function(CodeActionContext2){function create(diagnostics,only,triggerKind){var result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.typedArray(candidate.diagnostics,Diagnostic5.is)&&(candidate.only===void 0||Is.typedArray(candidate.only,Is.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind.Invoked||candidate.triggerKind===CodeActionTriggerKind.Automatic)}CodeActionContext2.is=is})(CodeActionContext||(exports3.CodeActionContext=CodeActionContext={}));var CodeAction2;(function(CodeAction3){function create(title,kindOrCommandOrEdit,kind){var 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}CodeAction3.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.title)&&(candidate.diagnostics===void 0||Is.typedArray(candidate.diagnostics,Diagnostic5.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||WorkspaceEdit3.is(candidate.edit))}CodeAction3.is=is})(CodeAction2||(exports3.CodeAction=CodeAction2={}));var CodeLens;(function(CodeLens2){function create(range,data){var result={range};return Is.defined(data)&&(result.data=data),result}CodeLens2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&(Is.undefined(candidate.command)||Command.is(candidate.command))}CodeLens2.is=is})(CodeLens||(exports3.CodeLens=CodeLens={}));var FormattingOptions;(function(FormattingOptions2){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.uinteger(candidate.tabSize)&&Is.boolean(candidate.insertSpaces)}FormattingOptions2.is=is})(FormattingOptions||(exports3.FormattingOptions=FormattingOptions={}));var DocumentLink;(function(DocumentLink2){function create(range,target,data){return{range,target,data}}DocumentLink2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&(Is.undefined(candidate.target)||Is.string(candidate.target))}DocumentLink2.is=is})(DocumentLink||(exports3.DocumentLink=DocumentLink={}));var SelectionRange;(function(SelectionRange2){function create(range,parent){return{range,parent}}SelectionRange2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&(candidate.parent===void 0||SelectionRange2.is(candidate.parent))}SelectionRange2.is=is})(SelectionRange||(exports3.SelectionRange=SelectionRange={}));var SemanticTokenTypes;(function(SemanticTokenTypes2){SemanticTokenTypes2.namespace="namespace",SemanticTokenTypes2.type="type",SemanticTokenTypes2.class="class",SemanticTokenTypes2.enum="enum",SemanticTokenTypes2.interface="interface",SemanticTokenTypes2.struct="struct",SemanticTokenTypes2.typeParameter="typeParameter",SemanticTokenTypes2.parameter="parameter",SemanticTokenTypes2.variable="variable",SemanticTokenTypes2.property="property",SemanticTokenTypes2.enumMember="enumMember",SemanticTokenTypes2.event="event",SemanticTokenTypes2.function="function",SemanticTokenTypes2.method="method",SemanticTokenTypes2.macro="macro",SemanticTokenTypes2.keyword="keyword",SemanticTokenTypes2.modifier="modifier",SemanticTokenTypes2.comment="comment",SemanticTokenTypes2.string="string",SemanticTokenTypes2.number="number",SemanticTokenTypes2.regexp="regexp",SemanticTokenTypes2.operator="operator",SemanticTokenTypes2.decorator="decorator"})(SemanticTokenTypes||(exports3.SemanticTokenTypes=SemanticTokenTypes={}));var SemanticTokenModifiers;(function(SemanticTokenModifiers2){SemanticTokenModifiers2.declaration="declaration",SemanticTokenModifiers2.definition="definition",SemanticTokenModifiers2.readonly="readonly",SemanticTokenModifiers2.static="static",SemanticTokenModifiers2.deprecated="deprecated",SemanticTokenModifiers2.abstract="abstract",SemanticTokenModifiers2.async="async",SemanticTokenModifiers2.modification="modification",SemanticTokenModifiers2.documentation="documentation",SemanticTokenModifiers2.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers||(exports3.SemanticTokenModifiers=SemanticTokenModifiers={}));var SemanticTokens3;(function(SemanticTokens4){function is(value){var 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")}SemanticTokens4.is=is})(SemanticTokens3||(exports3.SemanticTokens=SemanticTokens3={}));var InlineValueText;(function(InlineValueText2){function create(range,text){return{range,text}}InlineValueText2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is.string(candidate.text)}InlineValueText2.is=is})(InlineValueText||(exports3.InlineValueText=InlineValueText={}));var InlineValueVariableLookup;(function(InlineValueVariableLookup2){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is.boolean(candidate.caseSensitiveLookup)&&(Is.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup2.is=is})(InlineValueVariableLookup||(exports3.InlineValueVariableLookup=InlineValueVariableLookup={}));var InlineValueEvaluatableExpression;(function(InlineValueEvaluatableExpression2){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&(Is.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression2.is=is})(InlineValueEvaluatableExpression||(exports3.InlineValueEvaluatableExpression=InlineValueEvaluatableExpression={}));var InlineValueContext;(function(InlineValueContext2){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(value.stoppedLocation)}InlineValueContext2.is=is})(InlineValueContext||(exports3.InlineValueContext=InlineValueContext={}));var InlayHintKind;(function(InlayHintKind2){InlayHintKind2.Type=1,InlayHintKind2.Parameter=2;function is(value){return value===1||value===2}InlayHintKind2.is=is})(InlayHintKind||(exports3.InlayHintKind=InlayHintKind={}));var InlayHintLabelPart;(function(InlayHintLabelPart2){function create(value){return{value}}InlayHintLabelPart2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.location===void 0||Location2.is(candidate.location))&&(candidate.command===void 0||Command.is(candidate.command))}InlayHintLabelPart2.is=is})(InlayHintLabelPart||(exports3.InlayHintLabelPart=InlayHintLabelPart={}));var InlayHint;(function(InlayHint2){function create(position,label,kind){var result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Position2.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,TextEdit4.is)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is.boolean(candidate.paddingRight))}InlayHint2.is=is})(InlayHint||(exports3.InlayHint=InlayHint={}));var StringValue;(function(StringValue2){function createSnippet(value){return{kind:"snippet",value}}StringValue2.createSnippet=createSnippet})(StringValue||(exports3.StringValue=StringValue={}));var InlineCompletionItem;(function(InlineCompletionItem2){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem2.create=create})(InlineCompletionItem||(exports3.InlineCompletionItem=InlineCompletionItem={}));var InlineCompletionList;(function(InlineCompletionList2){function create(items){return{items}}InlineCompletionList2.create=create})(InlineCompletionList||(exports3.InlineCompletionList=InlineCompletionList={}));var InlineCompletionTriggerKind;(function(InlineCompletionTriggerKind2){InlineCompletionTriggerKind2.Invoked=0,InlineCompletionTriggerKind2.Automatic=1})(InlineCompletionTriggerKind||(exports3.InlineCompletionTriggerKind=InlineCompletionTriggerKind={}));var SelectedCompletionInfo;(function(SelectedCompletionInfo2){function create(range,text){return{range,text}}SelectedCompletionInfo2.create=create})(SelectedCompletionInfo||(exports3.SelectedCompletionInfo=SelectedCompletionInfo={}));var InlineCompletionContext;(function(InlineCompletionContext2){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext2.create=create})(InlineCompletionContext||(exports3.InlineCompletionContext=InlineCompletionContext={}));var WorkspaceFolder;(function(WorkspaceFolder2){function is(value){var candidate=value;return Is.objectLiteral(candidate)&&URI.is(candidate.uri)&&Is.string(candidate.name)}WorkspaceFolder2.is=is})(WorkspaceFolder||(exports3.WorkspaceFolder=WorkspaceFolder={})),exports3.EOL=[`
|
|
31
|
+
`)),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(Is.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 Is.func(type)?starNotificationHandler=type:handler&&(Is.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(Is.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(resolve2,reject)=>{let resolveWithCleanup=r=>{resolve2(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):Is.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&&(Is.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,Is.func(messageWriter.dispose)&&messageWriter.dispose(),Is.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}exports2.createMessageConnection=createMessageConnection}});var require_api=__commonJS({"server/node_modules/vscode-jsonrpc/lib/common/api.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.ProgressType=exports2.ProgressToken=exports2.createMessageConnection=exports2.NullLogger=exports2.ConnectionOptions=exports2.ConnectionStrategy=exports2.AbstractMessageBuffer=exports2.WriteableStreamMessageWriter=exports2.AbstractMessageWriter=exports2.MessageWriter=exports2.ReadableStreamMessageReader=exports2.AbstractMessageReader=exports2.MessageReader=exports2.SharedArrayReceiverStrategy=exports2.SharedArraySenderStrategy=exports2.CancellationToken=exports2.CancellationTokenSource=exports2.Emitter=exports2.Event=exports2.Disposable=exports2.LRUCache=exports2.Touch=exports2.LinkedMap=exports2.ParameterStructures=exports2.NotificationType9=exports2.NotificationType8=exports2.NotificationType7=exports2.NotificationType6=exports2.NotificationType5=exports2.NotificationType4=exports2.NotificationType3=exports2.NotificationType2=exports2.NotificationType1=exports2.NotificationType0=exports2.NotificationType=exports2.ErrorCodes=exports2.ResponseError=exports2.RequestType9=exports2.RequestType8=exports2.RequestType7=exports2.RequestType6=exports2.RequestType5=exports2.RequestType4=exports2.RequestType3=exports2.RequestType2=exports2.RequestType1=exports2.RequestType0=exports2.RequestType=exports2.Message=exports2.RAL=void 0;exports2.MessageStrategy=exports2.CancellationStrategy=exports2.CancellationSenderStrategy=exports2.CancellationReceiverStrategy=exports2.ConnectionError=exports2.ConnectionErrors=exports2.LogTraceNotification=exports2.SetTraceNotification=exports2.TraceFormat=exports2.TraceValues=exports2.Trace=void 0;var messages_1=require_messages();Object.defineProperty(exports2,"Message",{enumerable:!0,get:function(){return messages_1.Message}});Object.defineProperty(exports2,"RequestType",{enumerable:!0,get:function(){return messages_1.RequestType}});Object.defineProperty(exports2,"RequestType0",{enumerable:!0,get:function(){return messages_1.RequestType0}});Object.defineProperty(exports2,"RequestType1",{enumerable:!0,get:function(){return messages_1.RequestType1}});Object.defineProperty(exports2,"RequestType2",{enumerable:!0,get:function(){return messages_1.RequestType2}});Object.defineProperty(exports2,"RequestType3",{enumerable:!0,get:function(){return messages_1.RequestType3}});Object.defineProperty(exports2,"RequestType4",{enumerable:!0,get:function(){return messages_1.RequestType4}});Object.defineProperty(exports2,"RequestType5",{enumerable:!0,get:function(){return messages_1.RequestType5}});Object.defineProperty(exports2,"RequestType6",{enumerable:!0,get:function(){return messages_1.RequestType6}});Object.defineProperty(exports2,"RequestType7",{enumerable:!0,get:function(){return messages_1.RequestType7}});Object.defineProperty(exports2,"RequestType8",{enumerable:!0,get:function(){return messages_1.RequestType8}});Object.defineProperty(exports2,"RequestType9",{enumerable:!0,get:function(){return messages_1.RequestType9}});Object.defineProperty(exports2,"ResponseError",{enumerable:!0,get:function(){return messages_1.ResponseError}});Object.defineProperty(exports2,"ErrorCodes",{enumerable:!0,get:function(){return messages_1.ErrorCodes}});Object.defineProperty(exports2,"NotificationType",{enumerable:!0,get:function(){return messages_1.NotificationType}});Object.defineProperty(exports2,"NotificationType0",{enumerable:!0,get:function(){return messages_1.NotificationType0}});Object.defineProperty(exports2,"NotificationType1",{enumerable:!0,get:function(){return messages_1.NotificationType1}});Object.defineProperty(exports2,"NotificationType2",{enumerable:!0,get:function(){return messages_1.NotificationType2}});Object.defineProperty(exports2,"NotificationType3",{enumerable:!0,get:function(){return messages_1.NotificationType3}});Object.defineProperty(exports2,"NotificationType4",{enumerable:!0,get:function(){return messages_1.NotificationType4}});Object.defineProperty(exports2,"NotificationType5",{enumerable:!0,get:function(){return messages_1.NotificationType5}});Object.defineProperty(exports2,"NotificationType6",{enumerable:!0,get:function(){return messages_1.NotificationType6}});Object.defineProperty(exports2,"NotificationType7",{enumerable:!0,get:function(){return messages_1.NotificationType7}});Object.defineProperty(exports2,"NotificationType8",{enumerable:!0,get:function(){return messages_1.NotificationType8}});Object.defineProperty(exports2,"NotificationType9",{enumerable:!0,get:function(){return messages_1.NotificationType9}});Object.defineProperty(exports2,"ParameterStructures",{enumerable:!0,get:function(){return messages_1.ParameterStructures}});var linkedMap_1=require_linkedMap();Object.defineProperty(exports2,"LinkedMap",{enumerable:!0,get:function(){return linkedMap_1.LinkedMap}});Object.defineProperty(exports2,"LRUCache",{enumerable:!0,get:function(){return linkedMap_1.LRUCache}});Object.defineProperty(exports2,"Touch",{enumerable:!0,get:function(){return linkedMap_1.Touch}});var disposable_1=require_disposable();Object.defineProperty(exports2,"Disposable",{enumerable:!0,get:function(){return disposable_1.Disposable}});var events_1=require_events();Object.defineProperty(exports2,"Event",{enumerable:!0,get:function(){return events_1.Event}});Object.defineProperty(exports2,"Emitter",{enumerable:!0,get:function(){return events_1.Emitter}});var cancellation_1=require_cancellation();Object.defineProperty(exports2,"CancellationTokenSource",{enumerable:!0,get:function(){return cancellation_1.CancellationTokenSource}});Object.defineProperty(exports2,"CancellationToken",{enumerable:!0,get:function(){return cancellation_1.CancellationToken}});var sharedArrayCancellation_1=require_sharedArrayCancellation();Object.defineProperty(exports2,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArraySenderStrategy}});Object.defineProperty(exports2,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return sharedArrayCancellation_1.SharedArrayReceiverStrategy}});var messageReader_1=require_messageReader();Object.defineProperty(exports2,"MessageReader",{enumerable:!0,get:function(){return messageReader_1.MessageReader}});Object.defineProperty(exports2,"AbstractMessageReader",{enumerable:!0,get:function(){return messageReader_1.AbstractMessageReader}});Object.defineProperty(exports2,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return messageReader_1.ReadableStreamMessageReader}});var messageWriter_1=require_messageWriter();Object.defineProperty(exports2,"MessageWriter",{enumerable:!0,get:function(){return messageWriter_1.MessageWriter}});Object.defineProperty(exports2,"AbstractMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.AbstractMessageWriter}});Object.defineProperty(exports2,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return messageWriter_1.WriteableStreamMessageWriter}});var messageBuffer_1=require_messageBuffer();Object.defineProperty(exports2,"AbstractMessageBuffer",{enumerable:!0,get:function(){return messageBuffer_1.AbstractMessageBuffer}});var connection_1=require_connection();Object.defineProperty(exports2,"ConnectionStrategy",{enumerable:!0,get:function(){return connection_1.ConnectionStrategy}});Object.defineProperty(exports2,"ConnectionOptions",{enumerable:!0,get:function(){return connection_1.ConnectionOptions}});Object.defineProperty(exports2,"NullLogger",{enumerable:!0,get:function(){return connection_1.NullLogger}});Object.defineProperty(exports2,"createMessageConnection",{enumerable:!0,get:function(){return connection_1.createMessageConnection}});Object.defineProperty(exports2,"ProgressToken",{enumerable:!0,get:function(){return connection_1.ProgressToken}});Object.defineProperty(exports2,"ProgressType",{enumerable:!0,get:function(){return connection_1.ProgressType}});Object.defineProperty(exports2,"Trace",{enumerable:!0,get:function(){return connection_1.Trace}});Object.defineProperty(exports2,"TraceValues",{enumerable:!0,get:function(){return connection_1.TraceValues}});Object.defineProperty(exports2,"TraceFormat",{enumerable:!0,get:function(){return connection_1.TraceFormat}});Object.defineProperty(exports2,"SetTraceNotification",{enumerable:!0,get:function(){return connection_1.SetTraceNotification}});Object.defineProperty(exports2,"LogTraceNotification",{enumerable:!0,get:function(){return connection_1.LogTraceNotification}});Object.defineProperty(exports2,"ConnectionErrors",{enumerable:!0,get:function(){return connection_1.ConnectionErrors}});Object.defineProperty(exports2,"ConnectionError",{enumerable:!0,get:function(){return connection_1.ConnectionError}});Object.defineProperty(exports2,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return connection_1.CancellationReceiverStrategy}});Object.defineProperty(exports2,"CancellationSenderStrategy",{enumerable:!0,get:function(){return connection_1.CancellationSenderStrategy}});Object.defineProperty(exports2,"CancellationStrategy",{enumerable:!0,get:function(){return connection_1.CancellationStrategy}});Object.defineProperty(exports2,"MessageStrategy",{enumerable:!0,get:function(){return connection_1.MessageStrategy}});var ral_1=require_ral();exports2.RAL=ral_1.default}});var require_ril=__commonJS({"server/node_modules/vscode-jsonrpc/lib/node/ril.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});var util_1=require("util"),api_1=require_api(),MessageBuffer=class _MessageBuffer extends api_1.AbstractMessageBuffer{constructor(encoding="utf-8"){super(encoding)}emptyBuffer(){return _MessageBuffer.emptyBuffer}fromString(value,encoding){return Buffer.from(value,encoding)}toString(value,encoding){return value instanceof Buffer?value.toString(encoding):new util_1.TextDecoder(encoding).decode(value)}asNative(buffer,length){return length===void 0?buffer instanceof Buffer?buffer:Buffer.from(buffer):buffer instanceof Buffer?buffer.slice(0,length):Buffer.from(buffer,0,length)}allocNative(length){return Buffer.allocUnsafe(length)}};MessageBuffer.emptyBuffer=Buffer.allocUnsafe(0);var ReadableStreamWrapper=class{constructor(stream){this.stream=stream}onClose(listener){return this.stream.on("close",listener),api_1.Disposable.create(()=>this.stream.off("close",listener))}onError(listener){return this.stream.on("error",listener),api_1.Disposable.create(()=>this.stream.off("error",listener))}onEnd(listener){return this.stream.on("end",listener),api_1.Disposable.create(()=>this.stream.off("end",listener))}onData(listener){return this.stream.on("data",listener),api_1.Disposable.create(()=>this.stream.off("data",listener))}},WritableStreamWrapper=class{constructor(stream){this.stream=stream}onClose(listener){return this.stream.on("close",listener),api_1.Disposable.create(()=>this.stream.off("close",listener))}onError(listener){return this.stream.on("error",listener),api_1.Disposable.create(()=>this.stream.off("error",listener))}onEnd(listener){return this.stream.on("end",listener),api_1.Disposable.create(()=>this.stream.off("end",listener))}write(data,encoding){return new Promise((resolve2,reject)=>{let callback=error=>{error==null?resolve2():reject(error)};typeof data=="string"?this.stream.write(data,encoding,callback):this.stream.write(data,callback)})}end(){this.stream.end()}},_ril=Object.freeze({messageBuffer:Object.freeze({create:encoding=>new MessageBuffer(encoding)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(msg,options)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(msg,void 0,0),options.charset))}catch(err){return Promise.reject(err)}}}),decoder:Object.freeze({name:"application/json",decode:(buffer,options)=>{try{return buffer instanceof Buffer?Promise.resolve(JSON.parse(buffer.toString(options.charset))):Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)))}catch(err){return Promise.reject(err)}}})}),stream:Object.freeze({asReadableStream:stream=>new ReadableStreamWrapper(stream),asWritableStream:stream=>new WritableStreamWrapper(stream)}),console,timer:Object.freeze({setTimeout(callback,ms,...args){let handle=setTimeout(callback,ms,...args);return{dispose:()=>clearTimeout(handle)}},setImmediate(callback,...args){let handle=setImmediate(callback,...args);return{dispose:()=>clearImmediate(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={}));exports2.default=RIL}});var require_main=__commonJS({"server/node_modules/vscode-jsonrpc/lib/node/main.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__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=exports2&&exports2.__exportStar||function(m2,exports3){for(var p in m2)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports3,p)&&__createBinding(exports3,m2,p)};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.createMessageConnection=exports2.createServerSocketTransport=exports2.createClientSocketTransport=exports2.createServerPipeTransport=exports2.createClientPipeTransport=exports2.generateRandomPipeName=exports2.StreamMessageWriter=exports2.StreamMessageReader=exports2.SocketMessageWriter=exports2.SocketMessageReader=exports2.PortMessageWriter=exports2.PortMessageReader=exports2.IPCMessageWriter=exports2.IPCMessageReader=void 0;var ril_1=require_ril();ril_1.default.install();var path3=require("path"),os=require("os"),crypto_1=require("crypto"),net_1=require("net"),api_1=require_api();__exportStar(require_api(),exports2);var IPCMessageReader=class extends api_1.AbstractMessageReader{constructor(process2){super(),this.process=process2;let eventEmitter=this.process;eventEmitter.on("error",error=>this.fireError(error)),eventEmitter.on("close",()=>this.fireClose())}listen(callback){return this.process.on("message",callback),api_1.Disposable.create(()=>this.process.off("message",callback))}};exports2.IPCMessageReader=IPCMessageReader;var IPCMessageWriter=class extends api_1.AbstractMessageWriter{constructor(process2){super(),this.process=process2,this.errorCount=0;let eventEmitter=this.process;eventEmitter.on("error",error=>this.fireError(error)),eventEmitter.on("close",()=>this.fireClose)}write(msg){try{return typeof this.process.send=="function"&&this.process.send(msg,void 0,void 0,error=>{error?(this.errorCount++,this.handleError(error,msg)):this.errorCount=0}),Promise.resolve()}catch(error){return this.handleError(error,msg),Promise.reject(error)}}handleError(error,msg){this.errorCount++,this.fireError(error,msg,this.errorCount)}end(){}};exports2.IPCMessageWriter=IPCMessageWriter;var PortMessageReader=class extends api_1.AbstractMessageReader{constructor(port){super(),this.onData=new api_1.Emitter,port.on("close",()=>this.fireClose),port.on("error",error=>this.fireError(error)),port.on("message",message=>{this.onData.fire(message)})}listen(callback){return this.onData.event(callback)}};exports2.PortMessageReader=PortMessageReader;var PortMessageWriter=class extends api_1.AbstractMessageWriter{constructor(port){super(),this.port=port,this.errorCount=0,port.on("close",()=>this.fireClose()),port.on("error",error=>this.fireError(error))}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(){}};exports2.PortMessageWriter=PortMessageWriter;var SocketMessageReader=class extends api_1.ReadableStreamMessageReader{constructor(socket,encoding="utf-8"){super((0,ril_1.default)().stream.asReadableStream(socket),encoding)}};exports2.SocketMessageReader=SocketMessageReader;var SocketMessageWriter=class extends api_1.WriteableStreamMessageWriter{constructor(socket,options){super((0,ril_1.default)().stream.asWritableStream(socket),options),this.socket=socket}dispose(){super.dispose(),this.socket.destroy()}};exports2.SocketMessageWriter=SocketMessageWriter;var StreamMessageReader=class extends api_1.ReadableStreamMessageReader{constructor(readable,encoding){super((0,ril_1.default)().stream.asReadableStream(readable),encoding)}};exports2.StreamMessageReader=StreamMessageReader;var StreamMessageWriter=class extends api_1.WriteableStreamMessageWriter{constructor(writable,options){super((0,ril_1.default)().stream.asWritableStream(writable),options)}};exports2.StreamMessageWriter=StreamMessageWriter;var XDG_RUNTIME_DIR=process.env.XDG_RUNTIME_DIR,safeIpcPathLengths=new Map([["linux",107],["darwin",103]]);function generateRandomPipeName(){let randomSuffix=(0,crypto_1.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${randomSuffix}-sock`;let result;XDG_RUNTIME_DIR?result=path3.join(XDG_RUNTIME_DIR,`vscode-ipc-${randomSuffix}.sock`):result=path3.join(os.tmpdir(),`vscode-${randomSuffix}.sock`);let limit=safeIpcPathLengths.get(process.platform);return limit!==void 0&&result.length>limit&&(0,ril_1.default)().console.warn(`WARNING: IPC handle "${result}" is longer than ${limit} characters.`),result}exports2.generateRandomPipeName=generateRandomPipeName;function createClientPipeTransport(pipeName,encoding="utf-8"){let connectResolve,connected=new Promise((resolve2,_reject)=>{connectResolve=resolve2});return new Promise((resolve2,reject)=>{let server=(0,net_1.createServer)(socket=>{server.close(),connectResolve([new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)])});server.on("error",reject),server.listen(pipeName,()=>{server.removeListener("error",reject),resolve2({onConnected:()=>connected})})})}exports2.createClientPipeTransport=createClientPipeTransport;function createServerPipeTransport(pipeName,encoding="utf-8"){let socket=(0,net_1.createConnection)(pipeName);return[new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)]}exports2.createServerPipeTransport=createServerPipeTransport;function createClientSocketTransport(port,encoding="utf-8"){let connectResolve,connected=new Promise((resolve2,_reject)=>{connectResolve=resolve2});return new Promise((resolve2,reject)=>{let server=(0,net_1.createServer)(socket=>{server.close(),connectResolve([new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)])});server.on("error",reject),server.listen(port,"127.0.0.1",()=>{server.removeListener("error",reject),resolve2({onConnected:()=>connected})})})}exports2.createClientSocketTransport=createClientSocketTransport;function createServerSocketTransport(port,encoding="utf-8"){let socket=(0,net_1.createConnection)(port,"127.0.0.1");return[new SocketMessageReader(socket,encoding),new SocketMessageWriter(socket,encoding)]}exports2.createServerSocketTransport=createServerSocketTransport;function isReadableStream(value){let candidate=value;return candidate.read!==void 0&&candidate.addListener!==void 0}function isWritableStream(value){let candidate=value;return candidate.write!==void 0&&candidate.addListener!==void 0}function createMessageConnection(input,output,logger,options){logger||(logger=api_1.NullLogger);let reader=isReadableStream(input)?new StreamMessageReader(input):input,writer=isWritableStream(output)?new StreamMessageWriter(output):output;return api_1.ConnectionStrategy.is(options)&&(options={connectionStrategy:options}),(0,api_1.createMessageConnection)(reader,writer,logger,options)}exports2.createMessageConnection=createMessageConnection}});var require_node=__commonJS({"server/node_modules/vscode-jsonrpc/node.js"(exports2,module2){"use strict";module2.exports=require_main()}});var require_main2=__commonJS({"server/node_modules/vscode-languageserver-types/lib/umd/main.js"(exports2,module2){(function(factory){if(typeof module2=="object"&&typeof module2.exports=="object"){var v=factory(require,exports2);v!==void 0&&(module2.exports=v)}else typeof define=="function"&&define.amd&&define(["require","exports"],factory)})(function(require2,exports3){"use strict";Object.defineProperty(exports3,"__esModule",{value:!0}),exports3.TextDocument=exports3.EOL=exports3.WorkspaceFolder=exports3.InlineCompletionContext=exports3.SelectedCompletionInfo=exports3.InlineCompletionTriggerKind=exports3.InlineCompletionList=exports3.InlineCompletionItem=exports3.StringValue=exports3.InlayHint=exports3.InlayHintLabelPart=exports3.InlayHintKind=exports3.InlineValueContext=exports3.InlineValueEvaluatableExpression=exports3.InlineValueVariableLookup=exports3.InlineValueText=exports3.SemanticTokens=exports3.SemanticTokenModifiers=exports3.SemanticTokenTypes=exports3.SelectionRange=exports3.DocumentLink=exports3.FormattingOptions=exports3.CodeLens=exports3.CodeAction=exports3.CodeActionContext=exports3.CodeActionTriggerKind=exports3.CodeActionKind=exports3.DocumentSymbol=exports3.WorkspaceSymbol=exports3.SymbolInformation=exports3.SymbolTag=exports3.SymbolKind=exports3.DocumentHighlight=exports3.DocumentHighlightKind=exports3.SignatureInformation=exports3.ParameterInformation=exports3.Hover=exports3.MarkedString=exports3.CompletionList=exports3.CompletionItem=exports3.CompletionItemLabelDetails=exports3.InsertTextMode=exports3.InsertReplaceEdit=exports3.CompletionItemTag=exports3.InsertTextFormat=exports3.CompletionItemKind=exports3.MarkupContent=exports3.MarkupKind=exports3.TextDocumentItem=exports3.OptionalVersionedTextDocumentIdentifier=exports3.VersionedTextDocumentIdentifier=exports3.TextDocumentIdentifier=exports3.WorkspaceChange=exports3.WorkspaceEdit=exports3.DeleteFile=exports3.RenameFile=exports3.CreateFile=exports3.TextDocumentEdit=exports3.AnnotatedTextEdit=exports3.ChangeAnnotationIdentifier=exports3.ChangeAnnotation=exports3.TextEdit=exports3.Command=exports3.Diagnostic=exports3.CodeDescription=exports3.DiagnosticTag=exports3.DiagnosticSeverity=exports3.DiagnosticRelatedInformation=exports3.FoldingRange=exports3.FoldingRangeKind=exports3.ColorPresentation=exports3.ColorInformation=exports3.Color=exports3.LocationLink=exports3.Location=exports3.Range=exports3.Position=exports3.uinteger=exports3.integer=exports3.URI=exports3.DocumentUri=void 0;var DocumentUri;(function(DocumentUri2){function is(value){return typeof value=="string"}DocumentUri2.is=is})(DocumentUri||(exports3.DocumentUri=DocumentUri={}));var URI;(function(URI2){function is(value){return typeof value=="string"}URI2.is=is})(URI||(exports3.URI=URI={}));var integer;(function(integer2){integer2.MIN_VALUE=-2147483648,integer2.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&integer2.MIN_VALUE<=value&&value<=integer2.MAX_VALUE}integer2.is=is})(integer||(exports3.integer=integer={}));var uinteger;(function(uinteger2){uinteger2.MIN_VALUE=0,uinteger2.MAX_VALUE=2147483647;function is(value){return typeof value=="number"&&uinteger2.MIN_VALUE<=value&&value<=uinteger2.MAX_VALUE}uinteger2.is=is})(uinteger||(exports3.uinteger=uinteger={}));var Position2;(function(Position3){function create(line,character){return line===Number.MAX_VALUE&&(line=uinteger.MAX_VALUE),character===Number.MAX_VALUE&&(character=uinteger.MAX_VALUE),{line,character}}Position3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.uinteger(candidate.line)&&Is.uinteger(candidate.character)}Position3.is=is})(Position2||(exports3.Position=Position2={}));var Range2;(function(Range3){function create(one,two,three,four){if(Is.uinteger(one)&&Is.uinteger(two)&&Is.uinteger(three)&&Is.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[".concat(one,", ").concat(two,", ").concat(three,", ").concat(four,"]"))}Range3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Position2.is(candidate.start)&&Position2.is(candidate.end)}Range3.is=is})(Range2||(exports3.Range=Range2={}));var Location2;(function(Location3){function create(uri,range){return{uri,range}}Location3.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&(Is.string(candidate.uri)||Is.undefined(candidate.uri))}Location3.is=is})(Location2||(exports3.Location=Location2={}));var LocationLink;(function(LocationLink2){function create(targetUri,targetRange,targetSelectionRange,originSelectionRange){return{targetUri,targetRange,targetSelectionRange,originSelectionRange}}LocationLink2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.targetRange)&&Is.string(candidate.targetUri)&&Range2.is(candidate.targetSelectionRange)&&(Range2.is(candidate.originSelectionRange)||Is.undefined(candidate.originSelectionRange))}LocationLink2.is=is})(LocationLink||(exports3.LocationLink=LocationLink={}));var Color;(function(Color2){function create(red,green,blue,alpha){return{red,green,blue,alpha}}Color2.create=create;function is(value){var 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)}Color2.is=is})(Color||(exports3.Color=Color={}));var ColorInformation;(function(ColorInformation2){function create(range,color){return{range,color}}ColorInformation2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&Color.is(candidate.color)}ColorInformation2.is=is})(ColorInformation||(exports3.ColorInformation=ColorInformation={}));var ColorPresentation;(function(ColorPresentation2){function create(label,textEdit,additionalTextEdits){return{label,textEdit,additionalTextEdits}}ColorPresentation2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.label)&&(Is.undefined(candidate.textEdit)||TextEdit4.is(candidate))&&(Is.undefined(candidate.additionalTextEdits)||Is.typedArray(candidate.additionalTextEdits,TextEdit4.is))}ColorPresentation2.is=is})(ColorPresentation||(exports3.ColorPresentation=ColorPresentation={}));var FoldingRangeKind2;(function(FoldingRangeKind3){FoldingRangeKind3.Comment="comment",FoldingRangeKind3.Imports="imports",FoldingRangeKind3.Region="region"})(FoldingRangeKind2||(exports3.FoldingRangeKind=FoldingRangeKind2={}));var FoldingRange3;(function(FoldingRange4){function create(startLine,endLine,startCharacter,endCharacter,kind,collapsedText){var 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}FoldingRange4.create=create;function is(value){var 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))}FoldingRange4.is=is})(FoldingRange3||(exports3.FoldingRange=FoldingRange3={}));var DiagnosticRelatedInformation;(function(DiagnosticRelatedInformation2){function create(location,message){return{location,message}}DiagnosticRelatedInformation2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Location2.is(candidate.location)&&Is.string(candidate.message)}DiagnosticRelatedInformation2.is=is})(DiagnosticRelatedInformation||(exports3.DiagnosticRelatedInformation=DiagnosticRelatedInformation={}));var DiagnosticSeverity5;(function(DiagnosticSeverity6){DiagnosticSeverity6.Error=1,DiagnosticSeverity6.Warning=2,DiagnosticSeverity6.Information=3,DiagnosticSeverity6.Hint=4})(DiagnosticSeverity5||(exports3.DiagnosticSeverity=DiagnosticSeverity5={}));var DiagnosticTag;(function(DiagnosticTag2){DiagnosticTag2.Unnecessary=1,DiagnosticTag2.Deprecated=2})(DiagnosticTag||(exports3.DiagnosticTag=DiagnosticTag={}));var CodeDescription;(function(CodeDescription2){function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.href)}CodeDescription2.is=is})(CodeDescription||(exports3.CodeDescription=CodeDescription={}));var Diagnostic6;(function(Diagnostic7){function create(range,message,severity,code,source,relatedInformation){var 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,candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&Is.string(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})(Diagnostic6||(exports3.Diagnostic=Diagnostic6={}));var Command;(function(Command2){function create(title,command){for(var args=[],_i=2;_i<arguments.length;_i++)args[_i-2]=arguments[_i];var result={title,command};return Is.defined(args)&&args.length>0&&(result.arguments=args),result}Command2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.title)&&Is.string(candidate.command)}Command2.is=is})(Command||(exports3.Command=Command={}));var TextEdit4;(function(TextEdit5){function replace(range,newText){return{range,newText}}TextEdit5.replace=replace;function insert(position,newText){return{range:{start:position,end:position},newText}}TextEdit5.insert=insert;function del(range){return{range,newText:""}}TextEdit5.del=del;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Is.string(candidate.newText)&&Range2.is(candidate.range)}TextEdit5.is=is})(TextEdit4||(exports3.TextEdit=TextEdit4={}));var ChangeAnnotation;(function(ChangeAnnotation2){function create(label,needsConfirmation,description){var result={label};return needsConfirmation!==void 0&&(result.needsConfirmation=needsConfirmation),description!==void 0&&(result.description=description),result}ChangeAnnotation2.create=create;function is(value){var 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)}ChangeAnnotation2.is=is})(ChangeAnnotation||(exports3.ChangeAnnotation=ChangeAnnotation={}));var ChangeAnnotationIdentifier;(function(ChangeAnnotationIdentifier2){function is(value){var candidate=value;return Is.string(candidate)}ChangeAnnotationIdentifier2.is=is})(ChangeAnnotationIdentifier||(exports3.ChangeAnnotationIdentifier=ChangeAnnotationIdentifier={}));var AnnotatedTextEdit;(function(AnnotatedTextEdit2){function replace(range,newText,annotation){return{range,newText,annotationId:annotation}}AnnotatedTextEdit2.replace=replace;function insert(position,newText,annotation){return{range:{start:position,end:position},newText,annotationId:annotation}}AnnotatedTextEdit2.insert=insert;function del(range,annotation){return{range,newText:"",annotationId:annotation}}AnnotatedTextEdit2.del=del;function is(value){var candidate=value;return TextEdit4.is(candidate)&&(ChangeAnnotation.is(candidate.annotationId)||ChangeAnnotationIdentifier.is(candidate.annotationId))}AnnotatedTextEdit2.is=is})(AnnotatedTextEdit||(exports3.AnnotatedTextEdit=AnnotatedTextEdit={}));var TextDocumentEdit;(function(TextDocumentEdit2){function create(textDocument,edits){return{textDocument,edits}}TextDocumentEdit2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument)&&Array.isArray(candidate.edits)}TextDocumentEdit2.is=is})(TextDocumentEdit||(exports3.TextDocumentEdit=TextDocumentEdit={}));var CreateFile;(function(CreateFile2){function create(uri,options,annotation){var 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}CreateFile2.create=create;function is(value){var 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))}CreateFile2.is=is})(CreateFile||(exports3.CreateFile=CreateFile={}));var RenameFile;(function(RenameFile2){function create(oldUri,newUri,options,annotation){var 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}RenameFile2.create=create;function is(value){var 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))}RenameFile2.is=is})(RenameFile||(exports3.RenameFile=RenameFile={}));var DeleteFile;(function(DeleteFile2){function create(uri,options,annotation){var 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}DeleteFile2.create=create;function is(value){var 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))}DeleteFile2.is=is})(DeleteFile||(exports3.DeleteFile=DeleteFile={}));var WorkspaceEdit3;(function(WorkspaceEdit4){function is(value){var candidate=value;return candidate&&(candidate.changes!==void 0||candidate.documentChanges!==void 0)&&(candidate.documentChanges===void 0||candidate.documentChanges.every(function(change){return Is.string(change.kind)?CreateFile.is(change)||RenameFile.is(change)||DeleteFile.is(change):TextDocumentEdit.is(change)}))}WorkspaceEdit4.is=is})(WorkspaceEdit3||(exports3.WorkspaceEdit=WorkspaceEdit3={}));var TextEditChangeImpl=(function(){function TextEditChangeImpl2(edits,changeAnnotations){this.edits=edits,this.changeAnnotations=changeAnnotations}return TextEditChangeImpl2.prototype.insert=function(position,newText,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.replace=function(range,newText,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.delete=function(range,annotation){var edit,id;if(annotation===void 0?edit=TextEdit4.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},TextEditChangeImpl2.prototype.add=function(edit){this.edits.push(edit)},TextEditChangeImpl2.prototype.all=function(){return this.edits},TextEditChangeImpl2.prototype.clear=function(){this.edits.splice(0,this.edits.length)},TextEditChangeImpl2.prototype.assertChangeAnnotations=function(value){if(value===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},TextEditChangeImpl2})(),ChangeAnnotations=(function(){function ChangeAnnotations2(annotations){this._annotations=annotations===void 0?Object.create(null):annotations,this._counter=0,this._size=0}return ChangeAnnotations2.prototype.all=function(){return this._annotations},Object.defineProperty(ChangeAnnotations2.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),ChangeAnnotations2.prototype.manage=function(idOrAnnotation,annotation){var id;if(ChangeAnnotationIdentifier.is(idOrAnnotation)?id=idOrAnnotation:(id=this.nextId(),annotation=idOrAnnotation),this._annotations[id]!==void 0)throw new Error("Id ".concat(id," is already in use."));if(annotation===void 0)throw new Error("No annotation provided for id ".concat(id));return this._annotations[id]=annotation,this._size++,id},ChangeAnnotations2.prototype.nextId=function(){return this._counter++,this._counter.toString()},ChangeAnnotations2})(),WorkspaceChange=(function(){function WorkspaceChange2(workspaceEdit){var _this=this;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(function(change){if(TextDocumentEdit.is(change)){var textEditChange=new TextEditChangeImpl(change.edits,_this._changeAnnotations);_this._textEditChanges[change.textDocument.uri]=textEditChange}})):workspaceEdit.changes&&Object.keys(workspaceEdit.changes).forEach(function(key){var textEditChange=new TextEditChangeImpl(workspaceEdit.changes[key]);_this._textEditChanges[key]=textEditChange})):this._workspaceEdit={}}return Object.defineProperty(WorkspaceChange2.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),WorkspaceChange2.prototype.getTextEditChange=function(key){if(OptionalVersionedTextDocumentIdentifier.is(key)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var textDocument={uri:key.uri,version:key.version},result=this._textEditChanges[textDocument.uri];if(!result){var 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.");var result=this._textEditChanges[key];if(!result){var edits=[];this._workspaceEdit.changes[key]=edits,result=new TextEditChangeImpl(edits),this._textEditChanges[key]=result}return result}},WorkspaceChange2.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},WorkspaceChange2.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},WorkspaceChange2.prototype.createFile=function(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2.prototype.renameFile=function(oldUri,newUri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2.prototype.deleteFile=function(uri,optionsOrAnnotation,options){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var annotation;ChangeAnnotation.is(optionsOrAnnotation)||ChangeAnnotationIdentifier.is(optionsOrAnnotation)?annotation=optionsOrAnnotation:options=optionsOrAnnotation;var 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},WorkspaceChange2})();exports3.WorkspaceChange=WorkspaceChange;var TextDocumentIdentifier;(function(TextDocumentIdentifier2){function create(uri){return{uri}}TextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)}TextDocumentIdentifier2.is=is})(TextDocumentIdentifier||(exports3.TextDocumentIdentifier=TextDocumentIdentifier={}));var VersionedTextDocumentIdentifier;(function(VersionedTextDocumentIdentifier2){function create(uri,version){return{uri,version}}VersionedTextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.integer(candidate.version)}VersionedTextDocumentIdentifier2.is=is})(VersionedTextDocumentIdentifier||(exports3.VersionedTextDocumentIdentifier=VersionedTextDocumentIdentifier={}));var OptionalVersionedTextDocumentIdentifier;(function(OptionalVersionedTextDocumentIdentifier2){function create(uri,version){return{uri,version}}OptionalVersionedTextDocumentIdentifier2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&(candidate.version===null||Is.integer(candidate.version))}OptionalVersionedTextDocumentIdentifier2.is=is})(OptionalVersionedTextDocumentIdentifier||(exports3.OptionalVersionedTextDocumentIdentifier=OptionalVersionedTextDocumentIdentifier={}));var TextDocumentItem;(function(TextDocumentItem2){function create(uri,languageId,version,text){return{uri,languageId,version,text}}TextDocumentItem2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.string(candidate.uri)&&Is.string(candidate.languageId)&&Is.integer(candidate.version)&&Is.string(candidate.text)}TextDocumentItem2.is=is})(TextDocumentItem||(exports3.TextDocumentItem=TextDocumentItem={}));var MarkupKind2;(function(MarkupKind3){MarkupKind3.PlainText="plaintext",MarkupKind3.Markdown="markdown";function is(value){var candidate=value;return candidate===MarkupKind3.PlainText||candidate===MarkupKind3.Markdown}MarkupKind3.is=is})(MarkupKind2||(exports3.MarkupKind=MarkupKind2={}));var MarkupContent2;(function(MarkupContent3){function is(value){var candidate=value;return Is.objectLiteral(value)&&MarkupKind2.is(candidate.kind)&&Is.string(candidate.value)}MarkupContent3.is=is})(MarkupContent2||(exports3.MarkupContent=MarkupContent2={}));var CompletionItemKind2;(function(CompletionItemKind3){CompletionItemKind3.Text=1,CompletionItemKind3.Method=2,CompletionItemKind3.Function=3,CompletionItemKind3.Constructor=4,CompletionItemKind3.Field=5,CompletionItemKind3.Variable=6,CompletionItemKind3.Class=7,CompletionItemKind3.Interface=8,CompletionItemKind3.Module=9,CompletionItemKind3.Property=10,CompletionItemKind3.Unit=11,CompletionItemKind3.Value=12,CompletionItemKind3.Enum=13,CompletionItemKind3.Keyword=14,CompletionItemKind3.Snippet=15,CompletionItemKind3.Color=16,CompletionItemKind3.File=17,CompletionItemKind3.Reference=18,CompletionItemKind3.Folder=19,CompletionItemKind3.EnumMember=20,CompletionItemKind3.Constant=21,CompletionItemKind3.Struct=22,CompletionItemKind3.Event=23,CompletionItemKind3.Operator=24,CompletionItemKind3.TypeParameter=25})(CompletionItemKind2||(exports3.CompletionItemKind=CompletionItemKind2={}));var InsertTextFormat2;(function(InsertTextFormat3){InsertTextFormat3.PlainText=1,InsertTextFormat3.Snippet=2})(InsertTextFormat2||(exports3.InsertTextFormat=InsertTextFormat2={}));var CompletionItemTag;(function(CompletionItemTag2){CompletionItemTag2.Deprecated=1})(CompletionItemTag||(exports3.CompletionItemTag=CompletionItemTag={}));var InsertReplaceEdit;(function(InsertReplaceEdit2){function create(newText,insert,replace){return{newText,insert,replace}}InsertReplaceEdit2.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.newText)&&Range2.is(candidate.insert)&&Range2.is(candidate.replace)}InsertReplaceEdit2.is=is})(InsertReplaceEdit||(exports3.InsertReplaceEdit=InsertReplaceEdit={}));var InsertTextMode;(function(InsertTextMode2){InsertTextMode2.asIs=1,InsertTextMode2.adjustIndentation=2})(InsertTextMode||(exports3.InsertTextMode=InsertTextMode={}));var CompletionItemLabelDetails;(function(CompletionItemLabelDetails2){function is(value){var candidate=value;return candidate&&(Is.string(candidate.detail)||candidate.detail===void 0)&&(Is.string(candidate.description)||candidate.description===void 0)}CompletionItemLabelDetails2.is=is})(CompletionItemLabelDetails||(exports3.CompletionItemLabelDetails=CompletionItemLabelDetails={}));var CompletionItem3;(function(CompletionItem4){function create(label){return{label}}CompletionItem4.create=create})(CompletionItem3||(exports3.CompletionItem=CompletionItem3={}));var CompletionList;(function(CompletionList2){function create(items,isIncomplete){return{items:items||[],isIncomplete:!!isIncomplete}}CompletionList2.create=create})(CompletionList||(exports3.CompletionList=CompletionList={}));var MarkedString;(function(MarkedString2){function fromPlainText(plainText){return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}MarkedString2.fromPlainText=fromPlainText;function is(value){var candidate=value;return Is.string(candidate)||Is.objectLiteral(candidate)&&Is.string(candidate.language)&&Is.string(candidate.value)}MarkedString2.is=is})(MarkedString||(exports3.MarkedString=MarkedString={}));var Hover3;(function(Hover4){function is(value){var candidate=value;return!!candidate&&Is.objectLiteral(candidate)&&(MarkupContent2.is(candidate.contents)||MarkedString.is(candidate.contents)||Is.typedArray(candidate.contents,MarkedString.is))&&(value.range===void 0||Range2.is(value.range))}Hover4.is=is})(Hover3||(exports3.Hover=Hover3={}));var ParameterInformation;(function(ParameterInformation2){function create(label,documentation){return documentation?{label,documentation}:{label}}ParameterInformation2.create=create})(ParameterInformation||(exports3.ParameterInformation=ParameterInformation={}));var SignatureInformation;(function(SignatureInformation2){function create(label,documentation){for(var parameters=[],_i=2;_i<arguments.length;_i++)parameters[_i-2]=arguments[_i];var result={label};return Is.defined(documentation)&&(result.documentation=documentation),Is.defined(parameters)?result.parameters=parameters:result.parameters=[],result}SignatureInformation2.create=create})(SignatureInformation||(exports3.SignatureInformation=SignatureInformation={}));var DocumentHighlightKind;(function(DocumentHighlightKind2){DocumentHighlightKind2.Text=1,DocumentHighlightKind2.Read=2,DocumentHighlightKind2.Write=3})(DocumentHighlightKind||(exports3.DocumentHighlightKind=DocumentHighlightKind={}));var DocumentHighlight;(function(DocumentHighlight2){function create(range,kind){var result={range};return Is.number(kind)&&(result.kind=kind),result}DocumentHighlight2.create=create})(DocumentHighlight||(exports3.DocumentHighlight=DocumentHighlight={}));var SymbolKind2;(function(SymbolKind3){SymbolKind3.File=1,SymbolKind3.Module=2,SymbolKind3.Namespace=3,SymbolKind3.Package=4,SymbolKind3.Class=5,SymbolKind3.Method=6,SymbolKind3.Property=7,SymbolKind3.Field=8,SymbolKind3.Constructor=9,SymbolKind3.Enum=10,SymbolKind3.Interface=11,SymbolKind3.Function=12,SymbolKind3.Variable=13,SymbolKind3.Constant=14,SymbolKind3.String=15,SymbolKind3.Number=16,SymbolKind3.Boolean=17,SymbolKind3.Array=18,SymbolKind3.Object=19,SymbolKind3.Key=20,SymbolKind3.Null=21,SymbolKind3.EnumMember=22,SymbolKind3.Struct=23,SymbolKind3.Event=24,SymbolKind3.Operator=25,SymbolKind3.TypeParameter=26})(SymbolKind2||(exports3.SymbolKind=SymbolKind2={}));var SymbolTag;(function(SymbolTag2){SymbolTag2.Deprecated=1})(SymbolTag||(exports3.SymbolTag=SymbolTag={}));var SymbolInformation;(function(SymbolInformation2){function create(name,kind,range,uri,containerName){var result={name,kind,location:{uri,range}};return containerName&&(result.containerName=containerName),result}SymbolInformation2.create=create})(SymbolInformation||(exports3.SymbolInformation=SymbolInformation={}));var WorkspaceSymbol;(function(WorkspaceSymbol2){function create(name,kind,uri,range){return range!==void 0?{name,kind,location:{uri,range}}:{name,kind,location:{uri}}}WorkspaceSymbol2.create=create})(WorkspaceSymbol||(exports3.WorkspaceSymbol=WorkspaceSymbol={}));var DocumentSymbol2;(function(DocumentSymbol3){function create(name,detail,kind,range,selectionRange,children){var result={name,detail,kind,range,selectionRange};return children!==void 0&&(result.children=children),result}DocumentSymbol3.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.name)&&Is.number(candidate.kind)&&Range2.is(candidate.range)&&Range2.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))}DocumentSymbol3.is=is})(DocumentSymbol2||(exports3.DocumentSymbol=DocumentSymbol2={}));var CodeActionKind3;(function(CodeActionKind4){CodeActionKind4.Empty="",CodeActionKind4.QuickFix="quickfix",CodeActionKind4.Refactor="refactor",CodeActionKind4.RefactorExtract="refactor.extract",CodeActionKind4.RefactorInline="refactor.inline",CodeActionKind4.RefactorRewrite="refactor.rewrite",CodeActionKind4.Source="source",CodeActionKind4.SourceOrganizeImports="source.organizeImports",CodeActionKind4.SourceFixAll="source.fixAll"})(CodeActionKind3||(exports3.CodeActionKind=CodeActionKind3={}));var CodeActionTriggerKind;(function(CodeActionTriggerKind2){CodeActionTriggerKind2.Invoked=1,CodeActionTriggerKind2.Automatic=2})(CodeActionTriggerKind||(exports3.CodeActionTriggerKind=CodeActionTriggerKind={}));var CodeActionContext;(function(CodeActionContext2){function create(diagnostics,only,triggerKind){var result={diagnostics};return only!=null&&(result.only=only),triggerKind!=null&&(result.triggerKind=triggerKind),result}CodeActionContext2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.typedArray(candidate.diagnostics,Diagnostic6.is)&&(candidate.only===void 0||Is.typedArray(candidate.only,Is.string))&&(candidate.triggerKind===void 0||candidate.triggerKind===CodeActionTriggerKind.Invoked||candidate.triggerKind===CodeActionTriggerKind.Automatic)}CodeActionContext2.is=is})(CodeActionContext||(exports3.CodeActionContext=CodeActionContext={}));var CodeAction2;(function(CodeAction3){function create(title,kindOrCommandOrEdit,kind){var 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}CodeAction3.create=create;function is(value){var candidate=value;return candidate&&Is.string(candidate.title)&&(candidate.diagnostics===void 0||Is.typedArray(candidate.diagnostics,Diagnostic6.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||WorkspaceEdit3.is(candidate.edit))}CodeAction3.is=is})(CodeAction2||(exports3.CodeAction=CodeAction2={}));var CodeLens;(function(CodeLens2){function create(range,data){var result={range};return Is.defined(data)&&(result.data=data),result}CodeLens2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&(Is.undefined(candidate.command)||Command.is(candidate.command))}CodeLens2.is=is})(CodeLens||(exports3.CodeLens=CodeLens={}));var FormattingOptions;(function(FormattingOptions2){function create(tabSize,insertSpaces){return{tabSize,insertSpaces}}FormattingOptions2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Is.uinteger(candidate.tabSize)&&Is.boolean(candidate.insertSpaces)}FormattingOptions2.is=is})(FormattingOptions||(exports3.FormattingOptions=FormattingOptions={}));var DocumentLink;(function(DocumentLink2){function create(range,target,data){return{range,target,data}}DocumentLink2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(candidate.range)&&(Is.undefined(candidate.target)||Is.string(candidate.target))}DocumentLink2.is=is})(DocumentLink||(exports3.DocumentLink=DocumentLink={}));var SelectionRange;(function(SelectionRange2){function create(range,parent){return{range,parent}}SelectionRange2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Range2.is(candidate.range)&&(candidate.parent===void 0||SelectionRange2.is(candidate.parent))}SelectionRange2.is=is})(SelectionRange||(exports3.SelectionRange=SelectionRange={}));var SemanticTokenTypes;(function(SemanticTokenTypes2){SemanticTokenTypes2.namespace="namespace",SemanticTokenTypes2.type="type",SemanticTokenTypes2.class="class",SemanticTokenTypes2.enum="enum",SemanticTokenTypes2.interface="interface",SemanticTokenTypes2.struct="struct",SemanticTokenTypes2.typeParameter="typeParameter",SemanticTokenTypes2.parameter="parameter",SemanticTokenTypes2.variable="variable",SemanticTokenTypes2.property="property",SemanticTokenTypes2.enumMember="enumMember",SemanticTokenTypes2.event="event",SemanticTokenTypes2.function="function",SemanticTokenTypes2.method="method",SemanticTokenTypes2.macro="macro",SemanticTokenTypes2.keyword="keyword",SemanticTokenTypes2.modifier="modifier",SemanticTokenTypes2.comment="comment",SemanticTokenTypes2.string="string",SemanticTokenTypes2.number="number",SemanticTokenTypes2.regexp="regexp",SemanticTokenTypes2.operator="operator",SemanticTokenTypes2.decorator="decorator"})(SemanticTokenTypes||(exports3.SemanticTokenTypes=SemanticTokenTypes={}));var SemanticTokenModifiers;(function(SemanticTokenModifiers2){SemanticTokenModifiers2.declaration="declaration",SemanticTokenModifiers2.definition="definition",SemanticTokenModifiers2.readonly="readonly",SemanticTokenModifiers2.static="static",SemanticTokenModifiers2.deprecated="deprecated",SemanticTokenModifiers2.abstract="abstract",SemanticTokenModifiers2.async="async",SemanticTokenModifiers2.modification="modification",SemanticTokenModifiers2.documentation="documentation",SemanticTokenModifiers2.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers||(exports3.SemanticTokenModifiers=SemanticTokenModifiers={}));var SemanticTokens3;(function(SemanticTokens4){function is(value){var 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")}SemanticTokens4.is=is})(SemanticTokens3||(exports3.SemanticTokens=SemanticTokens3={}));var InlineValueText;(function(InlineValueText2){function create(range,text){return{range,text}}InlineValueText2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is.string(candidate.text)}InlineValueText2.is=is})(InlineValueText||(exports3.InlineValueText=InlineValueText={}));var InlineValueVariableLookup;(function(InlineValueVariableLookup2){function create(range,variableName,caseSensitiveLookup){return{range,variableName,caseSensitiveLookup}}InlineValueVariableLookup2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&Is.boolean(candidate.caseSensitiveLookup)&&(Is.string(candidate.variableName)||candidate.variableName===void 0)}InlineValueVariableLookup2.is=is})(InlineValueVariableLookup||(exports3.InlineValueVariableLookup=InlineValueVariableLookup={}));var InlineValueEvaluatableExpression;(function(InlineValueEvaluatableExpression2){function create(range,expression){return{range,expression}}InlineValueEvaluatableExpression2.create=create;function is(value){var candidate=value;return candidate!=null&&Range2.is(candidate.range)&&(Is.string(candidate.expression)||candidate.expression===void 0)}InlineValueEvaluatableExpression2.is=is})(InlineValueEvaluatableExpression||(exports3.InlineValueEvaluatableExpression=InlineValueEvaluatableExpression={}));var InlineValueContext;(function(InlineValueContext2){function create(frameId,stoppedLocation){return{frameId,stoppedLocation}}InlineValueContext2.create=create;function is(value){var candidate=value;return Is.defined(candidate)&&Range2.is(value.stoppedLocation)}InlineValueContext2.is=is})(InlineValueContext||(exports3.InlineValueContext=InlineValueContext={}));var InlayHintKind;(function(InlayHintKind2){InlayHintKind2.Type=1,InlayHintKind2.Parameter=2;function is(value){return value===1||value===2}InlayHintKind2.is=is})(InlayHintKind||(exports3.InlayHintKind=InlayHintKind={}));var InlayHintLabelPart;(function(InlayHintLabelPart2){function create(value){return{value}}InlayHintLabelPart2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.location===void 0||Location2.is(candidate.location))&&(candidate.command===void 0||Command.is(candidate.command))}InlayHintLabelPart2.is=is})(InlayHintLabelPart||(exports3.InlayHintLabelPart=InlayHintLabelPart={}));var InlayHint;(function(InlayHint2){function create(position,label,kind){var result={position,label};return kind!==void 0&&(result.kind=kind),result}InlayHint2.create=create;function is(value){var candidate=value;return Is.objectLiteral(candidate)&&Position2.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,TextEdit4.is)&&(candidate.tooltip===void 0||Is.string(candidate.tooltip)||MarkupContent2.is(candidate.tooltip))&&(candidate.paddingLeft===void 0||Is.boolean(candidate.paddingLeft))&&(candidate.paddingRight===void 0||Is.boolean(candidate.paddingRight))}InlayHint2.is=is})(InlayHint||(exports3.InlayHint=InlayHint={}));var StringValue;(function(StringValue2){function createSnippet(value){return{kind:"snippet",value}}StringValue2.createSnippet=createSnippet})(StringValue||(exports3.StringValue=StringValue={}));var InlineCompletionItem;(function(InlineCompletionItem2){function create(insertText,filterText,range,command){return{insertText,filterText,range,command}}InlineCompletionItem2.create=create})(InlineCompletionItem||(exports3.InlineCompletionItem=InlineCompletionItem={}));var InlineCompletionList;(function(InlineCompletionList2){function create(items){return{items}}InlineCompletionList2.create=create})(InlineCompletionList||(exports3.InlineCompletionList=InlineCompletionList={}));var InlineCompletionTriggerKind;(function(InlineCompletionTriggerKind2){InlineCompletionTriggerKind2.Invoked=0,InlineCompletionTriggerKind2.Automatic=1})(InlineCompletionTriggerKind||(exports3.InlineCompletionTriggerKind=InlineCompletionTriggerKind={}));var SelectedCompletionInfo;(function(SelectedCompletionInfo2){function create(range,text){return{range,text}}SelectedCompletionInfo2.create=create})(SelectedCompletionInfo||(exports3.SelectedCompletionInfo=SelectedCompletionInfo={}));var InlineCompletionContext;(function(InlineCompletionContext2){function create(triggerKind,selectedCompletionInfo){return{triggerKind,selectedCompletionInfo}}InlineCompletionContext2.create=create})(InlineCompletionContext||(exports3.InlineCompletionContext=InlineCompletionContext={}));var WorkspaceFolder;(function(WorkspaceFolder2){function is(value){var candidate=value;return Is.objectLiteral(candidate)&&URI.is(candidate.uri)&&Is.string(candidate.name)}WorkspaceFolder2.is=is})(WorkspaceFolder||(exports3.WorkspaceFolder=WorkspaceFolder={})),exports3.EOL=[`
|
|
32
32
|
`,`\r
|
|
33
33
|
`,"\r"];var TextDocument2;(function(TextDocument3){function create(uri,languageId,version,content){return new FullTextDocument2(uri,languageId,version,content)}TextDocument3.create=create;function is(value){var 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))}TextDocument3.is=is;function applyEdits(document,edits){for(var text=document.getText(),sortedEdits=mergeSort2(edits,function(a,b){var diff=a.range.start.line-b.range.start.line;return diff===0?a.range.start.character-b.range.start.character:diff}),lastModifiedOffset=text.length,i=sortedEdits.length-1;i>=0;i--){var 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}TextDocument3.applyEdits=applyEdits;function mergeSort2(data,compare){if(data.length<=1)return data;var p=data.length/2|0,left=data.slice(0,p),right=data.slice(p);mergeSort2(left,compare),mergeSort2(right,compare);for(var leftIdx=0,rightIdx=0,i=0;leftIdx<left.length&&rightIdx<right.length;){var ret=compare(left[leftIdx],right[rightIdx]);ret<=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}})(TextDocument2||(exports3.TextDocument=TextDocument2={}));var FullTextDocument2=(function(){function FullTextDocument3(uri,languageId,version,content){this._uri=uri,this._languageId=languageId,this._version=version,this._content=content,this._lineOffsets=void 0}return Object.defineProperty(FullTextDocument3.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(FullTextDocument3.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(FullTextDocument3.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),FullTextDocument3.prototype.getText=function(range){if(range){var start=this.offsetAt(range.start),end=this.offsetAt(range.end);return this._content.substring(start,end)}return this._content},FullTextDocument3.prototype.update=function(event,version){this._content=event.text,this._version=version,this._lineOffsets=void 0},FullTextDocument3.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var lineOffsets=[],text=this._content,isLineStart=!0,i=0;i<text.length;i++){isLineStart&&(lineOffsets.push(i),isLineStart=!1);var ch=text.charAt(i);isLineStart=ch==="\r"||ch===`
|
|
34
34
|
`,ch==="\r"&&i+1<text.length&&text.charAt(i+1)===`
|
|
@@ -147,4 +147,4 @@ ${info.documentation}`),{contents:{kind:import_node8.MarkupKind.Markdown,value:l
|
|
|
147
147
|
`),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(`
|
|
148
148
|
`).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_node11.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_node11.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 path3=expr.split(".");if(this.resolvePathFromParent(path3,parentMembers,indexes))continue;if(path3.length===1){let root=path3[0];if(indexes.byName.has(root)||resolveLibraryType(root)!==void 0)continue}let absoluteStart=b.bodyOffset+im.index;diagnostics.push({severity:import_node11.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(`
|
|
149
149
|
`).length-1;out.push({body,bodyOffset:bodyStart,startLine,isRequire:!!m2[1]})}return out}resolvePathFromParent(path3,parentMembers,indexes){let root=parentMembers.find(s=>s.name===path3[0]);if(!root)return!1;if(path3.length===1)return!0;let typeName=root.typeNames[0]??root.typeName;for(let i=1;i<path3.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===path3[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]===`
|
|
150
|
-
`&&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_node11.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_node11.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}};var fsp=__toESM(require("node:fs/promises")),path=__toESM(require("node:path")),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 fsp.readdir(dir,{withFileTypes:!0})}catch{return results}let childDirPromises=[];for(let entry of entries){let fullPath=path.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 fsp.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(0,import_node_url2.fileURLToPath)(uri)}catch{}}var connection=createServerConnection(),documents=new import_node12.TextDocuments(TextDocument),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=typeof __SYSML_BROWSER_SERVER__<"u"&&__SYSML_BROWSER_SERVER__,parseWorker,workerReady=!1;function spawnParseWorker(){if(isBrowserServer){connection.console.log("Parse worker disabled in browser; parsing runs inline");return}let workerPath=path2.join(__dirname,"parseWorker.js");try{parseWorker=new import_node_worker_threads.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_node12.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_node12.CodeActionKind.QuickFix]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0}};return hasWorkspaceFolderCapability&&(result.capabilities.workspace={workspaceFolders:{supported:!0}}),result});connection.onInitialized(()=>{hasConfigurationCapability&&(connection.client.register(import_node12.DidChangeConfigurationNotification.type,void 0),pullSettings().catch(()=>{}));let libCount=initLibraryIndex(__dirname);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=(0,import_node_url2.pathToFileURL)(filePath).toString();if(documents.get(uri))return!1;let content;try{content=fs.readFileSync(filePath,"utf-8")}catch{return!1}let doc=TextDocument.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=(0,import_node_url2.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(resolve2=>setImmediate(resolve2)))}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();
|
|
150
|
+
`&&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_node11.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_node11.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}};var fsp=__toESM(require("node:fs/promises")),path=__toESM(require("node:path")),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 fsp.readdir(dir,{withFileTypes:!0})}catch{return results}let childDirPromises=[];for(let entry of entries){let fullPath=path.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 fsp.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(0,import_node_url2.fileURLToPath)(uri)}catch{}}var connection=createServerConnection(),documents=new import_node12.TextDocuments(TextDocument),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=typeof __SYSML_BROWSER_SERVER__<"u"&&__SYSML_BROWSER_SERVER__,parseWorker,workerReady=!1;function spawnParseWorker(){if(isBrowserServer){connection.console.log("Parse worker disabled in browser; parsing runs inline");return}let workerPath=path2.join(__dirname,"parseWorker.js");try{parseWorker=new import_node_worker_threads.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_node12.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_node12.CodeActionKind.QuickFix]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0}};return hasWorkspaceFolderCapability&&(result.capabilities.workspace={workspaceFolders:{supported:!0}}),result});connection.onInitialized(async()=>{hasConfigurationCapability&&(connection.client.register(import_node12.DidChangeConfigurationNotification.type,void 0),await pullSettings().catch(()=>{}));let libCount=initLibraryIndex(__dirname);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=(0,import_node_url2.pathToFileURL)(filePath).toString();if(documents.get(uri))return!1;let content;try{content=fs.readFileSync(filePath,"utf-8")}catch{return!1}let doc=TextDocument.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=(0,import_node_url2.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(resolve2=>setImmediate(resolve2)))}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();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "sysml-v2-lsp",
|
|
3
3
|
"displayName": "SysML v2 Language Server",
|
|
4
4
|
"description": "Language Server Protocol implementation for SysML v2, powered by ANTLR4",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.29.0",
|
|
6
6
|
"publisher": "JamieD",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": {
|
|
@@ -75,6 +75,27 @@
|
|
|
75
75
|
"default": "off",
|
|
76
76
|
"description": "Traces the communication between VS Code and the SysML language server."
|
|
77
77
|
},
|
|
78
|
+
"sysml.workspace.preloadOnOpen": {
|
|
79
|
+
"scope": "window",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": [
|
|
82
|
+
"always",
|
|
83
|
+
"workspaceOnly",
|
|
84
|
+
"never"
|
|
85
|
+
],
|
|
86
|
+
"default": "workspaceOnly",
|
|
87
|
+
"description": "Preload unopened SysML and KerML files on startup: always, only for a saved workspace, or never. Restart the server after changing this setting."
|
|
88
|
+
},
|
|
89
|
+
"sysml.validation.disabledCodes": {
|
|
90
|
+
"scope": "window",
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": {
|
|
93
|
+
"type": "string"
|
|
94
|
+
},
|
|
95
|
+
"uniqueItems": true,
|
|
96
|
+
"default": [],
|
|
97
|
+
"description": "Diagnostic codes to suppress, such as missing-doc. Changes apply to open documents immediately."
|
|
98
|
+
},
|
|
78
99
|
"sysml.maxNumberOfProblems": {
|
|
79
100
|
"scope": "resource",
|
|
80
101
|
"type": "number",
|