繁体   English   中英

有没有办法检测调试器是否创建了 VSC 窗口

[英]Is there a way of detecting if a VSC window is created by the debugger

创建扩展时,调试和运行侧栏用于启动 vsc 实例并将您正在创建的扩展安装到其中。 如果扩展在这样的 vsc 实例中运行,是否有一些属性会指示扩展? 就像调试器启动来测试扩展而不是 VSC 的普通实例一样?

听起来您想检测窗口是否是“扩展开发主机”。 这里有一个功能请求:

虽然似乎还没有正式的方法来实现这一点,但 PowerShell 扩展的维护者已经找到了一种解决方法

// When in development mode, VS Code's session ID is a fake
// value of "someValue.machineId".  Use that to detect dev
// mode for now until Microsoft/vscode#10272 gets implemented.
private readonly inDevelopmentMode =
    vscode.env.sessionId === "someValue.sessionId";

我做了一个快速测试,看起来这仍然有效,但它似乎相当脆弱/就像那种随时可能破裂的东西。

问题 10272已与问题 95926合并,应使用 VSCode v1.46(2020 年 5 月)解决, PR 97081

所述ExtensionMode设置在ExtensionContext并指示特定的分机是否在运行模式。
这是特定于当前扩展的。

  • 一个扩展可能在ExtensionMode.Development (扩展从--extensionDevelopmentPath运行并且扩展主机正在运行单元测试),而
  • 主机中的其他扩展在ExtensionMode.Release运行(扩展通常安装,例如,从市场或 VSIX,在 VSCode 中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM