微軟發布 VS Code 1.51,改進了固定選項卡等

閱讀時間圖標 11分鐘讀


讀者幫助支持 MSpoweruser。如果您透過我們的連結購買,我們可能會獲得佣金。 工具提示圖標

請閱讀我們的揭露頁面,了解如何幫助 MSPoweruser 維持編輯團隊的發展 阅读更多

微軟 VS 代碼

微軟 VS 代碼

微軟今天宣布發布 Visual Studio Code v1.51(2020 年 XNUMX 月更新),其中包含多項改進和錯誤修復。 這個新更新現在帶有可調整大小的 IntelliSense 建議框、持久遠程終端會話、改進的固定選項卡等。 在下面找到 Microsoft 提供的完整更改日誌。

工作台#

更突出的固定標籤#

固定標籤現在將始終顯示其固定圖標,即使在不活動時也是如此,以使它們更容易識別。 如果編輯器既已固定又包含未保存的更改,則圖標會反映這兩種狀態。

顯示 pin 圖標的非活動固定選項卡

擴展樹使用自定義懸停#

我們現在使用自定義懸停,而不是在擴展樹視圖中使用本機工具提示,該懸停是一致的跨平台並且更適合整體 UX。

自定義樹懸停

在不同步的情況下安裝擴展#

您現在可以在啟用設置同步的情況下安裝擴展而不同步它。

安裝擴展而不同步

主題: GitHub 燈

從資源管理器安裝擴展#

VS Code 現在支持從資源管理器安裝擴展 VSIX 文件,方法是右鍵單擊 VSIX 文件並選擇 安裝擴展 VSIX 上下文菜單項。

輸入模糊命令#

一個新的內部 workbench.action.blur 現在可以使用命令,它可以從任何可聚焦的輸入中移除焦點。 您可以在 鍵盤快捷鍵首選項.

綜合終端#

本地迴聲#

在終端中進行修改傳統上需要將信息發送到終端進程、處理並返回到 VS Code 才能受到影響。 當處理與 SSH服務器 or 代碼空間.

此版本為終端添加了“本地回顯”模式,該模式嘗試預測本地所做的修改和光標移動,並在 UI 中顯示它們,而無需往返服務器。 默認情況下,預測字符顯示為“變暗”:

Gif 顯示具有 250 毫秒延遲的打字,其中立即輸入的字符變暗

您可以使用兩種設置來配置它:

  • terminal.integrated.localEchoLatencyThreshold 配置檢測到的延遲閾值,以毫秒為單位,本地迴聲將在該閾值時激活。 這可以設置為 0 一直打開該功能,或 -1 禁用它。 默認為 30.
  • terminal.integrated.localEchoStyle 配置本地字符的樣式或顏色,默認為 dim.

智能感知#

可調整大小的建議#

在這個里程碑中,我們對建議 UI 進行了多項改進。 首先,它現在可以調整大小。 拖動邊或角來調整控件的大小。

可調整大小的建議控件

主題: GitHub 燈, 字體:FiraCode

建議列表的大小將跨會話保存和恢復。 詳細信息窗格的大小僅在每個會話中保存,因為該大小往往更具可變性。 此外,該 editor.suggest.maxVisibleSuggestions 設置已過時。

建議的狀態欄#

建議控件現在也可以在窗口底部顯示自己的狀態欄。 使用 editor.suggest.showStatusBar 環境。 它使切換細節更簡單,並顯示完成是否支持插入、替換或兩者兼而有之。

建議狀態欄

主題: GitHub 燈, 字體:FiraCode

在上面的示例中,選擇“插入”會導致 Math.floorceil 並選擇“替換”導致 Math.floor.

新的 editor.suggest.insertMode 設置允許您配置您喜歡插入還是替換。 當建議同時支持兩者時,您的偏好將是默認設置。

移動光標以選擇建議#

最後但同樣重要的是,您現在可以在顯示建議時移動光標。 例如,您可以在單詞末尾觸發建議,向左移動以查看更多建議,然後使用替換來覆蓋該單詞。

顯示建議時移動光標

主題: GitHub 燈

螞蟻#

Emmet 中的自定義片段又回來了。 此外,片段現在會在保存片段文件或更新 emmet.extensionsPath 設置。

Emmet 自定義片段再次工作

源代碼控制#

Source Control 輸入框保存提交消息歷史#

這解決了一個 功能要求 導航 SCM 提交歷史。 按 Up 和  分別顯示前一個和下一個提交。 要直接移動到輸入框的第一個和最後一個位置,請按 其他 與相應的箭頭鍵一起使用。

