about summary refs log tree commit diff
diff options
context:
space:
mode:
authorigorskyflyer <igor.dvlpr@gmail.com>2023-07-15 21:18:57 +0200
committerigorskyflyer <igor.dvlpr@gmail.com>2023-07-20 15:41:08 +0200
commit5d67cbea43b8ff573e3082b79cd502d58b260685 (patch)
tree89a7574d05a7643f7f4166b860ae97c7442cf1aa
parent996e054f1eb1dbfc8455ecabff0f6ff22ba7f7c8 (diff)
downloadrust-5d67cbea43b8ff573e3082b79cd502d58b260685.tar.gz
rust-5d67cbea43b8ff573e3082b79cd502d58b260685.zip
Use notification command links for debugger installation
-rw-r--r--editors/code/src/debug.ts13
1 files 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;
     }