現已釋出!閱讀關於 11 月新增功能和修復的內容。

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 Chat 的對話流程和內聯聊天的快速反饋整合到一個體驗中。在進行持續的多輪對話的同時,還能獲得內聯程式碼建議。

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

  1. 透過從“聊天”選單中選擇“開啟 Copilot 編輯”,或按 來啟動編輯會話。

    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 最常用任務的訪問。如果您想隱藏此選單,提供了一個新設定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: Review and Comment”命令。(此功能處於預覽階段。)

  • 審查更改:對所有未提交的更改進行更深入的審查,在“原始碼管理”檢視中選擇“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 Chat 會在可能的情況下自動將您的問題路由到合適的參與者或聊天命令。

如果自動選擇的參與者不適合您的問題,您仍然可以單擊聊天響應頂部的“不帶重新執行”連結,將您的問題重新發送給 Copilot。

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

本月,我們還添加了一個操作,讓您可以按請求跳過此檢測行為。當您輸入聊天提示時的預設操作是“傳送並分派”,其中包括參與者檢測。如果您選擇“傳送”,請求將直接傳送到 Copilot Chat,而不會自動分派給聊天參與者。

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

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

控制當前編輯器上下文

Copilot Chat 始終會自動包含您的當前選擇或可見程式碼作為聊天請求的上下文。大型語言模型 (LLM) 通常能夠很好地理解上下文是否相關。但有時,當您詢問與當前編輯器無關的問題時,包含此上下文可能會影響模型對您問題的解釋。

我們現在在聊天輸入中顯示一個特殊的附件控制元件,該控制元件會提示編輯器上下文,並允許您切換是否包含編輯器上下文。

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

編輯器上下文的行為沒有改變。當活動編輯器有選擇時,則僅包含選擇。否則,僅包含滾動進入檢視的程式碼。您仍然可以透過使用回形針按鈕或在聊天提示中鍵入#來附加其他檔案或整個檔案。

Copilot Chat 的一個常見用例是詢問關於工作區程式碼的問題,例如使用/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: Build Local Workspace index”命令允許您顯式啟動當前工作區的索引。該索引通常在您第一次提問@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.

在面板中顯示圖示

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

為了解決這個問題,我們添加了一個新設定: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設定,讓您可以控制出現次數在高亮顯示之前發生延遲。降低此延遲值可以帶來更具響應性的編輯器體驗,尤其是在使用語義高亮時。

Web 版 VS Code

VS Code for the Web 支援本地檔案事件

當使用 Chrome 或 Edge(版本 129 及以上)時,使用本地資料夾開啟https://insiders.vscode.dev現在支援檔案事件。如果您在瀏覽器外更改了已開啟工作區的檔案的名稱或資料夾,這些更改會在瀏覽器內立即反映出來。

此功能利用了新提出的 Web API FileSystemObserver 介面。

對擴充套件的貢獻

Copilot 擴充套件展示

此里程碑,團隊致力於構建多個擴充套件,以展示VS Code 中的 Copilot 擴充套件能力。這些擴充套件演示了以下功能:

嘗試這些擴充套件,看看您如何在自己的擴充套件中擴充套件 Copilot。

擴充套件 連結
GitHub 拉取請求 市場
Copilot 的 Web 搜尋 市場原始碼
使用 Copilot 進行 MermAId 圖形生成 市場
Copilot 資料分析 市場原始碼
VS Code Commander 市場
Copilot 預覽願景 市場

GitHub 拉取請求

GitHub Pull Requests 擴充套件的 0.100.0 版本增加了 Copilot 整合。

  • 在聊天檢視中使用@githubpr聊天參與者來搜尋問題、總結問題/PR,以及為問題建議修復。@githubpr使用多個語言模型工具來完成此操作。
  • 還有一個新的通知檢視,顯示 GitHub 通知,並提供一個使用 Copilot 優先處理它們的選項。

要嘗試所有功能,您可以設定以下設定:

使用 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 的 Web 搜尋

此擴充套件展示了

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

原始碼在此處 GitHub 上可用

描述

將來自網路的最新、最相關的資訊直接帶入 Copilot。

這是由兩個搜尋引擎之一驅動的,由websearch.preferredEngine配置。

作為使用者,您需要從這些服務之一獲取 API 金鑰才能使用此擴充套件。首次使用時,它會詢問您的金鑰並使用 VS Code 的內建秘密儲存對其進行儲存,並且可以像處理 GitHub 帳戶一樣透過 VS Code 的身份驗證堆疊進行管理。

聊天參與者

此擴充套件程式貢獻了@websearch聊天參與者,該參與者能夠處理可能需要網際網路即時資訊的查詢。您可以使用@websearch 當 Workspace Trust 在 vscode 中釋出時?手動呼叫它。

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

聊天工具

此擴充套件程式還貢獻了#websearch聊天語言模型工具,這與參與者類似,但可用於在其他聊天參與者中提供來自網路的上下文。例如:

  • @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 檔案。

您可以從市場下載擴充套件程式,並且原始碼在此處 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 Preview 擴充套件的願景

