如何将用户设置传递给调试适配器?

时间:2016-08-05 02:37:00

标签: visual-studio-code vscode-extensions

我正在为我的编程语言编写一个vscode调试适配器,并且还没有弄清楚如何将配置选项传递给调试适配器。

帮助我。你能解释一下如何做以下荒谬的例子吗?我只是说清楚我想要实现的目标。

如何传递变量,例如" css.lint.zeroUnits"," explorer.openEditors.visible"," workbench.editor.showTabs"

到一个调试适配器,以便它可以在启动时读取它们,调试适配器,例如:https://github.com/Microsoft/vscode-mock-debug/blob/master/src/mockDebug.ts

我想传递的配置变量数量很少,而且它们都是由我的扩展包沿调试适配器定义的。

1 个答案:

答案 0 :(得分:0)

如果实现resolveDebugConfiguration,则可以将附加字段附加到args字段,该字段将传递给launchRequest / attachRequest。我们将in the Dart extension用于很多事物,以通过以下方式传递设置和事物:

    debugConfig.type = debugConfig.type || "dart";
    debugConfig.request = debugConfig.request || "launch";
    debugConfig.cwd = debugConfig.cwd || (folder && fsPath(folder.uri));
    debugConfig.args = debugConfig.args || [];
    debugConfig.vmAdditionalArgs = debugConfig.vmAdditionalArgs || conf.vmAdditionalArgs;
    debugConfig.vmServicePort = debugConfig.vmServicePort || (isChromeOS && config.useKnownChromeOSPorts ? CHROME_OS_VM_SERVICE_PORT : 0);
    debugConfig.dartPath = debugConfig.dartPath || path.join(this.sdks.dart!, dartVMPath);

args字段中的这些can be read(您可以使用该接口来确保字段在两侧匹配):

protected launchRequest(response: DebugProtocol.LaunchResponse, args: DartLaunchRequestArguments): void {
    if (!args || !args.dartPath || (this.requiresProgram && !args.program)) {