在 SCM 輸入框中輸入消息,然後暫存並提交更改後,按向上箭頭會顯示剛剛提交的消息

Git:子菜單中的標記命令#

標籤相關的 Git 命令已添加到 ... Git 菜單。

Git標籤子菜單

Git:變基命令#

新 Git:變基分支… 添加了命令,可讓您使用 UI 重新定位分支。

Git:遞歸克隆命令#

隨著 Git:克隆(遞歸) 命令,您現在可以遞歸地克隆 Git 存儲庫,包括其嵌套的 Git 子模塊。

時間軸:表情符號簡碼渲染#

我們現在渲染表情符號簡碼,例如 :smile:, 在時間軸視圖中。

帶有表情符號的時間線視圖

語言#

Markdown 智能選擇#

使用以下新命令擴展和縮小 Markdown 文檔中的選擇:

  • 擴大: Shift+Alt+右
  • 收縮: Shift+Alt+左

選擇適用於以下內容,並遵循傳統的分層模式:

  • 清單
  • 塊引號
  • 圍欄代碼塊
  • html代碼塊

Markdown 文檔中的智能選擇從塊元素擴展到包含它的塊元素,到標題下的其餘內容,到標題本身

JavaScript 和 TypeScript 的空大括號格式選項#

新的 javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces 和 typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces 格式化配置選項控制是否在空括號之間插入空格。 這些設置的默認值為 true。 例如,對於 JavaScript:

class Foo {
  doFoo() {}
}

設置 "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false 並格式化代碼導致:

class Foo {
  doFoo() {} // Notice that the space has been removed
}

瀏覽器支持#

下載文件夾(Edge、Chrome)#

利用新的 文件系統訪問 API,在瀏覽器中運行的 Microsoft VS Code 現在可以為文件資源管理器中的文件夾提供下載操作,以將所有文件和文件夾下載到磁盤。

下載文件夾

注意: 這需要最新版本的 Microsoft Edge 或 Google Chrome。

打開工作區通知#

如果您打開一個文件夾,其中包含 .code-workspace 文件位於頂層,您現在會看到一條通知,要求您打開它。 這在 Microsoft VS Code 桌面版中總是如此,現在也可以在瀏覽器中使用。

打開工作區通知

防止意外關閉#

新設定 window.confirmBeforeClose 添加以在關閉或離開工作台之前顯示確認對話框。

可能的值為:

  • keyboardOnly 僅當您使用鍵綁定關閉時才會顯示確認(例如, Ctrl + W)。 (默認)
  • always:確認對話框將始終顯示,即使您從鼠標手勢關閉。
  • never: 永遠不會顯示確認信息。

關閉確認對話框

備註: 此設置可能無法涵蓋所有情況。 瀏覽器可能仍會決定關閉選項卡或窗口而無需確認。

對擴展的貢獻#

GitHub 拉取請求和問題#

工作仍在繼續 GitHub 拉取請求和問題 擴展,它允許您處理、創建和管理拉取請求和問題。

要了解所有新功能和更新,您可以查看完整的 0.22.0 的變更日誌 擴展的發布。

遠程開發#

工作仍在繼續 遠程開發擴展,它允許您使用容器、遠程機器或 Linux的Windows子系統 (WSL) 作為功能齊全的開發環境。

1.51 中的功能亮點包括:

  • 能夠持久/重新連接到終端會話。
  • 改進的端口轉發體驗。

您可以在 遠程開發發行說明.

預覽功能#

預覽功能尚未準備好發布,但功能足以使用。 我們歡迎您在開發過程中提供早期反饋。

設置同步#

設置同步現在同步擴展的全局狀態。 擴展必須提供狀態以使用新引入的同步 setKeysForSync API。

記住代理憑據#

我們正在徹底檢查登錄對話框,該對話框顯示網絡連接何時需要使用代理進行身份驗證。 新設定, window.enableExperimentalProxyLoginDialog: true,將啟用我們計劃在未來版本中默認設置的新體驗。

代理登錄

主題: GitHub 燈

該對話框將出現在 Microsoft VS Code 窗口中,並提供一種記住憑據的方法,這樣您就不必在每次啟動 VS Code 時都提供它們。 憑據將存儲在操作系統標準憑據存儲中(macOS 上的鑰匙串、Windows 上的 Windows 憑據管理器和 Linux 上的 gnome 密鑰環)。

