簡體   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