🚀 在 VS Code 中取得

2024 年 10 月 (版本 1.95)

安全性更新:下列擴充功能有安全性更新:ms-python.pythonms-vscode-remote.remote-ssh

更新 1.95.1:此更新解決了這些問題

更新 1.95.2:此更新解決了這些問題

更新 1.95.3:此更新解決了這些問題

下載:Windows:x64 Arm64 | Mac:通用 Intel silicon | Linux:deb rpm tarball Arm snap


歡迎使用 Visual Studio Code 2024 年 10 月版發行。此版本有許多更新,希望您會喜歡,其中一些主要重點包括

如果您想線上閱讀這些版本資訊,請前往 code.visualstudio.com 上的更新Insiders:想要盡快試用新功能嗎?您可以下載每晚建置的 Insiders 版本,並在最新更新可用時立即試用。

GitHub Copilot

Copilot 功能可能會經歷不同的早期存取階段,這些階段通常透過設定啟用和設定。

  • 實驗性 - 檢視實驗性功能 (@tag:experimental)

    此設定控制正在積極開發的新功能,可能不穩定。它可能會變更或移除。

  • 預覽 - 檢視預覽功能 (@tag:preview)

    此設定控制仍在精進但已可使用的新功能。歡迎提供意見反應。

開始使用 Copilot 編輯進行程式碼編輯工作階段

Copilot 編輯目前為預覽版

設定github.copilot.chat.edits.enabled

透過 Copilot 編輯,您可以開始 AI 驅動的程式碼編輯工作階段,您可以在其中快速迭代程式碼變更。根據您的提示,Copilot 編輯會建議跨工作區中多個檔案的程式碼變更。這些編輯會直接在編輯器中套用,因此您可以快速在程式碼的完整環境脈絡中檢閱它們。

Copilot 編輯非常適合迭代跨多個檔案的大型變更。它將 Copilot 聊天的對話流程與內嵌聊天的快速意見反應結合在一個體驗中。在側邊進行持續的多回合聊天對話,同時受益於內嵌程式碼建議。

只需三個步驟即可開始使用 Copilot 編輯

  1. 從「聊天」選單中選取開啟 Copilot 編輯,或按下 ⇧⌘I (Windows Ctrl+Shift+I,Linux Ctrl+Shift+Alt+I),以開始編輯工作階段。

    Screenshot showing the Copilot menu in the Command Center, highlighting the Open Edit Session item

  2. 將相關檔案新增至工作集,以向 Copilot 指示您想要處理的檔案。

  3. 輸入提示,告訴 Copilot 您想要進行的編輯!例如,將簡單的導覽列新增至所有頁面使用 vitest 而非 jest

在我們的文件中取得有關 Copilot 編輯 的更多詳細資訊。立即試用並透過 我們的問題追蹤 提供您的意見反應!

次要側邊欄中的聊天

「聊天」檢視的新預設位置是次要側邊欄。透過使用次要側邊欄,您可以隨時開啟聊天,同時仍然可以使用其他檢視,例如檔案總管或原始檔控制。這在 VS Code 中為您提供更整合的 AI 體驗。您可以使用 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 鍵盤快速鍵快速進入聊天。

Chat view in its new location after having moved.

隨著命令中心旁邊新增的「聊天」選單,只需按一下即可在次要側邊欄中開啟聊天

聊天選單讓您可以存取 Copilot 聊天最常見的工作。如果您希望隱藏此選單,則提供新的設定 chat.commandCenter.enabled

Chat menu in the Command Center.

注意:如果您先前已安裝 GitHub Copilot,則會在您先前擁有「聊天」的位置顯示一個檢視,讓您可以將「聊天」檢視還原到舊位置,如果這樣對您來說效果更好。

Chat view in its old location showing that Chat has moved to the Secondary Side Bar.

Copilot 程式碼檢閱

Copilot 程式碼檢閱目前為預覽版

透過 Visual Studio Code 中的 GitHub Copilot 程式碼檢閱,您現在可以在撰寫程式碼時取得 AI 驅動的快速意見反應,或在推送之前要求檢閱您的所有變更。Visual Studio Code 中的 GitHub Copilot 程式碼檢閱目前為預覽版。立即試用並透過 我們的問題追蹤 提供意見反應。

