參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

擴充套件功能概述

Visual Studio Code 提供了多種方式讓擴充套件程式擴充套件其功能。有時可能很難找到正確的貢獻點VS Code API來使用。本主題將擴充套件功能分為幾個類別。每個類別描述了:

  • 您的擴充套件程式可以使用的一些功能
  • 指向更詳細主題的連結,用於使用這些功能
  • 一些擴充套件想法

但是,我們也會對擴充套件程式施加限制,以確保 VS Code 的穩定性和效能。例如,擴充套件程式無法訪問 VS Code UI 的 DOM。

常用功能

常用功能是您可以在任何擴充套件程式中使用的核心功能。

其中一些功能包括:

  • 註冊命令、配置、快捷鍵或上下文選單項。
  • 儲存工作區或全域性資料。
  • 顯示通知訊息。
  • 使用 Quick Pick 收集使用者輸入。
  • 開啟系統檔案選擇器,讓使用者選擇檔案或資料夾。
  • 使用 Progress API 指示長時間執行的操作。

主題

主題控制 VS Code 的外觀,包括編輯器中原始碼的顏色和 VS Code UI 的顏色。如果您曾想透過將 VS Code 變成不同深淺的綠色來模擬《駭客帝國》中的編碼,或者只是想建立終極的極簡主義灰度工作區,那麼主題就是為您準備的。

擴充套件想法

  • 更改原始碼的顏色。
  • 更改 VS Code UI 的顏色。
  • 將現有的 TextMate 主題移植到 VS Code。
  • 新增自定義檔案圖示。

宣告式語言功能

宣告式語言功能為程式語言添加了基本的文字編輯支援,例如括號匹配、自動縮排和語法高亮。這是以宣告方式完成的,無需編寫任何程式碼。對於更高階的語言功能,如 IntelliSense 或除錯,請參閱程式化語言功能

擴充套件想法

  • 將常見的 JavaScript 片段打包成擴充套件程式。
  • 向 VS Code 介紹一種新的程式語言。
  • 新增或替換程式語言的語法。
  • 透過語法注入擴充套件現有語法。
  • 將現有的 TextMate 語法移植到 VS Code。

程式化語言功能

程式化語言功能添加了豐富的程式語言支援,例如懸停提示、轉到定義、診斷錯誤、IntelliSense 和 CodeLens。這些語言功能透過vscode.languages.* API 暴露。擴充套件程式可以直接使用這些 API,也可以編寫語言伺服器並使用 VS Code 的語言伺服器庫將其適配到 VS Code。

儘管我們提供了語言功能及其預期用途的列表,但沒有什麼能阻止您創造性地使用這些 API。例如,CodeLens 和懸停提示是內聯呈現附加資訊的好方法,而診斷錯誤可用於突出顯示拼寫或程式碼樣式錯誤。

擴充套件想法

  • 新增懸停提示,顯示 API 的示例用法。
  • 使用診斷報告原始碼中的拼寫或 Linter 錯誤。
  • 為 HTML 註冊新的程式碼格式化程式。
  • 提供豐富、上下文感知的 IntelliSense。
  • 為語言新增摺疊、麵包屑和大綱支援。

工作臺擴充套件

工作臺擴充套件擴充套件了 VS Code 工作臺 UI。為檔案資源管理器新增新的右鍵單擊操作,甚至使用 VS Code 的TreeView API 構建自定義資源管理器。如果您的擴充套件需要完全自定義的使用者介面,請使用Webview API來使用標準 HTML、CSS 和 JavaScript 構建您自己的文件預覽或 UI。

擴充套件想法

  • 為檔案資源管理器新增自定義上下文選單操作。
  • 在側邊欄中建立一個新的互動式 TreeView。
  • 定義新的活動欄檢視。
  • 在狀態列中顯示新資訊。
  • 使用 WebView API 渲染自定義內容。
  • 貢獻原始碼管理提供程式。

除錯

您可以透過編寫偵錯程式擴充套件來利用 VS Code 的除錯功能,這些擴充套件將 VS Code 的除錯 UI 連線到特定的偵錯程式或執行時。

擴充套件想法

  • 透過貢獻除錯介面卡實現,將 VS Code 的除錯 UI 連線到偵錯程式或執行時。
  • 指定偵錯程式擴充套件支援的語言。
  • 為偵錯程式使用的除錯配置屬性提供豐富的 IntelliSense 和懸停資訊。
  • 提供除錯配置片段。

另一方面,VS Code 還提供了一套除錯擴充套件 API,您可以使用它在任何 VS Code 偵錯程式之上實現與除錯相關的功能,以自動化使用者的除錯體驗。

擴充套件想法

  • 基於動態建立的除錯配置啟動除錯會話。
  • 跟蹤除錯會話的生命週期。
  • 以程式設計方式建立和管理斷點。

使用者體驗指南

為了幫助您的擴充套件無縫融入 VS Code 使用者介面,請參閱UX 指南,您將在其中學習建立擴充套件 UI 的最佳實踐以及遵循首選 VS Code 工作流程的約定。

限制

我們對擴充套件施加了某些限制。以下是這些限制及其目的。

禁止 DOM 訪問

擴充套件無法訪問 VS Code UI 的 DOM。您不能編寫一個將自定義 CSS 應用於 VS Code 或向 VS Code UI 新增 HTML 元素的擴充套件。

在 VS Code,我們不斷嘗試最佳化底層 Web 技術的使用,以提供始終可用、高度響應的編輯器,並且隨著這些技術和我們產品的演進,我們將繼續調整我們對 DOM 的使用。為了確保擴充套件不會干擾 VS Code 的穩定性和效能,並且我們可以在不破壞現有擴充套件的情況下繼續改進 VS Code 的 DOM,我們在擴充套件主機程序中執行擴充套件,並阻止直接訪問 DOM。

禁止自定義樣式表

使用者或擴充套件提供的自定義樣式表將與 DOM 結構和類名衝突。這些並未作為內部文件記錄。為了發展、重構或改進 VS Code,我們需要自由地對使用者介面進行更改。對 DOM 的任何更改都可能破壞現有的自定義樣式表,從而給樣式表提供者帶來挫敗感,並因損壞的樣式表而導致 UI 故障,從而造成糟糕的使用者體驗。

相反,VS Code 旨在提供一個精心設計的擴充套件 API,支援 UI 自定義。該 API 已被文件化,附帶工具和示例,並在 VS Code 的所有即將釋出的版本中保持穩定。