From 5d67cbea43b8ff573e3082b79cd502d58b260685 Mon Sep 17 00:00:00 2001 From: igorskyflyer Date: Sat, 15 Jul 2023 21:18:57 +0200 Subject: [PATCH] Use notification command links for debugger installation --- editors/code/src/debug.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/editors/code/src/debug.ts b/editors/code/src/debug.ts index f3d6238d51b..e817d680eae 100644 --- a/editors/code/src/debug.ts +++ b/editors/code/src/debug.ts @@ -66,6 +66,12 @@ export async function startDebugSession(ctx: Ctx, runnable: ra.Runnable): Promis return vscode.debug.startDebugging(undefined, debugConfig); } +function createCommandLink(extensionId: string): string { + // do not remove the second quotes inside + // encodeURIComponent or it won't work + return `extension.open?${encodeURIComponent(`"${extensionId}"`)}`; +} + async function getDebugConfiguration( ctx: Ctx, runnable: ra.Runnable, @@ -90,9 +96,12 @@ async function getDebugConfiguration( } if (!debugEngine) { + const commandCodeLLDB: string = createCommandLink("vadimcn.vscode-lldb"); + const commandCpp: string = createCommandLink("ms-vscode.cpptools"); + await vscode.window.showErrorMessage( - `Install [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb)` + - ` or [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) extension for debugging.`, + `Install [CodeLLDB](command:${commandCodeLLDB} "Open CodeLLDB")` + + ` or [C/C++](command:${commandCpp} "Open C/C++") extension for debugging.`, ); return; }