有兩種方法可以在 VS Code 中使用 Copilot 程式碼檢閱

  • 檢閱選取範圍:若要進行快速檢閱,請在編輯器中選取程式碼,然後從編輯器上下文選單中選取Copilot > 檢閱和註解,或使用命令面板中的 GitHub Copilot:檢閱和註解 命令。(此功能為預覽版。)

  • 檢閱變更:若要更深入地檢閱所有未提交的變更,請在原始檔控制檢視中選取 Copilot 程式碼檢閱 按鈕,您也可以在 GitHub.com 上的提取要求中執行此操作。(加入 候補名單,開放給所有 Copilot 訂閱者)

    Request review of uncommitted changes

Copilot 的意見反應會顯示為編輯器中的註解,附加到您的程式碼行。在可能的情況下,註解包含可採取動作的程式碼建議,您可以一鍵套用。

Screenshot showing a comment reviewing a code selection

若要深入瞭解 Copilot 程式碼檢閱,請前往 GitHub 程式碼檢閱文件

Copilot 對程式碼選取範圍的快速檢閱可以提供符合您團隊或專案特定實務的意見反應,前提是您提供正確的環境脈絡。當使用自訂檢閱指示檢閱選取範圍時,您可以透過 github.copilot.chat.reviewSelection.instructions 設定來定義這些特定需求。與 程式碼產生和測試產生指示 類似,您可以直接在設定中定義指示,也可以將它們儲存在個別檔案中,並在設定中參考它。

