about summary refs log tree commit diff
path: root/editors/code/src/debug.ts
diff options
context:
space:
mode:
Diffstat (limited to 'editors/code/src/debug.ts')
-rw-r--r--editors/code/src/debug.ts21
1 files changed, 19 insertions, 2 deletions
diff --git a/editors/code/src/debug.ts b/editors/code/src/debug.ts
index cc5755611e7..bbf3ff31204 100644
--- a/editors/code/src/debug.ts
+++ b/editors/code/src/debug.ts
@@ -95,10 +95,27 @@ export async function getDebugConfiguration(ctx: Ctx, config: ra.Runnable): Prom
 }
 
 export async function startDebugSession(ctx: Ctx, config: ra.Runnable): Promise<boolean> {
-    const debugConfig = await getDebugConfiguration(ctx, config);
+    let debugConfig: vscode.DebugConfiguration | undefined = undefined;
+    let message = "";
+
+    if (ctx.config.debug.useLaunchJson) {
+        const wsLaunchSection = vscode.workspace.getConfiguration("launch");
+        const configurations = wsLaunchSection.get<any[]>("configurations") || [];
+
+        const index = configurations.findIndex(c => c.name === config.label);
+        if (-1 !== index) {
+            debugConfig = configurations[index];
+            message = " (from launch.json)";
+            debugOutput.clear();
+        }
+    }
+    if (!debugConfig) {
+        debugConfig = await getDebugConfiguration(ctx, config);
+    }
+
     if (!debugConfig) return false;
 
-    debugOutput.appendLine("Launching debug configuration:");
+    debugOutput.appendLine(`Launching debug configuration${message}:`);
     debugOutput.appendLine(JSON.stringify(debugConfig, null, 2));
     return vscode.debug.startDebugging(undefined, debugConfig);
 }