diff --git a/apps/erlangbridge/src/lsp_handlers.erl b/apps/erlangbridge/src/lsp_handlers.erl index 03f3e4a..35f0a80 100644 --- a/apps/erlangbridge/src/lsp_handlers.erl +++ b/apps/erlangbridge/src/lsp_handlers.erl @@ -5,8 +5,9 @@ textDocument_didOpen/2, textDocument_didClose/2, textDocument_didSave/2, textDocument_didChange/2, textDocument_definition/2, textDocument_references/2, textDocument_hover/2, textDocument_completion/2, textDocument_formatting/2, textDocument_codeLens/2, textDocument_documentSymbol/2, - textDocument_inlayHints/2, textDocument_signatureHelp/2, textDocument_prepareRename/2, textDocument_rename/2]). --export([textDocument_inlineValues/2]). + textDocument_signatureHelp/2, textDocument_prepareRename/2, textDocument_rename/2]). +-export([textDocument_inlineValues/2, textDocument_inlineValue/2]). +-export([textDocument_inlayHints/2, textDocument_inlayHint/2]). -include("lsp_log.hrl"). @@ -239,6 +240,10 @@ textDocument_codeLens(_Socket, Params) -> end, [], lsp_navigation:codelens_info(lsp_utils:file_uri_to_file(Uri))) end. + +textDocument_inlayHint(_Socket, Params) -> + textDocument_inlayHints(_Socket, Params). + textDocument_inlayHints(_Socket, Params) -> %gen_lsp_server:lsp_log("textDocument_inlayHints ~p", [Params]), Uri = mapmapget(textDocument, uri, Params), @@ -273,13 +278,15 @@ textDocument_documentSymbol(_Socket, Params) -> } end, lsp_navigation:symbol_info(lsp_utils:file_uri_to_file(Uri))). + +textDocument_inlineValue(_Socket, Params) -> + textDocument_inlineValues(_Socket, Params). + % provide inlive values while debugging (values are shown directly in editor) textDocument_inlineValues(_Socket, Params) -> Uri = mapmapget(textDocument, uri, Params), - %#{line:=LS, character:=CS} = mapmapget(range, start, Params), - % no inlivevalues after 'stoppedLocation' - %#{line:=LE, character:=CE} = mapmapget(range, 'end', Params), - #{line:=LE, character:=CE} = mapmapget(stoppedLocation, 'end', Params), + ContextMap = maps:get(context, Params), + #{line:=LE, character:=CE} = mapmapget(stoppedLocation, 'end', ContextMap), lists:map(fun ({Kind, Position, Label}) -> #{ position => lsp_utils:client_position(Position), diff --git a/apps/erlangbridge/src/lsp_inlayhints.erl b/apps/erlangbridge/src/lsp_inlayhints.erl index d614ce6..86c7316 100644 --- a/apps/erlangbridge/src/lsp_inlayhints.erl +++ b/apps/erlangbridge/src/lsp_inlayhints.erl @@ -46,7 +46,8 @@ internal_inlayhint_analyze(SyntaxTree, _CurrentFile, #{defs := Defs, calls := Ca %{call,{32,5},{remote,{32,15},{atom,{32,5},sample_lib}, {atom,{32,16},fn_utils1}},[{var,{32,26},'X'}]} {call, _LocationCall, {remote, _, {atom, _,ModuleName}, {atom, _, FName}}, Args} -> %to avoid collision with local function name, add module as prefix - FuncName = lists:flatten(io_lib:format("~s.~s", [ModuleName, FName])), + % ~p to avoid crash on function name with unicode characters + FuncName = lists:flatten(io_lib:format("~s.~p", [ModuleName, FName])), case get_remote_function_content(ModuleName, FName) of {true, RemoteFuns} -> F = #{ diff --git a/lib/ErlangShellDebugger.ts b/lib/ErlangShellDebugger.ts index 35ed209..792435a 100644 --- a/lib/ErlangShellDebugger.ts +++ b/lib/ErlangShellDebugger.ts @@ -1,7 +1,7 @@ import { ChildProcess, spawn } from 'child_process'; import { EventEmitter } from 'events'; import { GenericShell, ILogOutput } from './GenericShell'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import * as path from 'path'; import * as os from 'os'; import * as fs from 'fs'; @@ -33,6 +33,9 @@ export class FunctionBreakpoint implements DebugProtocol.Breakpoint { this.functionName = fn; this.arity = a; } + public setId(id: number): void{ + this.id = id; + } } // export interface IErlangShellOutputForDebugging { diff --git a/lib/erlangDebugConnection.ts b/lib/erlangDebugConnection.ts index 3f427d5..6c8ae54 100644 --- a/lib/erlangDebugConnection.ts +++ b/lib/erlangDebugConnection.ts @@ -1,5 +1,5 @@ import {ErlangConnection} from './erlangConnection'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { FunctionBreakpoint } from './ErlangShellDebugger'; diff --git a/lib/erlangDebugSession.ts b/lib/erlangDebugSession.ts index 0043547..90358c1 100644 --- a/lib/erlangDebugSession.ts +++ b/lib/erlangDebugSession.ts @@ -2,8 +2,8 @@ import { DebugSession, InitializedEvent, TerminatedEvent, StoppedEvent, OutputEvent, Thread, ThreadEvent, StackFrame, Scope, Source, Handles , Breakpoint, ModuleEvent, Module, ContinuedEvent, Variable, BreakpointEvent -} from 'vscode-debugadapter'; -import { DebugProtocol } from 'vscode-debugprotocol'; +} from '@vscode/debugadapter'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { ErlangShellForDebugging, LaunchRequestArguments, FunctionBreakpoint } from './ErlangShellDebugger'; import { ILogOutput } from './GenericShell'; import * as path from 'path'; diff --git a/lib/lsp/lsp-context.ts b/lib/lsp/lsp-context.ts index 6803a15..0d567ac 100644 --- a/lib/lsp/lsp-context.ts +++ b/lib/lsp/lsp-context.ts @@ -24,13 +24,13 @@ export class ErlangLanguageClient extends LanguageClient { // prompt up the failure to users. outChannel?: vscode.OutputChannel; - handleFailedRequest(type: MessageSignature, error: any, - defaultValue: T): T { + handleFailedRequest(type: MessageSignature, token: vscode.CancellationToken | undefined, error: any, defaultValue: T, showNotification?: boolean): T { + if (error instanceof ResponseError && type.method === 'workspace/executeCommand') { //show an error popup at lower right in vscode vscode.window.showErrorMessage(error.message); } - return super.handleFailedRequest(type, error, defaultValue); + return super.handleFailedRequest(type, token, error, defaultValue); } constructor(name: string, serverOptions: ServerOptions, @@ -41,10 +41,10 @@ export class ErlangLanguageClient extends LanguageClient { this.outChannel = lspOutputChannel; } - - onReady(): Promise { + public onReady(): void { this.outChannel?.appendLine("LanguageClient is ready"); clientIsReady = true; - return super.onReady(); + //not more needed + //return super.onReady(); } } \ No newline at end of file diff --git a/lib/lsp/lsp-inlayhints.ts b/lib/lsp/lsp-inlayhints.ts deleted file mode 100644 index bc51896..0000000 --- a/lib/lsp/lsp-inlayhints.ts +++ /dev/null @@ -1,107 +0,0 @@ - -import { - CancellationToken, Event, ExtensionContext, InlayHint, InlayHintsProvider, - OutputChannel, ProviderResult, TextDocument, languages, - workspace as Workspace, - InlayHintKind, Range, Position -} from 'vscode'; -import { clientIsReady, erlangDocumentSelector } from './lsp-context'; -import { RequestType, TextDocumentIdentifier } from 'vscode-languageclient'; -import { client } from './lspclientextension'; -import * as proto from 'vscode-languageserver-protocol'; - -export function activate(context: ExtensionContext, lspOutputChannel: OutputChannel) { - //inlay should be registered only if config enabled - // const enabledSetting = 'editor.inlayHints.enabled'; - const inlay = languages.registerInlayHintsProvider(erlangDocumentSelector, - new ErlangInlayHintsProvider(lspOutputChannel)); - context.subscriptions.push(inlay); -} - -namespace protocol { - export interface ErlangInlayHint { - range: proto.Range; - position?: proto.Position; - kind: string; - label: string; - } - - export interface InlayHintsParams { - textDocument: TextDocumentIdentifier; - range?: proto.Range; - } - export namespace InlayHintsRequest { - export const type = - new RequestType( - 'textDocument/inlayHints'); - } -} - -//global activation -let inlayHintsEnabled = false; -//TODO: like C#, it can be useful to have several inlayHints type configuration -// let inlayHintsinLoop, .... -let autosave = Workspace.getConfiguration("files").get("autoSave") == "afterDelay"; - -export function configurationChanged(): void { - inlayHintsEnabled = Workspace.getConfiguration("erlang").get("inlayHintsEnabled"); - autosave = Workspace.getConfiguration("files").get("autoSave") == "afterDelay"; -} - -export class ErlangInlayHintsProvider implements InlayHintsProvider { - - constructor(private lspOutputChannel: OutputChannel) { - } - - onDidChangeInlayHints?: Event; - - provideInlayHints(document: TextDocument, range: Range, token: CancellationToken): - ProviderResult { - - if (!inlayHintsEnabled) { - this.lspOutputChannel.appendLine("inlayHints feature is disabled"); - return Promise.resolve([]); - } - if (!clientIsReady) { - //client not ready => not connected to language server, so return empty - return Promise.resolve([]); - } - const request: protocol.InlayHintsParams = { - textDocument: { uri: document.uri.toString() }, - range: client.code2ProtocolConverter.asRange(range), - }; - return this.sendRequest(request, token); - } - - async sendRequest(request: protocol.InlayHintsParams, token: CancellationToken): Promise { - //send requiest to lsp textDocument/inlayHints - let result = await client.sendRequest(protocol.InlayHintsRequest.type, request, token); - //this.lspOutputChannel.appendLine(`receive from lsp => ${JSON.stringify(result)}`); - return result.map(this.decode, this); - } - - decodeKind(kind: string): InlayHintKind | undefined { - if (kind == 'type') - return InlayHintKind.Type; - if (kind == 'parameter') - return InlayHintKind.Parameter; - return undefined; - } - - decode(hint: protocol.ErlangInlayHint): InlayHint { - return { - position: client.protocol2CodeConverter.asPosition(hint.position!), - kind: this.decodeKind(hint.kind), - label: hint.label.trim(), - paddingLeft: hint.label.startsWith(' '), - paddingRight: hint.label.endsWith(' '), - }; - } - - resolveInlayHint?(hint: InlayHint, token: CancellationToken): ProviderResult { - //TODO: add tooltip,... - //called when mouse is over the InlayHint - //this.lspOutputChannel.appendLine(`resolveInlayHint : ${JSON.stringify(hint)}`); - return hint; - } -} \ No newline at end of file diff --git a/lib/lsp/lspclientextension.ts b/lib/lsp/lspclientextension.ts index 9dd7257..5cb9c5a 100644 --- a/lib/lsp/lspclientextension.ts +++ b/lib/lsp/lspclientextension.ts @@ -25,7 +25,6 @@ import * as Net from 'net'; import * as lspcodelens from './lspcodelens'; -import * as lspInlay from './lsp-inlayhints'; import * as lspValue from './lsp-inlinevalues'; import * as lspRename from './lsp-rename'; @@ -95,12 +94,10 @@ namespace Configuration { export function initialize() { //force to read configuration lspcodelens.configurationChanged(); - lspInlay.configurationChanged(); // VS Code currently doesn't sent fine grained configuration changes. So we // listen to any change. However this will change in the near future. configurationListener = Workspace.onDidChangeConfiguration(() => { lspcodelens.configurationChanged(); - lspInlay.configurationChanged(); client.sendNotification(DidChangeConfigurationNotification.type, { settings: null }); }); fileSystemWatcher = workspace.createFileSystemWatcher('**/*.erl'); @@ -208,7 +205,6 @@ export function activate(context: ExtensionContext) { if (erlangCfg.verbose) lspOutputChannel = Window.createOutputChannel('Erlang Language Server'); - lspInlay.activate(context, lspOutputChannel); lspValue.activate(context, lspOutputChannel); lspRename.activate(context, lspOutputChannel); @@ -222,10 +218,10 @@ export function activate(context: ExtensionContext) { resolveCodeLens: (codeLens) => { return Promise.resolve(lspcodelens.onResolveCodeLenses(codeLens)).then(x => x); }, - didSave: (data: TextDocument, next: (data: TextDocument) => void) => { - next(data);//call LSP + didSave: async (data, next) => { + await next(data);//call LSP lspcodelens.onDocumentDidSave(); - }, + } }; // Options to control the language client let clientOptions: LanguageClientOptions = { @@ -258,7 +254,7 @@ export function activate(context: ExtensionContext) { }, undefined); // - client.onReady(); + (client).onReady(); }); }); }, clientOptions, lspOutputChannel, true); diff --git a/package-lock.json b/package-lock.json index fdd05e6..bc0dcad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "erlang", - "version": "1.0.5", + "version": "1.0.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "erlang", - "version": "1.0.5", + "version": "1.0.9", "license": "MIT", "dependencies": { + "@vscode/debugadapter": "^1.68.0", + "@vscode/debugprotocol": "^1.68.0", "fs-extra": "^8.1.0", - "vscode-debugadapter": "^1.41.0", - "vscode-debugprotocol": "^1.41.0", - "vscode-languageclient": "^7.0.0", - "vscode-languageserver": "^7.0.0", + "vscode-languageclient": "^9.0.1", + "vscode-languageserver": "^9.0.1", "vscode-uri": "^1.0.3" }, "devDependencies": { @@ -215,20 +215,20 @@ "dev": true }, "node_modules/@azure/identity": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz", - "integrity": "sha512-ve3aYv79qXOJ8wRxQ5jO0eIz2DZ4o0TyME4m4vlGV5YyePddVZ+pFMzusAMODNAflYAAv1cBIhKnd4xytmXyig==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.0.tgz", + "integrity": "sha512-oG6oFNMxUuoivYg/ElyZWVSZfw42JQyHbrp+lR7VJ1BYWsGzt34NwyDw3miPp1QI7Qm5+4KAd76wGsbHQmkpkg==", "dev": true, "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.5.0", - "@azure/core-client": "^1.4.0", + "@azure/core-client": "^1.9.2", "@azure/core-rest-pipeline": "^1.1.0", "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", - "@azure/msal-node": "^2.6.6", + "@azure/msal-browser": "^3.14.0", + "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", "open": "^8.0.0", @@ -285,12 +285,12 @@ } }, "node_modules/@azure/msal-node": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.8.0.tgz", - "integrity": "sha512-YtyRGq11LyHn2OdFoFixdRA5woU2cjkT51fbBznka5jDhcmkwERNRhJllL3tyXBaLcvqJDch8OwKUR4CLRlLWg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "dependencies": { - "@azure/msal-common": "14.10.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -298,6 +298,15 @@ "node": ">=16" } }, + "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", @@ -921,6 +930,22 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vscode/debugadapter": { + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/@vscode/debugadapter/-/debugadapter-1.68.0.tgz", + "integrity": "sha512-D6gk5Fw2y4FV8oYmltoXpj+VAZexxJFopN/mcZ6YcgzQE9dgq2L45Aj3GLxScJOD6GeLILcxJIaA8l3v11esGg==", + "dependencies": { + "@vscode/debugprotocol": "1.68.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@vscode/debugprotocol": { + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/@vscode/debugprotocol/-/debugprotocol-1.68.0.tgz", + "integrity": "sha512-2J27dysaXmvnfuhFGhfeuxfHRXunqNPxtBoR3koiTOA9rdxWNDTa1zIFLCFMSHJ9MPTPKFcBeblsyaCJCIlQxg==" + }, "node_modules/@vscode/test-cli": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.9.tgz", @@ -1665,18 +1690,19 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2112,7 +2138,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/convert-source-map": { "version": "2.0.0", @@ -2883,9 +2910,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -4506,6 +4533,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4517,6 +4545,8 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "optional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4530,17 +4560,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -6422,65 +6441,70 @@ "node": ">=10.13.0" } }, - "node_modules/vscode-debugadapter": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/vscode-debugadapter/-/vscode-debugadapter-1.41.0.tgz", - "integrity": "sha512-b+J8wmsa3NCxJ+L9DAMpRfPM+8bmp4gFBoFp9lhkpwqn3UMs3sYvdcwugQr/T4lDaCCEr807HKMppRsD1EHhPQ==", - "dependencies": { - "mkdirp": "^0.5.1", - "vscode-debugprotocol": "1.41.0" - } - }, - "node_modules/vscode-debugprotocol": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.41.0.tgz", - "integrity": "sha512-Sxp7kDDuhpEZiDaIfhM0jLF3RtMqvc6CpoESANE77t351uezsd/oDoqALLcOnmmsDzTgQ3W0sCvM4gErnjDFpA==" - }, "node_modules/vscode-jsonrpc": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", - "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", "engines": { - "node": ">=8.0.0 || >=10.0.0" + "node": ">=14.0.0" } }, "node_modules/vscode-languageclient": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", - "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", + "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", "dependencies": { - "minimatch": "^3.0.4", - "semver": "^7.3.4", - "vscode-languageserver-protocol": "3.16.0" + "minimatch": "^5.1.0", + "semver": "^7.3.7", + "vscode-languageserver-protocol": "3.17.5" }, "engines": { - "vscode": "^1.52.0" + "vscode": "^1.82.0" + } + }, + "node_modules/vscode-languageclient/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/vscode-languageclient/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/vscode-languageserver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", - "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "dependencies": { - "vscode-languageserver-protocol": "3.16.0" + "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "node_modules/vscode-languageserver-protocol": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", - "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "dependencies": { - "vscode-jsonrpc": "6.0.0", - "vscode-languageserver-types": "3.16.0" + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" } }, "node_modules/vscode-languageserver-types": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", - "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==" + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" }, "node_modules/vscode-test": { "version": "1.4.0", @@ -7136,20 +7160,20 @@ } }, "@azure/identity": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz", - "integrity": "sha512-ve3aYv79qXOJ8wRxQ5jO0eIz2DZ4o0TyME4m4vlGV5YyePddVZ+pFMzusAMODNAflYAAv1cBIhKnd4xytmXyig==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.4.0.tgz", + "integrity": "sha512-oG6oFNMxUuoivYg/ElyZWVSZfw42JQyHbrp+lR7VJ1BYWsGzt34NwyDw3miPp1QI7Qm5+4KAd76wGsbHQmkpkg==", "dev": true, "requires": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.5.0", - "@azure/core-client": "^1.4.0", + "@azure/core-client": "^1.9.2", "@azure/core-rest-pipeline": "^1.1.0", "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", - "@azure/msal-node": "^2.6.6", + "@azure/msal-browser": "^3.14.0", + "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", "open": "^8.0.0", @@ -7198,14 +7222,22 @@ "dev": true }, "@azure/msal-node": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.8.0.tgz", - "integrity": "sha512-YtyRGq11LyHn2OdFoFixdRA5woU2cjkT51fbBznka5jDhcmkwERNRhJllL3tyXBaLcvqJDch8OwKUR4CLRlLWg==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.12.0.tgz", + "integrity": "sha512-jmk5Im5KujRA2AcyCb0awA3buV8niSrwXZs+NBJWIvxOz76RvNlusGIqi43A0h45BPUy93Qb+CPdpJn82NFTIg==", "dev": true, "requires": { - "@azure/msal-common": "14.10.0", + "@azure/msal-common": "14.14.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" + }, + "dependencies": { + "@azure/msal-common": { + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.14.0.tgz", + "integrity": "sha512-OxcOk9H1/1fktHh6//VCORgSNJc2dCQObTm6JNmL824Z6iZSO6eFo/Bttxe0hETn9B+cr7gDouTQtsRq3YPuSQ==", + "dev": true + } } }, "@bcoe/v8-coverage": { @@ -7647,6 +7679,19 @@ "eslint-visitor-keys": "^3.3.0" } }, + "@vscode/debugadapter": { + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/@vscode/debugadapter/-/debugadapter-1.68.0.tgz", + "integrity": "sha512-D6gk5Fw2y4FV8oYmltoXpj+VAZexxJFopN/mcZ6YcgzQE9dgq2L45Aj3GLxScJOD6GeLILcxJIaA8l3v11esGg==", + "requires": { + "@vscode/debugprotocol": "1.68.0" + } + }, + "@vscode/debugprotocol": { + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/@vscode/debugprotocol/-/debugprotocol-1.68.0.tgz", + "integrity": "sha512-2J27dysaXmvnfuhFGhfeuxfHRXunqNPxtBoR3koiTOA9rdxWNDTa1zIFLCFMSHJ9MPTPKFcBeblsyaCJCIlQxg==" + }, "@vscode/test-cli": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.9.tgz", @@ -8238,18 +8283,19 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browser-stdout": { @@ -8572,7 +8618,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "convert-source-map": { "version": "2.0.0", @@ -9156,9 +9203,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -10380,6 +10427,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -10387,7 +10435,9 @@ "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "optional": true }, "minipass": { "version": "7.1.1", @@ -10395,14 +10445,6 @@ "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, "mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -11805,56 +11847,60 @@ "vinyl-contents": "^2.0.0" } }, - "vscode-debugadapter": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/vscode-debugadapter/-/vscode-debugadapter-1.41.0.tgz", - "integrity": "sha512-b+J8wmsa3NCxJ+L9DAMpRfPM+8bmp4gFBoFp9lhkpwqn3UMs3sYvdcwugQr/T4lDaCCEr807HKMppRsD1EHhPQ==", - "requires": { - "mkdirp": "^0.5.1", - "vscode-debugprotocol": "1.41.0" - } - }, - "vscode-debugprotocol": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.41.0.tgz", - "integrity": "sha512-Sxp7kDDuhpEZiDaIfhM0jLF3RtMqvc6CpoESANE77t351uezsd/oDoqALLcOnmmsDzTgQ3W0sCvM4gErnjDFpA==" - }, "vscode-jsonrpc": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", - "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==" }, "vscode-languageclient": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", - "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", + "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", "requires": { - "minimatch": "^3.0.4", - "semver": "^7.3.4", - "vscode-languageserver-protocol": "3.16.0" + "minimatch": "^5.1.0", + "semver": "^7.3.7", + "vscode-languageserver-protocol": "3.17.5" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "vscode-languageserver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", - "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "requires": { - "vscode-languageserver-protocol": "3.16.0" + "vscode-languageserver-protocol": "3.17.5" } }, "vscode-languageserver-protocol": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", - "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "requires": { - "vscode-jsonrpc": "6.0.0", - "vscode-languageserver-types": "3.16.0" + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" } }, "vscode-languageserver-types": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", - "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==" + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" }, "vscode-test": { "version": "1.4.0", diff --git a/package.json b/package.json index 9a764e7..d10791d 100644 --- a/package.json +++ b/package.json @@ -292,10 +292,10 @@ }, "dependencies": { "fs-extra": "^8.1.0", - "vscode-debugadapter": "^1.41.0", - "vscode-debugprotocol": "^1.41.0", - "vscode-languageclient": "^7.0.0", - "vscode-languageserver": "^7.0.0", + "@vscode/debugadapter": "^1.68.0", + "@vscode/debugprotocol": "^1.68.0", + "vscode-languageclient": "^9.0.1", + "vscode-languageserver": "^9.0.1", "vscode-uri": "^1.0.3" }, "devDependencies": {