我們仍然在每個會話中只顯示一次此對話框,但將來可能會重新考慮此決定。 如果您選擇記住的憑據無效,您將再次看到該對話框。 再次提供它們允許您更改它們。

請啟用此選項,並通過我們的 問題追踪器.

TypeScript 4.1 測試版支持#

Microsoft VS Code 支持 TypeScript 4.1 測試版 和夜間構建。 4.1 更新帶來了一些新的 TypeScript 語言特性,例如支持 遞歸條件類型,以及工具改進。 一個重點領域是 添加初始支持 對於 @see JSDoc 註釋中的標籤。

要開始使用 TypeScript 4.1 nightly build,只需安裝 TypeScript Nightly 擴展. 如果您遇到 TypeScript 4.1 的任何錯誤,請分享反饋並告訴我們。

擴展創作#

更新的擴展示例#

我們更新了一些我們的 擴展樣本 包括與我們的顏色主題標記掛鉤的 Microsoft VS Code 默認樣式。 這意味著通用元素(文本、按鈕、輸入)將是可主題化的,並且與產品中的默認樣式相匹配。 以下是包含此內容的擴展:

Webview 樣式示例

樹木中的 Codicon 顏色#

隨著項目的最終確定 ThemeIcon 顏色 API, 擴展作者可以在自定義樹視圖中的 codicons 上使用主題顏色。

帶有圖標顏色的樹視圖

同步全局狀態#

擴展現在可以通過提供鍵來同步它們的全局狀態,當啟用設置同步時,它們的值應該同步,使用新引入的 setKeysForSync API在 globalState 紀念。

/**
 * Set the keys whose values should be synchronized across devices when synchronizing user-data
 * like configuration, extensions, and mementos.
 *
 * Note that this function defines the whole set of keys whose values are synchronized:
 *  - calling it with an empty array stops synchronization for this memento
 *  - calling it with a non-empty array replaces all keys whose values are synchronized
 *
 * For any given set of keys this function needs to be called only once but there is no harm in
 * repeatedly calling it.
 *
 * @param keys The set of keys whose values are synced.
 */
setKeysForSync(keys: string[]): void;

評論線程回复按鈕可見性#

評論 擴展現在可以使用新屬性控制評論線程中回复按鈕的可見性, CommentThread#canReply. 當它設置為 false,用戶將不會在評論線程中看到回复按鈕或評論框。

提議的擴展 API#

每個里程碑都帶有新的提議 API,擴展作者可以試用它們。 一如既往,我們希望得到您的反饋。 這是您嘗試提議的 API 所必須做的:

  • 您必須使用 Insiders,因為提議的 API 經常更改。
  • 您必須在 package.json 你的擴展文件: "enableProposedApi": true.
  • 複製最新版本的 vscode.proposed.d.ts 文件到項目的源位置。

您不能發布使用建議的 API 的擴展。 下一個版本中可能會有重大更改,我們永遠不想破壞現有的擴展。

折疊範圍提供者更改事件#

折疊範圍提供者可以向編輯器發出信號,需要使用 onDidChangeFoldingRanges 事件。

有關更多詳細信息並提供反饋,請使用 問題#108929.

密碼 API#

作為繼續工作的一部分 身份驗證提供程序,我們引入了用於存儲和檢索敏感信息的 API。 在內部,這充當了 鍵塔 VS Code 用於存儲機密的庫。

/**
 * Retrieve a password that was stored with key. Returns undefined if there
 * is no password matching that key.
 * @param key The key the password was stored under.
 */
export function getPassword(key: string): Thenable<string | undefined>;

/**
 * Store a password under a given key.
 * @param key The key to store the password under
 * @param value The password
 */
export function setPassword(key: string, value: string): Thenable<void>;

/**
 * Remove a password from storage.
 * @param key The key the password was stored under.
 */
export function deletePassword(key: string): Thenable<void>;

/**
 * Fires when a password is set or deleted.
 */
export const onDidChangePassword: Event<void>;

#

使 Microsoft VS Code 受信任類型兼容#

我們繼續努力使 VS Code 符合“可信類型”。 目標是防止基於 DOM 的跨站點腳本漏洞。 您可以在 web.dev 了解有關受信任類型的更多信息 可信類型站點 並關注我們的進展 問題#103699.

資源: Microsoft微軟

有關主題的更多資訊: 微軟, Visual Studio代碼1.51, VS代碼

發表評論

您的電子郵件地址將不會被發表。 必填字段標 *