以下程式碼片段顯示檢閱指示的範例

  "github.copilot.chat.reviewSelection.instructions": [
    {
      "text": "Logging should be done with the Log4j ."
    },
    {
      "text": "Always use the Polly library for fault-handling."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

code-style.md 檔案內容的範例

Private fields should start with an underscore.

A file can only contain one class declaration.

自動聊天參與者偵測

設定chat.experimental.detectParticipant.enabled

GitHub Copilot 有多個內建聊天參與者,例如 @workspace,您可能也已安裝其他貢獻聊天參與者的擴充功能。

為了讓您更輕鬆地使用自然語言的聊天參與者,Copilot 聊天會在可能的情況下自動將您的問題路由傳送到合適的參與者或聊天命令。

如果自動選取的參與者不適合您的問題,您仍然可以選取聊天回應頂端的 重新執行,但不包含 連結,將您的問題重新傳送給 Copilot。

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

本月,我們還新增了一個動作,讓您可以按要求略過此偵測行為。當您輸入聊天提示時,預設動作是 傳送並調度,其中包括參與者偵測。如果您選擇 傳送,則請求會直接傳送至 Copilot 聊天,並且不會自動調度到聊天參與者。

The list of available "send" commands in the chat view.

您也可以使用 chat.experimental.detectParticipant.enabled 設定完全停用自動參與者偵測。

控制目前的編輯器環境脈絡

Copilot 聊天始終會自動將您目前的選取範圍或目前可見的程式碼作為環境脈絡包含在您的聊天請求中。大型語言模型 (LLM) 通常擅長理解一段環境脈絡是否相關。但是,有時當您提出與目前編輯器無關的問題時,包含此環境脈絡可能會影響模型解讀您問題的方式。

我們現在在聊天輸入中顯示一個特殊的附件控制項,它會提示編輯器環境脈絡,並讓您切換是否包含編輯器環境脈絡。

The current editor context control in the chat input, which shows that the context is not included.

編輯器環境脈絡的行為沒有變更。當使用中編輯器具有選取範圍時,只會包含選取範圍。否則,只會包含捲動到檢視中的程式碼。您仍然可以使用迴紋針按鈕或在聊天提示中輸入 # 來附加其他檔案或完整檔案。

Copilot 聊天的常見使用案例是詢問有關工作區中程式碼的問題,例如使用 /tests 為選取的程式碼產生新的單元測試,或要求 @workspace 在專案中尋找某些特定類別或函式。在此里程碑中,我們為 Copilot 在聊天回應中提及的任何工作區符號新增了增強型連結。這些符號連結可以協助您更好地理解 Copilot 回應,並瞭解有關其中使用的符號的更多資訊。

符號連結在回應中呈現為小藥丸,就像我們在上一個里程碑中新增的檔案連結一樣。若要開始瞭解符號的更多資訊,只需選取符號連結即可跳到該符號的定義

您也可以將滑鼠游標停留在符號連結上方,以查看符號定義所在的檔案

Hovering over a symbol link to see the file it's defined in.

若要開始更詳細地探索符號,只需在符號連結上按一下滑鼠右鍵,即可顯示包含選項的上下文選單,例如前往實作前往參考

Using the context menu on a symbol link to learn more about a symbol.

基本符號連結應適用於任何支援「前往定義」的語言。更進階的 IntelliSense 選項 (例如「前往實作」) 也需要支援該語言。請務必安裝語言擴充功能,以取得 Copilot 回應中使用的任何程式設計語言的最佳符號支援。

修正在問題浮動視窗中使用 Copilot 動作的問題

當您將滑鼠游標停留在編輯器中的問題上方時,現在會包含使用 Copilot 修復問題的動作。此動作適用於具有可用修復程式的問題,且修復程式由 Copilot 產生。

The Problem hover showing a Fix using Copilot action.

工作區索引

@workspace 可讓您詢問有關目前專案中程式碼的問題。這是使用 GitHub 的程式碼搜尋 或 VS Code 建構的智慧型本機索引實作的。在此里程碑中,我們新增了一些 UI 元素,讓您可以瞭解如何使用此工作區索引。

首先,新的 GitHub Copilot:建置本機工作區索引 命令可讓您明確開始為目前工作區建立索引。此索引通常會在您第一次詢問 @workspace 問題時自動啟動。透過新命令,您可以隨時開始建立索引。此命令也啟用較大型工作區的索引,目前最多 2000 個檔案 (不包括忽略的檔案,例如 node_modulesout 目錄)。

在建置索引時,我們現在也會在狀態列中顯示進度項目

A status bar item showing the progress of indexing the current workspace.

為包含數百個檔案的工作區建立索引可能需要一些時間。如果您嘗試在建構索引時詢問 @workspace 問題,Copilot 會嘗試使用可以更快建置的較簡單本機索引快速回應,而不是等待。當發生這種情況時,我們現在會在回應中顯示警告

A warning showing on a response telling the user the Copilot index is being constructed.

請注意,即使 Copilot 在這種情況下使用了較簡單的本機索引而不是更進階的索引,它仍然能夠回答問題。情況通常如此,儘管更模糊或複雜的問題可能只有在建構更智慧的索引後才能回答。另請記住,如果您的工作區由 GitHub 存放庫支援,我們可以改用 GitHub 的程式碼搜尋 來回答問題。這表示程式碼搜尋會取代較簡單的本機索引。

聊天後續改進

設定github.copilot.chat.followUps

為了在「聊天」檢視中為聊天對話騰出更多空間,我們使後續提示更簡潔,並且預設情況下,它們僅在第一回合顯示。設定 github.copilot.chat.followUps 設定以變更後續提示的顯示時間

  • firstOnly (預設) - 後續提示僅在第一回合顯示
  • always - 後續提示始終顯示
  • never - 停用後續提示

在語意搜尋中依相關性排序 (實驗性)

設定github.copilot.chat.search.semanticTextResults

在上一個里程碑中,我們推出了使用 Copilot 執行語意搜尋的功能,以取得與您的查詢在語意上相關的搜尋結果。我們現在透過依相關性對搜尋結果進行排序來改進搜尋結果。來自更相關程式碼片段的關鍵字比對被視為整體上更相關。

工作台

多個 GitHub 帳戶

將上個月的功能升級為預設行為,現在可以同時登入 VS Code 中的多個 GitHub 帳戶。

Multiple GitHub Accounts in the Account menu.

以下是您可能需要多個帳戶的幾個情境

  • 帳戶 1 用於設定同步,將帳戶 2 用於 GitHub 提取要求擴充功能
  • 帳戶 1 用於 GitHub 擴充功能 (用於推送),將帳戶 2 用於 GitHub Copilot

若要使用此功能,只需觸發登入動作 (透過內建功能 (例如設定同步) 或透過擴充功能),您就可以選擇登入不同的帳戶。如果您稍後需要變更選取的帳戶,此功能也與帳戶喜好設定快速選取完美搭配。

雖然大多數項目都應該繼續與您現有的擴充功能搭配運作,但某些行為可能還無法在此多帳戶世界中完美運作。如果您認為有改進空間,請在這些擴充功能上開啟問題。在相對較新的 vscode.authentication.getAccounts('github') API 的協助下,擴充功能具有處理多個帳戶的強大功能。

在變更帳戶喜好設定時新增其他帳戶

上個月,我們推出了帳戶喜好設定快速選取,如果您因任何原因需要變更擴充功能的慣用帳戶,則此功能對於變更擴充功能的慣用帳戶非常有用。

我們收到的意見反應之一是希望有一種簡單的方法來新增尚未登入的帳戶。在此里程碑中,我們在快速選取中新增了一個新項目,讓您可以執行此操作。使用 使用新帳戶... 項目啟動驗證流程,並一次將帳戶喜好設定設定為該帳戶。

Use a new account option in the account preference Quick Pick.

實驗性和預覽設定的設定編輯器指示器

先前,從設定編輯器中查看時,並非始終清楚哪些設定是實驗性或預覽版。為了突顯實驗性和即將推出的功能,設定編輯器現在會在實驗性和預覽設定旁邊顯示指示器。您可以在設定編輯器搜尋方塊中輸入 @tag:experimental@tag:preview,以相應地篩選設定。

擴充功能作者可以在其設定中新增「experimental」或「preview」標籤,以在設定編輯器中顯示對應的指示器。

佈景主題:淺粉紅色 (在 vscode.dev 上預覽)

更多設定檔圖示

在此里程碑中,我們新增了更多設定檔圖示。您現在可以從更廣泛的圖示範圍中進行選擇,以自訂您的設定檔。

Image showing all available profile icons, highlighting the newly added icons.

在面板中檢視圖示

在工作台面板區域中,檢視通常顯示為標題列中的標籤 (例如,終端機輸出)。但是,在較小的螢幕上,這些標籤可能會超出可用空間,導致某些檢視溢位到下拉式選單中。

為了解決此問題,我們新增了一個新設定:workbench.panel.showLabels。停用後,檢視會顯示為圖示而不是標籤,從而節省水平空間並減少溢位。

workbench.panel.showLabels:true

Panel area showing the labels for each panel.

workbench.panel.showLabels:false

Panel area showing an icon for each panel and no label.

編輯器

出現次數醒目提示延遲

在此里程碑中,我們推出了設定 editor.occurrencesHighlightDelay,讓您可以控制編輯器中出現次數醒目提示之前的延遲。降低此延遲值可能會使編輯器體驗在處理語意醒目提示時感覺更靈敏。

VS Code 網頁版

VS Code 網頁版支援本機檔案事件

當使用 Chrome 或 Edge 129 版及更新版本時,使用本機資料夾開啟 https://insiders.vscode.dev 現在支援檔案事件。如果您在瀏覽器外部變更已開啟工作區的檔案和資料夾,這些變更會立即反映在瀏覽器內部。

此功能利用新的 FileSystemObserver 介面,該介面建議作為 Web 的新 API。

擴充功能貢獻

Copilot 擴充功能展示

在此里程碑中,團隊致力於建置多個擴充功能,以展示 VS Code 中的 Copilot 擴充性。這些擴充功能示範了下列功能

試用這些擴充功能,看看如何在您自己的擴充功能中擴充 Copilot。

擴充功能 連結
GitHub 提取要求 Marketplace
Copilot 的網頁搜尋 Marketplace原始碼
使用 Copilot 產生 MermAId 圖表 Marketplace
Copilot 的資料分析 Marketplace原始碼
VS Code Commander Marketplace
Copilot 預覽版的視覺功能 Marketplace

GitHub 提取要求

GitHub 提取要求 擴充功能的版本 0.100.0 新增了 Copilot 整合

  • 在「聊天」檢視中使用 @githubpr 聊天參與者來搜尋問題、摘要問題/提取要求,以及建議問題的修復程式。@githubpr 使用多種語言模型工具來完成此操作。
  • 還有一個新的 通知 檢視,顯示 GitHub 通知,其中包含使用 Copilot 優先處理它們的動作。

若要試用所有功能,您可以設定下列設定

  • githubPullRequests.experimental.chat
  • githubPullRequests.experimental.notificationsView
使用 Copilot 搜尋問題

新的 @githubpr 聊天參與者可以搜尋 GitHub 上的問題。

Copilot issue search for most open bugs.

顯示問題時,@githubpr 會顯示 Markdown 表格,並嘗試根據搜尋選擇要顯示的最佳欄。

Copilot issue search for closed October issues.

使用 Copilot 摘要和修復

現在,「問題」檢視中列出的每個問題都有一個新動作 使用 Copilot 摘要,它會開啟「聊天」面板並摘要選取的問題。我們還新增了另一個動作 使用 Copilot 修復,它會摘要選取的問題,並使用工作區環境脈絡來建議其修復程式。

使用 Copilot 進行通知優先順序排序 (實驗性)

在此里程碑中,我們新增了一個實驗性 通知 檢視,其中列出您在存放庫中的未讀通知。預設情況下,通知會依最近更新的降序排序,但您可以使用檢視標題的 ... 選單中的 使用 Copilot 依優先順序排序 動作,讓 Copilot 優先處理通知。選取每個通知會觸發使用 Copilot 摘要通知的動作。此檢視也包含易於存取的動作,可將通知標記為已讀取,或在 GitHub.com 上開啟通知。

Notifications View

Copilot 的網頁搜尋

此擴充功能展示

  • 聊天參與者和工具 API
  • prompt-tsx
  • 如何運用 GitHub Copilot 提供的語言模型

原始碼在此處的 GitHub 上提供

描述

直接在 Copilot 中取得來自 Web 的最新且相關資訊。

這由兩個不同的搜尋引擎之一提供支援,由 websearch.preferredEngine 設定

作為使用者,您需要從其中一項服務取得 API 金鑰才能使用此擴充功能。首次使用時,它會要求您提供該金鑰,並使用 VS Code 的內建秘密儲存體儲存它,並且也可以透過 VS Code 的驗證堆疊進行管理,就像您對 GitHub 帳戶所做的那樣。

聊天參與者

此擴充功能貢獻了 @websearch 聊天參與者,它可以處理可能需要來自網際網路的即時資訊的問題。您可以使用 @websearch vscode 中何時推出工作區信任? 手動叫用它

The question "when did Workspace Trust ship in vscode" and the answer showing the references and details.

聊天工具

此擴充功能也貢獻了 #websearch 聊天語言模型工具,它與參與者類似,但適用於在其他聊天參與者中提供來自 Web 的環境脈絡。例如

  • @workspace /new #websearch 使用最流行的架構建立以 Python 撰寫的新 Web 應用程式

The question "create a new web app written in Python using the most popular framework" using the websearch variable with /new. The result is a project using Django.

此外,如果您正在開發自己的聊天參與者或工具,則可以透過 vscode.lm.invokeTool API 使用此聊天工具。

使用 Copilot 產生 MermAId 圖表

vscode-mermAId (vscode:extension/ms-vscode.copilot-mermaid-diagram) 擴充功能為 GitHub Copilot 貢獻了一個新的聊天參與者,以使用 Mermaid (一種受 Markdown 啟發的圖表和圖表工具) 為您的程式碼建置和修改視覺化效果。

建立和轉譯圖表

透過聊天對話建立任何類型的 Mermaid 支援圖表,並使用 /iterate 斜線命令來精進圖表。斜線命令可用於特定圖表,以向模型提供額外指導。

為某些圖表類型 (例如流程) 新增連結,以指向回收集以建置圖表的參考。

Mermaid 視覺大綱檢視

開啟 視覺大綱 檢視以從使用中編輯器動態產生圖表。您可以進入聊天以進行更精細的控制。

聊天工具

此擴充功能貢獻了一個工具,用於收集檔案或整個工作區中的符號資訊,並且在安裝此擴充功能後,其他聊天參與者可以使用該工具。

Copilot 的資料分析

Copilot 的資料分析擴充功能為資料科學領域的人員提供支援。從清理 .csv 檔案,到透過運用不同的統計量度、圖形和預測模型來執行更高等級的資料分析,@data 聊天參與者透過為資料工作提供量身打造的深入解析和互動性,協助做出更進階且更明智的決策。

此擴充功能貢獻了一個工具,LLM 可以要求使用 Pyodide 執行 Python 程式碼,並取得相關 Python 程式碼執行的結果。它也能夠在發生錯誤時智慧地重試,以獲得更好或更適當的執行結果。您也可以將用於執行分析 (或產生視覺化效果) 的程式碼匯出到 Jupyter Notebook 或 Python 檔案中。

您可以從 Marketplace 下載擴充功能,原始碼在此處的 GitHub 上提供

資料分析和視覺化
  • 給定 CSV 檔案,輸入提示,例如 分析檔案 #<檔案名稱> 或撰寫更具體的提示 (請參閱以下錄製)
  • 提供後續提示以要求產生視覺化效果,例如圖表、繪圖等

匯出用於執行資料分析的程式碼
  • 可以檢視用於執行分析和產生視覺化效果的 Python 程式碼
  • 程式碼可以匯出到 Jupyter Notebook 或 Python 檔案中

CSV 檔案的編輯器和檔案總管整合
  • 在 CSV 檔案上按一下滑鼠右鍵以分析它
  • 開啟 CSV 檔案並使用 Copilot 圖示來分析檔案

VS Code Commander 擴充功能

VS Code Commander 擴充功能 (vscode:extension/ms-vscode.vscode-commander) 充當您在 VS Code 中的個人助理。此強大的工具可讓您透過使用對話式自由格式文字來設定您的 VS Code 環境。透過 VS Code Commander,您可以

  • 探索和瀏覽各種設定和命令
  • 根據您的需求調整您的開發環境

這些動作可以透過簡單直觀的聊天介面執行,使管理 VS Code 設定比以往更容易。

Copilot 預覽版擴充功能的視覺功能

Copilot 預覽版擴充功能的視覺功能 (vscode:extension/ms-vscode.vscode-copilot-vision) 可讓您直接附加影像作為環境脈絡輸入,豐富對話並啟用更動態、視覺化支援的回應。此擴充功能最終將被取代,轉而使用 Github Copilot 聊天中的內建影像流程。

聊天中的視覺功能

目前,您可以使用自己的 OpenAI、Azure OpenAI、Anthropic 或 Gemini 金鑰,在「聊天」檢視中體驗影像附件流程。首先,您可以輕鬆地從剪貼簿附加影像,或將影像直接拖曳到聊天中。

Screenshot of a chat exchange. A user asks for HTML and CSS for a landing page. The response provides a basic HTML structure with a header, navigation links (Home, About, Contact), and a link to an external CSS file.

佈景主題:藍寶石 (在 vscode.dev 上預覽)

具有快速修復的視覺功能

此外,您可以使用提供的程式碼動作,為 Markdown、HTML、JSX 或 TSX 文件中的影像產生或精進替代文字,從而簡化合併描述性文字以獲得更好的環境脈絡和協助工具的流程。替代文字快速修復適用於工作區中的影像和影像 URL。

An example markdown document displays a quick fix feature for generating alt text, resulting in the automatic insertion of an alt tag and a value. The user is then prompted with a different quick fix to refine the alt text using an input box. After the user enters and submits their refined description, the alt text is updated accordingly.

此擴充功能使用建議的 API ChatReferenceBinaryData。歡迎查看原始碼中如何使用它的範例,在此處的 GitHub 上提供

Python

原生 REPL 變數檢視

原生 Python REPL 現在為內建「變數」檢視提供最新的變數。這可讓您深入瞭解直譯器的狀態,因為您可以從檔案或透過 REPL 輸入方塊執行程式碼。

使用 Pylance 產生文件字串

現在,您可以使用 Pylance 的文件字串範本產生功能,更方便地為您的 Python 程式碼產生文件!您可以透過輸入 """'''、按下 Ctrl+空白鍵,或選取燈泡以叫用 產生文件字串 程式碼動作,為類別或方法產生文件字串範本。產生的文件字串包含函式描述、參數、參數類型、傳回值和傳回值類型的欄位。

這項功能目前還在實驗性設定中,但我們期待很快能將其設為預設體驗。您今天就可以啟用 python.analysis.supportDocstringTemplate 設定來試用看看。

摺疊所有文件字串

文件字串非常適合為您的程式碼提供上下文和解釋,但有時您可能希望將它們摺疊起來,以便專注於程式碼本身。現在,您可以使用新的 Pylance: 摺疊所有文件字串 命令更輕鬆地做到這一點,該命令也可以綁定到您選擇的快捷鍵。要展開它們,請使用 Pylance: 展開所有文件字串 命令。

改進的匯入建議

Pylance 的強大功能之一是其提供自動匯入建議的能力。預設情況下,Pylance 從符號定義的位置提供匯入建議,但您可能希望從符號匯入的檔案(即別名)中匯入它。透過新的 python.analysis.includeAliasesFromUserFiles 設定,您現在可以控制 Pylance 是否在其自動匯入建議或新增匯入快速修復中包含來自使用者檔案的別名符號。

請注意,啟用此設定可能會對效能產生負面影響,尤其是在大型程式碼庫中,因為 Pylance 可能需要索引更多符號並監控更多檔案的變更,這可能會增加資源使用量。

實驗性 AI 程式碼動作:實作抽象類別

現在,透過新的實驗性程式碼動作來實作抽象類別,您可以同時享有 AI 和靜態分析的優勢!此功能需要 PylanceGitHub Copilot 擴充功能。要試用它,您可以在定義繼承自抽象類別的類別時,選擇 使用 Copilot 實作所有繼承的抽象類別 程式碼動作。

您可以在使用者設定中設定 "python.analysis.aiCodeActions": {"implementAbstractClasses": false} 來停用此功能。

擴充功能開發

語言模型的工具

我們已經完成了我們的 LanguageModelTool API!這個 API 使聊天擴充功能能夠透過將語言模型連接到外部資料來源或採取動作來建立更強大的體驗。該 API 包含兩個主要部分

  1. 擴充功能註冊工具的能力。工具是一種旨在供語言模型使用的功能。例如,讀取檔案的 Git 歷史記錄。當使用 lm.registerTool 方法註冊工具時,其他擴充功能也可以在 lm.tools 清單中存取它。這將使聊天擴充功能能夠透過共享工具的生態系統與其他擴充功能無縫整合。

  2. 語言模型支援工具的機制,例如擴充功能在發出請求時傳遞工具、語言模型請求工具調用以及擴充功能傳回工具調用的結果。

語言模型工具的使用很複雜,而此 API 並未隱藏這種複雜性。如果您想註冊工具或在您的聊天參與者中使用工具,我們建議從 擴充功能範例 開始。

聊天參與者偵測

我們已經完成了用於聊天參與者偵測的 API,這讓 GitHub Copilot 能夠自動選擇您的聊天參與者或參與者命令來處理使用者的問題。請查看 我們的文件 以取得詳細的教學和建議。

VS Code 語音

VS Code Speech 擴充功能已更新至 Azure Speech SDK 的八月版本,並附帶用於語音轉文字辨識的更新模型。對於 VS Code 中的語音轉文字整合(例如 Copilot Chat),您應該會看到此更新帶來更好的結果。

註解執行緒 collapsibleState

即使在註解執行緒已經顯示之後,也可以使用新的 CommentThread.collapsibleState 屬性來變更 CommentThread 的展開/摺疊狀態。先前,此屬性僅在首次顯示註解執行緒時才會被採用。

歡迎檢視中的 Codicons

歡迎檢視現在支援呈現 codicon 的功能。您可以使用歡迎檢視中常用的 $(icon-name) 來做到這一點。

A sample welcome view showing the use of text, links, buttons, and codicons.

聊天參與者存取模型選擇器

您可能已經注意到聊天檢視中的模型選擇器,它可讓您選擇用於聊天請求的模型。

Copilot model picker control in the Chat view enables switching to another language model.

您的聊天參與者擴充功能需要採用新的 API 才能使用此模型選擇器。我們剛剛完成了 ChatRequest 物件上的新 model 屬性,它將設定為選擇器中模型的 LanguageModelChat 實例。您可以使用它來代替 lm.selectChatModels 方法。如果您的擴充功能想要使用除了所選模型之外的特定模型,您仍然可以使用 lm.selectChatModels

預覽功能

TypeScript 5.7

我們持續改進對即將發布的 TypeScript 5.7 的支援。請查看 TypeScript 5.7 beta 部落格文章TypeScript 5.7 計劃 以了解詳細資訊。

要開始使用 TypeScript 5.7 的預覽版本,請安裝 TypeScript Nightly 擴充功能

貼上時更新 JavaScript 和 TypeScript 的匯入

厭倦了在檔案之間移動程式碼後必須新增匯入嗎?試試看我們貼上時更新匯入的實驗性支援!當您在編輯器之間複製和貼上程式碼時,VS Code 會在貼上程式碼時自動新增匯入

請注意,它不僅新增了匯入,甚至還為貼上程式碼中使用的區域變數新增了新的匯出!

要立即試用此功能,請確保您使用的是 TypeScript 5.7+。然後啟用 javascript.experimental.updateImportsOnPaste/typescript.experimental.updateImportsOnPaste。目前僅支援在同一個 VS Code 視窗中的文字編輯器之間貼上。

建議的 API

用於影像附件的聊天參考二進位資料

如果存在使用建議的 ChatReferencebinaryData API 的擴充功能,我們現在允許將影像 (pngjpegbmpgiftiff) 貼到聊天中。

export class ChatReferenceBinaryData {
  /**
   * The MIME type of the binary data.
   */
  readonly mimeType: string;

  /**
   * Retrieves the binary data of the reference.
   * @returns A promise that resolves to the binary data as a Uint8Array.
   */
  data(): Thenable<Uint8Array>;

  /**
   * @param mimeType The MIME type of the binary data.
   * @param data The binary data of the reference.
   */
  constructor(mimeType: string, data: () => Thenable<Uint8Array>);
}

擴充功能作者可以在透過 request.references 建立聊天處理常式後存取此功能,當影像透過拖放或從快速選取器附加時,它可以是 URI,對於貼上的影像,它將是 ChatReferenceBinaryData

工程

用於 LLM 的提示建構程式庫

本月,我們開源了我們的 @vscode/prompt-tsx 程式庫,我們在過去一年中開發並在 Copilot Chat 中使用它來製作語言模型提示。該程式庫使開發人員能夠使用類似於 React 的 TSX/JSX 語法建立他們的提示,並包含各種工具,以充分利用提示的 Token 預算。

移除 AMD 程式碼以及在 Web 中更多地使用 ESM

我們從我們的原始碼中移除了 AMD(非同步模組定義)的最後痕跡,主要來自我們仍然保留的組建腳本,以便在恢復版本需要時支援 AMD。

此外,https://vscode.dev 現在也完全僅使用 ESM (ECMAScript Modules) 執行。

遷移到 ESLint 9

我們已更新主要的 VS Code 儲存庫和我們所有的 擴充功能範例 以使用 ESLint 9。這包括遷移我們所有的 ESLint 配置以使用現代 flat configs

Electron 32 更新

在這個里程碑中,我們正在將 Electron 32 更新推廣給穩定版本的用戶。此更新隨附 Chromium 128.0.6613.186 和 Node.js 20.18.0。我們要感謝所有在 Insiders 組建上自行託管並提供早期回饋的每個人。

值得注意的修復

  • 177046 在擴充功能面板中搜尋後會崩潰

謝謝

最後但同樣重要的是,衷心感謝 VS Code 的貢獻者。

Issue 追蹤

對我們的 Issue 追蹤的貢獻

Pull requests

vscode 的貢獻

vscode-docs 的貢獻

vscode-js-debug 的貢獻

vscode-languageserver-node 的貢獻

vscode-mypy 的貢獻

vscode-vsce 的貢獻

language-server-protocol 的貢獻

lsprotocol 的貢獻

tolerant-php-parser 的貢獻