我正在开发一个 vscode 扩展,我想从该扩展启动一个调试会话。在我的 launch.json 中,我定义了两个单独的启动配置(调试配置 A、调试配置 B)
是否可以从扩展启动特定配置?
从扩展中,我可以调用以下命令,但这会打开一个快速选择来指定配置,但我不希望这样:
await vscode.commands.executeCommand('workbench.action.debug.start');
我想要这样的命令,
await vscode.commands.executeCommand('workbench.action.debug.start', 'Debug Configuration A');
这里有一个有点相关的 PR,但这不允许我指定我想要的确切启动配置,并且仍然会弹出一个快速选择 https://github.com/microsoft/vscode/pull/193156
我设法通过这样做解决了这个问题:
export function getLaunchConfigurations() {
let rootPath = getRootPath();
if (rootPath) {
const config = vscode.workspace.getConfiguration("launch", rootPath);
const configurations = config.get<any[]>("configurations");
return configurations;
}
}
export function getLaunchConfigurationByName(configName: string) {
let configurations = getLaunchConfigurations();
if (!configurations) {
return;
}
for (var config of configurations) {
if (config.name === configName) {
return config;
}
}
}
let debugConfig = getLaunchConfigurationByName(debugTarget);
if (debugConfig) {
await vscode.commands.executeCommand('debug.startFromConfig', debugConfig);
}