Vision for Copilot Preview 擴充套件(vscode:extension/ms-vscode.vscode-copilot-vision)使您能夠直接將影像作為上下文輸入附加,從而豐富對話並實現更動態、視覺支援的響應。此擴充套件最終將被棄用,轉而支援 Github Copilot Chat 中的內建影像流。

聊天中的視覺功能

目前,您可以透過使用您自己的 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.

主題:Sapphire (在 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.

此擴充套件使用了 ChatReferenceBinaryData 提議的 API。歡迎在原始碼中檢視其使用示例,可在 GitHub 上找到

Python

原生 REPL 變數檢視

原生 Python REPL 現在為內建的變數檢視提供了最新的變數。這使您能夠在執行檔案中的程式碼或透過 REPL 輸入框執行程式碼時,深入瞭解直譯器的狀態。

使用 Pylance 生成文件字串

現在,您可以透過 Pylance 的文件字串模板生成功能,更方便地為您的 Python 程式碼生成文件!您可以透過鍵入 """'''、按 Ctrl+Space,或選擇燈泡圖示來呼叫 **生成文件字串** 程式碼操作,來為類或方法生成文件字串模板。生成的文件字串包含函式描述、引數、引數型別、返回值和返回型別的欄位。

此功能目前處於實驗性設定中,但我們期待很快將其設為預設體驗。您可以透過啟用 python.analysis.supportDocstringTemplate 設定來嘗試。

摺疊所有文件字串

文件字串對於為您的程式碼提供上下文和解釋非常有用,但有時您可能希望摺疊它們以專注於程式碼本身。現在,您可以透過新的 **Pylance: Fold All Docstrings** 命令更輕鬆地做到這一點,該命令也可以繫結到您選擇的快捷鍵。要展開它們,請使用 **Pylance: Unfold All Docstrings** 命令。

改進的匯入建議

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

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

實驗性 AI 程式碼操作:實現抽象類

現在,您可以透過新的實驗性程式碼操作來實現抽象類,從而將 AI 和靜態分析的優勢結合起來!此功能需要 PylanceGitHub Copilot 擴充套件。要嘗試,當您定義一個繼承自抽象類的類時,可以選擇 **Implement all inherited abstract classes with Copilot** 程式碼操作。

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

擴充套件開發

語言模型工具

我們已經完成了我們的 LanguageModelTool API!該 API 使聊天擴充套件可以透過將語言模型連線到外部資料來源或執行操作來構建更強大的體驗。該 API 包含兩個主要部分:

  1. 擴充套件註冊一個工具的能力。工具是一項用於語言模型的功能。例如,讀取檔案的 Git 歷史記錄。當使用 lm.registerTool 方法註冊工具時,其他擴充套件也可以訪問它,位於 lm.tools 列表中。這將使聊天擴充套件能夠透過共享工具生態系統與其他擴充套件無縫整合。

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

語言模型工具的使用很複雜,並且該 API 並未隱藏這種複雜性。如果您想註冊一個工具或在您的聊天參與者中使用工具,我們建議從 擴充套件示例 開始。

聊天參與者檢測

我們已經完成了聊天參與者檢測的 API,該 API 允許 GitHub Copilot 自動選擇您的聊天參與者或參與者命令來處理使用者的問題。請檢視 我們的文件以獲取詳細教程和建議。

VS Code Speech

VS Code Speech 擴充套件已更新至 Azure Speech SDK 的 8 月版本,並附帶了更新的語音轉文字識別模型。您應該會在此更新中看到 VS Code 中語音轉文字整合的改進結果,例如 Copilot Chat。

註釋執行緒 collapsibleState

現在可以使用新的 CommentThread.collapsibleState 屬性更改 CommentThread 的展開/摺疊狀態,即使執行緒已經顯示。以前,此屬性僅在首次顯示註釋執行緒時才有效。

歡迎檢視中的 Codicons

歡迎檢視現在支援渲染 codicons。您可以使用通常的 $(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 訪問此內容,當影像透過拖放或快速選擇附加時,references 可以是 URI,或者對於貼上的影像,它將是 ChatReferenceBinaryData

工程

LLM 的提示構建庫

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

AMD 程式碼移除和 Web 中更多的 ESM 使用

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

此外,https://vscode.dev 現在也 100% 使用 ESM(ECMAScript 模組)執行。

遷移到 ESLint 9

我們將 VS Code 主倉庫及其所有 擴充套件示例都更新為使用 ESLint 9。這包括遷移我們所有的 ESLint 配置以使用現代 扁平化配置

Electron 32 更新

在此里程碑中,我們將 Electron 32 更新推廣給穩定版使用者。此更新包含 Chromium 128.0.6613.186 和 Node.js 20.18.0。我們感謝所有在 Insiders 版本中進行自我測試並提供早期反饋的人。

值得注意的修復

  • 177046 在擴充套件面板搜尋後崩潰

感謝

最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-docs 的貢獻

vscode-js-debug 的貢獻

vscode-languageserver-node 的貢獻

vscode-mypy 的貢獻

vscode-vsce 的貢獻

language-server-protocol 的貢獻

lsprotocol 的貢獻

tolerant-php-parser 的貢獻

© . This site is unofficial and not affiliated with Microsoft.