在创建扩展时,调试和运行侧边栏用于启动vsc实例,并将要创建的扩展安装到其中。是否有一些属性可以指示扩展程序是否在这样的vsc实例中运行?就像调试器启动的那样,是为了测试扩展而不是VSC的正常实例?
答案 0 :(得分:1)
听起来您想检测窗口是否为“扩展开发主机”。这里有一个功能要求:
虽然似乎还没有官方的方法可以实现,但是PowerShell扩展has found a workaround的维护者:
// 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";
我做了一个快速测试,看起来它仍然可以工作,但是它似乎很脆弱,就像随时可能破裂的东西。
答案 1 :(得分:0)
issue 10272已与issue 95926合并,应通过VSCode v1.46(2020年5月)和PR 97081来解决
ExtensionMode
上提供了ExtensionContext
,它指示特定扩展名运行的模式。
这是特定于当前扩展名的。
- 一个扩展名可能位于
ExtensionMode.Development
中(该扩展名正在--extensionDevelopmentPath
上运行,而扩展主机正在运行单元测试),而- 主机中的其他扩展在
ExtensionMode.Release
中运行(例如,通常从市场或VSIX中以VSCode安装扩展)。