2024 年 10 月 (版本 1.95)
安全性更新:以下擴充功能具有安全性更新:ms-python.python 和 ms-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 月發行版本。此版本有許多更新,希望您會喜歡,其中一些主要重點包括
- Copilot 編輯 - 快速迭代跨多個檔案的大型變更
- 次要側邊欄中的 Copilot 聊天 - 讓 Copilot 聊天保持開啟並隨時可用,同時您也能工作
- 多個 GitHub 帳戶 - 同時登入 VS Code 中的多個 GitHub 帳戶
- Copilot 程式碼檢閱 - 取得快速檢閱或更深入檢閱未提交的變更
- 使用 Pylance 的文件字串 - 為類別或方法產生文件字串範本
- 預覽設定指示器 - 在設定編輯器中檢視實驗性和預覽設定
- Copilot 擴充性 - 展示 VS Code 中的 Copilot 擴充性
如果您想在線上閱讀這些發行說明,請前往 更新,網址為 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 編輯
-
從 [聊天] 功能表選取 開啟 Copilot 編輯,或按 ⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I),以開始編輯工作階段。
-
將相關檔案新增至工作集,以向 Copilot 指示您想要處理的檔案。
-
輸入提示,告訴 Copilot 您想要進行的編輯!例如,
將簡單的導覽列新增至所有頁面
或使用 vitest 而非 jest
。
在我們的文件中取得有關 Copilot 編輯 的更多詳細資訊。立即試用,並透過 我們的問題追蹤 提供您的意見反應!
次要側邊欄中的聊天
聊天檢視的新預設位置是次要側邊欄。透過使用次要側邊欄,您可以隨時開啟聊天,同時仍然可以使用其他檢視,例如檔案總管或原始碼控制。這為您在 VS Code 中提供更整合的 AI 體驗。您可以使用 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 鍵盤快速鍵快速進入聊天。
隨著指令中心的旁邊引入新的 [聊天] 功能表,只需按一下即可顯示具有聊天的次要側邊欄
聊天功能表可讓您存取 Copilot 聊天最常見的工作。如果您希望隱藏此功能表,則提供新的設定 chat.commandCenter.enabled。
注意: 如果您先前已安裝 GitHub Copilot,則會在您先前具有聊天的位置顯示一個檢視,讓您能夠將聊天檢視還原到舊位置 (如果這樣對您來說更好)。
Copilot 程式碼檢閱
Copilot 程式碼檢閱目前為預覽版
透過 Visual Studio Code 中的 GitHub Copilot 程式碼檢閱,您現在可以在撰寫程式碼時取得快速、AI 驅動的程式碼意見反應,或在推送之前要求檢閱所有變更。Visual Studio Code 中的 GitHub Copilot 程式碼檢閱目前為預覽版。立即試用,並透過 我們的問題追蹤 提供意見反應。
有兩種方式可在 VS Code 中使用 Copilot 程式碼檢閱
-
檢閱選取範圍:若要進行快速檢閱,請在編輯器中選取程式碼,然後從編輯器內容功能表中選取 Copilot > 檢閱並註解,或使用 [命令面板] 中的 GitHub Copilot: 檢閱並註解 命令。(此功能為預覽版。)
-
檢閱變更:若要更深入檢閱所有未提交的變更,請在原始碼控制檢視中選取 Copilot 程式碼檢閱 按鈕,您也可以在 GitHub.com 上的提取要求中執行此動作。(加入 等候清單,對所有 Copilot 訂閱者開放)
Copilot 的意見反應會以註解形式顯示在編輯器中,附加到您的程式碼行。在可能的情況下,註解會包含可採取行動的程式碼建議,您可以在一個動作中套用這些建議。
若要深入瞭解 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。
本月,我們也新增了一個動作,讓您可以根據每個要求略過此偵測行為。當您輸入聊天提示時,預設動作是 傳送並分派,其中包括參與者偵測。如果您選擇 傳送,則要求會直接傳送至 Copilot 聊天,而且不會自動分派給聊天參與者。
您也可以使用 chat.experimental.detectParticipant.enabled 設定完全停用自動參與者偵測。
控制目前的編輯器內容
Copilot 聊天一直都會自動包含您目前的選取範圍或目前可見的程式碼,作為您的聊天要求的內容。大型語言模型 (LLM) 通常很擅長理解內容片段是否相關。但有時,當您提出與目前編輯器無關的問題時,包含此內容可能會影響模型解讀問題的方式。
我們現在在聊天輸入中顯示特殊的附件控制項,以提示編輯器內容,並讓您切換是否包含編輯器內容。
編輯器內容的行為沒有變更。當使用中編輯器具有選取範圍時,只會包含選取範圍。否則,只會包含捲動到檢視中的程式碼。您仍然可以使用迴紋針按鈕或在聊天提示中輸入 #
來附加其他檔案或完整檔案。
互動式工作區符號連結
Copilot 聊天的常見使用案例是詢問有關您工作區中程式碼的問題,例如使用 /tests
為選取的程式碼產生新的單元測試,或要求 @workspace
在您的專案中尋找特定類別或函式。在此里程碑中,我們為 Copilot 在聊天回應中提及的任何工作區符號新增了增強型連結。這些符號連結可以協助您更好地理解 Copilot 回應,並深入瞭解其中使用的符號。
符號連結會在回應中呈現為小藥丸,就像我們在上一個里程碑中新增的檔案連結一樣。若要開始深入瞭解符號,只需選取符號連結即可跳至該符號的定義
您也可以將滑鼠游標停留在符號連結上方,以查看符號定義所在的檔案
若要開始更詳細地探索符號,只需在符號連結上按一下滑鼠右鍵,即可顯示具有選項的內容功能表,例如 前往實作 和 前往參考
基本符號連結應適用於任何支援 [前往定義] 的語言。更進階的 IntelliSense 選項 (例如 [前往實作]) 也需要支援該語言。請務必安裝語言擴充功能,以取得 Copilot 回應中使用的任何程式設計語言的最佳符號支援。
修正問題浮動視窗中 Copilot 動作的使用
當您將滑鼠游標停留在編輯器中的問題上方時,現在會包含使用 Copilot 修正問題的動作。此動作適用於有可用修正的問題,而且修正是由 Copilot 產生。
工作區索引
@workspace
可讓您詢問有關目前專案中程式碼的問題。這是使用 GitHub 的程式碼搜尋 或 VS Code 建構的智慧型本機索引來實作。在此里程碑中,我們新增了一些 UI 元素,讓您可以瞭解如何使用此工作區索引。
首先,新的 GitHub Copilot: 建置本機工作區索引 命令可讓您明確開始為目前的工作區建立索引。此索引通常會在您第一次提出 @workspace
問題時自動啟動。使用新命令,您可以隨時開始建立索引。此命令也啟用較大型工作區的索引,目前最多 2000 個檔案 (不包括忽略的檔案,例如 node_modules
或 out
目錄)。
在建置索引時,我們現在也會在狀態列中顯示進度項目
為包含數百個檔案的工作區建立索引可能需要一些時間。如果您嘗試在建構索引時提出 @workspace
問題,Copilot 會嘗試使用可以更快建置的較簡單本機索引快速回應,而不會等待。當發生這種情況時,我們現在會在回應中顯示警告
請注意,即使 Copilot 使用較簡單的本機索引而非更進階的索引,仍然能夠在此案例中回答問題。情況通常如此,儘管更不明確或複雜的問題可能只能在建構更智慧的索引後才能回答。另請記住,如果您的工作區由 GitHub 存放庫支援,我們可以改用 GitHub 的程式碼搜尋 來回答問題。這表示會使用程式碼搜尋而非較簡單的本機索引。
聊天後續改進
設定:github.copilot.chat.followUps
為了在 [聊天] 檢視中為聊天對話騰出更多空間,我們讓後續提示更簡潔,而且預設情況下,它們只會出現在第一個回合中。設定 github.copilot.chat.followUps 設定以變更後續提示出現的時間
firstOnly
(預設) - 後續提示只會出現在第一個回合中always
- 後續提示一律會出現never
- 停用後續提示
在語意搜尋中依相關性排序 (實驗性)
設定:github.copilot.chat.search.semanticTextResults
在上一個里程碑中,我們推出了使用 Copilot 執行語意搜尋的功能,以取得與您的查詢語意相關的搜尋結果。我們現在已透過依相關性排序搜尋結果來改進搜尋結果。來自更相關程式碼片段的關鍵字比對會被視為整體上更相關。
工作台
多個 GitHub 帳戶
上個月的功能已升級為預設行為,現在可以同時登入 VS Code 中的多個 GitHub 帳戶。
以下是您可能需要多個帳戶的幾個案例
- 針對設定同步使用帳戶 1,並針對 GitHub 提取要求擴充功能使用帳戶 2
- 針對 GitHub 擴充功能 (推送) 使用帳戶 1,並針對 GitHub Copilot 使用帳戶 2
若要使用此功能,只需觸發登入動作 (使用內建功能 (例如設定同步) 或擴充功能),系統就會提供您登入不同帳戶的選項。如果您稍後需要變更選取的帳戶,此功能也能與 帳戶喜好設定快速選取 完美搭配使用。
雖然大多數項目都應繼續與您現有的擴充功能搭配使用,但某些行為可能還無法在這個多帳戶世界中完美運作。如果您認為有改進空間,請在這些擴充功能上開啟問題。在相對較新的 vscode.authentication.getAccounts('github')
API 的協助下,擴充功能有很大的能力來處理多個帳戶。
變更帳戶喜好設定時新增其他帳戶
上個月,我們推出了帳戶喜好設定快速選取,如果您基於任何原因需要變更擴充功能要使用的慣用帳戶,此功能非常有用。
我們收到的意見反應之一是想要一種簡單的方式來新增尚未登入的帳戶。在此里程碑中,我們在快速選取中引入了一個新項目,讓您可以執行此動作。使用 使用新帳戶... 項目啟動驗證流程,並一次將帳戶喜好設定設定為該帳戶。
實驗性和預覽設定的設定編輯器指示器
先前,從設定編輯器檢視時,並不總是清楚哪些設定是實驗性或預覽版。為了醒目提示實驗性和即將推出的功能,設定編輯器現在會在實驗性和預覽設定旁邊顯示指示器。您可以在設定編輯器搜尋方塊中輸入 @tag:experimental
或 @tag:preview
,以據此篩選設定。
擴充功能作者可以在其設定中新增「experimental」或「preview」標籤,以在設定編輯器中顯示對應的指示器。
佈景主題:淺粉紅色 (在 vscode.dev 上預覽)
設定檔的更多圖示
在此里程碑中,我們為設定檔新增了更多圖示。您現在可以從更廣泛的圖示範圍中選擇來自訂您的設定檔。
在面板中檢視圖示
在工作台面板區域中,檢視通常會顯示為標題列中的標籤 (例如,終端機 或 輸出)。但是,在較小的螢幕上,這些標籤可能會超出可用空間,導致某些檢視溢出到下拉式功能表中。
為了處理此問題,我們新增了一個新的設定:workbench.panel.showLabels。停用時,檢視會顯示為圖示而非標籤,從而節省水平空間並減少溢出。
workbench.panel.showLabels: true
workbench.panel.showLabels: false
編輯器
出現次數醒目提示延遲
在此里程碑中,我們推出了設定 editor.occurrencesHighlightDelay,讓您可以控制編輯器中醒目提示出現次數之前的延遲。降低此延遲值可以讓編輯器體驗在處理語意醒目提示時感覺更靈敏。
適用於網頁的 VS Code
適用於網頁的 VS Code 支援本機檔案事件
當使用 Chrome 或 Edge 129 版或更新版本時,使用本機資料夾開啟 https://insiders.vscode.dev 現在支援檔案事件。如果您在瀏覽器外部變更開啟的工作區的檔案和資料夾,這些變更會立即反映在瀏覽器內部。
此功能利用新的 FileSystemObserver
介面,該介面建議作為網頁的新 API。
擴充功能的貢獻
Copilot 擴充功能展示
在此里程碑中,團隊致力於建置數個擴充功能,以展示 VS Code 中的 Copilot 擴充性。這些擴充功能示範下列功能
- 聊天參與者與工具 API
- prompt-tsx
- 如何運用 GitHub Copilot 提供的語言模型
試用這些擴充功能,並瞭解如何在您自己的擴充功能中擴充 Copilot。
擴充功能 | 連結 |
---|---|
GitHub 提取要求 | Marketplace |
Copilot 的網頁搜尋 | Marketplace、原始碼 |
使用 Copilot 產生 MermAId 圖表 | Marketplace |
Copilot 的資料分析 | Marketplace、原始碼 |
VS Code Commander | Marketplace |
Copilot 預覽版的願景 | Marketplace |
GitHub 提取要求
0.100.0 版本的 GitHub 提取要求 擴充功能新增了 Copilot 整合
- 在 [聊天] 檢視中使用
@githubpr
聊天參與者來搜尋問題、摘要問題/PR,以及建議問題的修正。@githubpr
使用許多語言模型工具來完成此作業。 - 還有一個新的 通知 檢視,顯示 GitHub 通知,並具有使用 Copilot 排定優先順序的動作。
若要試用所有項目,您可以設定下列設定
使用 Copilot 搜尋問題
新的 @githubpr
聊天參與者可以搜尋 GitHub 上的問題。
顯示問題時,@githubpr
會顯示 Markdown 表格,並嘗試根據搜尋選取要顯示的最佳資料行。
使用 Copilot 摘要和修正
問題 檢視中列出的每個問題現在都有一個新動作 使用 Copilot 摘要,可開啟 [聊天] 面板並摘要選取的問題。我們也新增了另一個動作 使用 Copilot 修正,可摘要選取的問題,並使用工作區內容來建議其修正。
使用 Copilot 排定通知優先順序 (實驗性)
在此里程碑中,我們新增了一個實驗性 通知 檢視,列出您跨存放庫的未讀取通知。預設情況下,通知會依最近更新的降序排序,但您可以使用檢視標題的 ...
功能表中的 使用 Copilot 依優先順序排序 動作,讓 Copilot 排定通知的優先順序。選取每個通知會觸發一個動作,以使用 Copilot 摘要通知。此檢視也包含易於存取的動作,可將通知標示為已讀取,或在 GitHub.com 上開啟通知。
Copilot 的網頁搜尋
此擴充功能展示
- 聊天參與者與工具 API
- prompt-tsx
- 如何運用 GitHub Copilot 提供的語言模型
原始碼可在 GitHub 上在此處取得。
描述
直接在 Copilot 中取得來自網頁的最新且相關資訊。
這由兩個不同的搜尋引擎之一提供支援,由 websearch.preferredEngine 設定
身為使用者,您需要從這些服務之一取得 API 金鑰才能使用此擴充功能。第一次使用時,它會要求您提供該金鑰,並使用 VS Code 的內建秘密儲存體儲存它,而且也可以透過 VS Code 的驗證堆疊進行管理,就像您對 GitHub 帳戶所做的一樣。
聊天參與者
此擴充功能貢獻 @websearch
聊天參與者,能夠處理可能需要來自網際網路的即時資訊的問題。您可以使用 @websearch vscode 中何時推出工作區信任?
手動叫用它
聊天工具
此擴充功能也貢獻 #websearch
聊天語言模型工具,它與參與者類似,但適用於在其他聊天參與者中提供來自網頁的內容。例如
@workspace /new #websearch 使用最受歡迎的架構建立以 Python 撰寫的新網頁應用程式
此外,如果您正在開發自己的聊天參與者或工具,您可以透過 vscode.lm.invokeTool
API 使用此聊天工具。
使用 Copilot 產生 MermAId 圖表
vscode-mermAId (vscode:extension/ms-vscode.copilot-mermaid-diagram
) 擴充功能為 GitHub Copilot 貢獻了一個新的聊天參與者,以使用 Mermaid (一種受 Markdown 啟發的圖表和圖表工具) 為您的程式碼建置和修改視覺效果。
建立和轉譯圖表
透過聊天對話建立任何類型的 Mermaid 支援圖表,並使用 /iterate
斜線命令來精簡圖表。斜線命令適用於特定圖表,以為模型提供額外指引。
會為某些圖表類型 (例如流程) 新增連結,以指向回收集以建置圖表的參考。
Mermaid 可視大綱檢視
開啟Visual Outline檢視,從使用中的編輯器動態產生圖表。您可以跳出到聊天室以進行更精細的控制。
聊天工具
此擴充功能提供一個工具,用於收集檔案或整個工作區內的符號資訊,並且在安裝此擴充功能後,可以供其他聊天參與者使用。
Copilot 的資料分析
適用於 Copilot 的 Data Analysis 擴充功能,為資料科學領域的人員提供強大的功能。從清理 .csv
檔案,到利用不同的統計量測、圖表和預測模型執行更高等級的資料分析,@data
聊天參與者透過為資料任務提供量身定制的見解和互動性,協助您做出更進階和更明智的決策。
此擴充功能提供一個工具,讓 LLM 可以透過使用 Pyodide 來要求執行 Python 程式碼,並取得相關 Python 程式碼執行的結果。它也能夠聰明地重試,以便在發生錯誤時獲得更好或更適當的執行結果。您也可以將用於執行分析(或產生視覺化效果)的程式碼匯出到 Jupyter Notebook 或 Python 檔案中。
您可以從 Marketplace 下載此擴充功能,並且可以在 GitHub 上找到原始碼。
資料分析和視覺化
- 給定 CSV 檔案,輸入提示詞,例如
Analyze the file #<file name>
或撰寫更具體的提示詞(請參閱下方錄影) - 提供後續提示詞,以請求產生視覺化效果,例如圖表、繪圖等
匯出用於執行資料分析的程式碼
- 可以用於執行分析和產生視覺化效果的 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 設定比以往更加容易。
Vision for Copilot Preview 擴充功能願景
Vision for Copilot Preview 擴充功能 (vscode:extension/ms-vscode.vscode-copilot-vision
) 讓您可以直接附加圖片作為情境輸入,豐富對話並啟用更動態、視覺化支援的回應。此擴充功能最終將被棄用,改用 Github Copilot Chat 內建的圖片流程。
Chat 中的 Vision
目前,您可以透過使用您自己的 OpenAI、Azure OpenAI、Anthropic 或 Gemini 金鑰,在 Chat 檢視中體驗圖片附件流程。立即開始,輕鬆地從剪貼簿附加圖片,或直接將圖片拖曳到聊天室中。
佈景主題:Sapphire(在 vscode.dev 上預覽)
具有快速修復功能的 Vision
此外,您可以使用提供的程式碼動作,為 markdown、HTML、JSX 或 TSX 文件中的圖片產生或微調 alt 文字,簡化整合描述性文字的流程,以獲得更好的情境和可存取性。Alt 文字快速修復適用於工作區中的圖片和圖片 URL。
此擴充功能使用建議的 ChatReferenceBinaryData
API。歡迎查看原始碼中如何使用它的範例,可在 GitHub 上找到。
Python
原生 REPL 變數檢視
原生 Python REPL 現在為內建的變數檢視提供最新的變數。這讓您可以在從檔案或透過 REPL 輸入框執行程式碼時,深入了解解譯器的狀態。
使用 Pylance 產生文件字串
現在您可以使用 Pylance 的文件字串範本產生功能,更方便地為您的 Python 程式碼產生文件!您可以透過輸入 """
或 '''
,按下 Ctrl+空白鍵,或選取燈泡來叫用產生文件字串程式碼動作,為類別或方法產生文件字串範本。產生的文件字串包含函數的描述、參數、參數類型、傳回值和傳回值類型的欄位。
此功能目前位於實驗性設定之後,但我們期待很快將其設為預設體驗。您今天就可以啟用 python.analysis.supportDocstringTemplate 設定來試用。
摺疊所有文件字串
文件字串非常適合為您的程式碼提供情境和說明,但有時您可能想要摺疊它們以專注於程式碼本身。現在,您可以透過使用新的 Pylance:摺疊所有文件字串命令,更輕鬆地摺疊文件字串,該命令也可以繫結到您選擇的按鍵綁定。若要展開它們,請使用 Pylance:展開所有文件字串命令。
改進的匯入建議
Pylance 的強大功能之一是其提供自動匯入建議的能力。預設情況下,Pylance 從符號定義的位置提供匯入建議,但您可能希望它從符號匯入的檔案(即別名)中匯入它。透過新的 python.analysis.includeAliasesFromUserFiles 設定,您現在可以控制 Pylance 是否在其自動匯入建議或新增匯入快速修復中包含來自使用者檔案的別名符號。
請注意,啟用此設定可能會對效能產生負面影響,尤其是在大型程式碼庫中,因為 Pylance 可能需要索引更多符號並監控更多檔案的變更,這可能會增加資源使用量。
實驗性 AI 程式碼動作:實作抽象類別
現在,您可以透過新的實驗性程式碼動作來實作抽象類別,獲得 AI 和靜態分析兩者的優勢!此功能需要 Pylance 和 GitHub Copilot 擴充功能。若要試用,您可以在定義繼承自抽象類別的類別時,選取使用 Copilot 實作所有繼承的抽象類別程式碼動作。
您可以透過在使用者設定中設定 "python.analysis.aiCodeActions": {"implementAbstractClasses": false}
來停用此功能。
擴充功能撰寫
語言模型工具
我們已經完成了我們的 LanguageModelTool
API!此 API 使聊天擴充功能能夠透過將語言模型連接到外部資料來源或採取動作來建構更強大的體驗。此 API 包含兩個主要部分
-
擴充功能註冊工具的能力。工具是一段旨在由語言模型使用的功能。例如,讀取檔案的 Git 歷史記錄。當使用
lm.registerTool
方法註冊工具時,其他擴充功能也可以在lm.tools
清單中存取它。這將使聊天擴充功能能夠透過共享工具的生態系統與其他擴充功能無縫整合。 -
語言模型支援工具的機制,例如擴充功能在發出請求時傳遞工具、語言模型請求工具調用,以及擴充功能將工具調用的結果傳回通訊。
語言模型工具的使用很複雜,此 API 並未隱藏這種複雜性。如果您想要註冊工具或在您的聊天參與者中使用工具,我們建議從 擴充功能範例 開始。
聊天參與者偵測
我們已經完成了聊天參與者偵測的 API,這讓 GitHub Copilot 可以自動選取您的聊天參與者或參與者命令來處理使用者的問題。請查看 我們的文件,以取得詳細的教學課程和建議。
VS Code Speech
VS Code Speech 擴充功能已更新至八月版本的 Azure Speech SDK,並配備用於語音轉文字辨識的較新模型。您應該會看到此更新為 VS Code 中的語音轉文字整合(例如 Copilot Chat)帶來了改進的結果。
註解執行緒 collapsibleState
可以使用新的 CommentThread.collapsibleState
屬性變更 CommentThread
的展開/摺疊狀態,即使執行緒已經顯示也是如此。先前,此屬性僅在首次顯示註解執行緒時才會被採用。
歡迎檢視中的 Codicon
歡迎檢視現在支援呈現 codicon 的能力。您可以使用歡迎檢視中常用的 $(icon-name)
來執行此操作。
聊天參與者存取模型選擇器
您可能已經注意到 Chat 檢視中的模型選擇器,它可讓您選取用於聊天請求的模型。
您的聊天參與者擴充功能需要採用新的 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
用於圖片附件的 Chat Reference Binary Data
如果擴充功能使用建議的 ChatReferencebinaryData
API,我們現在允許將圖片 (png
、jpeg
、bmp
、gif
和 tiff
) 貼到聊天室中。
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 語法建立提示,並包含各種工具來充分利用提示的權杖預算。
移除 AMD 程式碼以及在 Web 中更多使用 ESM
我們從我們的來源中移除了 AMD(非同步模組定義)的最後痕跡,主要是從我們仍然保留用於支援 AMD 的組建腳本中移除,以防復原版本需要。
此外,https://vscode.dev 現在也 100% 僅使用 ESM(ECMAScript 模組)執行。
遷移至 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 追蹤的貢獻
提取請求
對 vscode
的貢獻
- @Abrifq (Arda Aydın):將
window.experimentalControlOverlay
的範圍變更為應用程式 PR #230593 - @asemdreibati (Asem Dreibati):處理 Iterable 命名空間中 slice 函數的邊緣案例 (#_230683) PR #232134
- @BABA983 (BABA)
- 新增開發人員動作以顯示 GPU 狀態 PR #222291
- 修正偵錯主控台在樣式變更時被清除的問題 PR #224694
- 支援在 git 編輯器中開啟編輯器 PR #226967
- @Bistard (SIHAN LI):修正錯字:使用
||
時,可能會關閉情境檢視錨點選項 PR #228896 - @cobey (Cody Beyer):新增 mistral ai npm 套件 PR #229865
- @elias-pap (Elias Papavasileiou):修正:改進儲存時觸發的動作的設定描述 PR #230052
- @gjsjohnmurray (John Murray):更正擴充功能命令頁面上的功能表情境資訊 (修正 #229258) PR #229260
- @hamirmahal (Hamir Mahal):樣式:簡化字串格式以提高可讀性 PR #231763
- @injust (Justin Su):修正「在非全螢幕模式下」錯字 PR #229914
- @jamesharris-garmin (James Harris):修正在 --locate-shell-integration-path 中遺失 __dirname 的問題 PR #231423
- @jeanp413 (Jean Pierre):修正如果 logOutputChannel 在處置後再次建立,它將會消失的問題 PR #225709
- @Kaidesuyoo (Kaidesuyo):效能最佳化 PR #230804
- @kkshinkai (Kk Shinkai):在發射器選項中正確觸發
onDidAddListener
事件 PR #230259 - @Parasaran-Python (Parasaran):228640:如果啟用隱藏預先啟動工作彈出視窗的設定,則隱藏它 PR #231225
- @quiple (Minseo Lee):變更韓文字型優先順序 PR #230195
- @r3m0t (Tomer Chachamu):修正當新測試開始時測試結果的捲動問題 (修正 #229531) PR #229532
- @sandersn (Nathan Shively-Sanders):TS 擴充功能:向 copilot 擴充功能註冊 CopilotRelated 呼叫 PR #228610
- @ShadowRZ (夜坂雅):修正:在 package.json 中使用正確的桌面名稱 PR #231472
- @trevor-scheer (Trevor Scheer):標記訊息空白字元
nowrap
->pre
PR #229454 - @vietanhtwdk:在調整大小時重新渲染 stickyscroll PR #227400
- @yanglb (Yanblb):將類型檢查新增至裝飾器 PR #230626
對 vscode-docs
的貢獻
- @Cecil0o0 (hj)
- @echofly:更新 v1_94.md PR #7677
- @ghosted-sound
- @gjsjohnmurray (John Murray)
- @oleschri:新增引數 --update-extensions PR #7681
- @partev:修正 URL 重新導向 PR #7640
- @ptrptrd:文件:移除佈景主題顏色參考中的重複條目 PR #7639
- @RonakRahane:新增 C# 中新程式碼涵蓋率的文件 修正 #7635 PR #7664
對 vscode-js-debug
的貢獻
- @marcusball (Marcus Ball):功能:在查詢 websocket 位址時使用
remoteHostHeader
選項 PR #2111
對 vscode-languageserver-node
的貢獻
- @DanTup (Danny Tuppeny):新增對 CompletionList "applyKind" 的支援,以控制如何組合預設值和每個項目的 commitCharacters/data PR #1558
對 vscode-mypy
的貢獻
- @jwhitaker-gridcog (Jarrad):在最近的 pyproject.toml 或 mypy.ini 目錄中執行 mypy PR #316
對 vscode-vsce
的貢獻
- @andrewlayer:將 unpublish 新增至 api.ts PR #1061
- @deribaucourt (Enguerrand de Ribaucourt):修正 workdir 符號連結的回歸問題 PR #1053
- @dtivel (Damon Tivel):在
Content-Disposition
標頭中引用filename
值 PR #1060
對 language-server-protocol
的貢獻
- @asukaminato0721 (Asuka Minato)
- @DanTup (Danny Tuppeny):新增對
completionList.applyKind
的支援,以決定如何組合來自completionList.itemDefaults
和completion
的值。 PR #2018 - @DavyLandman (Davy Landman):將 Rascal 新增至相關 LSP 實作器區段 PR #2029
- @g-plane (Pig Fang):修正標點符號錯字 PR #2048
- @nthykier (Niels Thykier):新增
debputy
語言伺服器 PR #2044 - @RainCmd (渴望蓝天):將 Rain 語言伺服器新增至 LSP PR #2039
- @WilsonZiweiWang (ziweiwang):新增 BitBake 語言伺服器 PR #2049
- @yasmewad (Yash Mewada):將 Smithy 語言伺服器連結新增至 LSP PR #2036
對 lsprotocol
的貢獻
- @nobodywasishere (Margret Riegert):將 Crystal 外掛程式新增至 README PR #403
對 tolerant-php-parser
的貢獻
- @TysonAndre (Tyson Andre):修正 php 8.4 關於隱含可為 null 參數的通知 PR #410