From 7e6f3e8d854b4683a5f791f87acd1d1527137aa2 Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Mon, 25 Sep 2023 16:51:53 -0700 Subject: [PATCH] Add support for multilaunch for Blazorwasm This PR adds in the support for handling two launch configurations from the ILaunchConfigurationService and will launch the client as a seperate debug session. --- src/shared/dotnetConfigurationProvider.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/shared/dotnetConfigurationProvider.ts b/src/shared/dotnetConfigurationProvider.ts index 25c216bbd..4cb2e3513 100644 --- a/src/shared/dotnetConfigurationProvider.ts +++ b/src/shared/dotnetConfigurationProvider.ts @@ -139,8 +139,19 @@ export class DotnetConfigurationResolver implements vscode.DebugConfigurationPro } if (debugConfigArray.length == 1) { return debugConfigArray[0]; - } else if (debugConfigArray.length > 1) { - throw new InternalServiceError('Multiple launch targets is not yet supported.'); + } else if (debugConfigArray.length === 2) { + // This creates a onDidStartDebugSession event listener that will dispose of itself when it detects + // the debugConfiguration that is return from this method has started. + const startDebugEvent = vscode.debug.onDidStartDebugSession((debugSession: vscode.DebugSession) => { + if (debugSession.name === debugConfigArray[0].name) { + startDebugEvent.dispose(); + vscode.debug.startDebugging(debugSession.workspaceFolder, debugConfigArray[1], debugSession); + } + }); + + return debugConfigArray[0]; + } else if (debugConfigArray.length > 2) { + throw new InternalServiceError('Multiple launch targets (>2) is not yet supported.'); } else { throw new InternalServiceError( 'Unexpected configuration array from IDotnetDebugConfigurationServiceResult.'