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

編寫 Python 擴充套件

注意:如果您是 VS Code 擴充套件編寫新手,建議您首先閱讀 您的第一個擴充套件 教程,並嘗試建立一個簡單的 Hello World 擴充套件。

Python 擴充套件提供了 API,供其他擴充套件與使用者機器上可用的 Python 環境進行互動。請檢視 @vscode/python-extension npm 模組,它包含用於從您的擴充套件訪問這些 API 的型別和輔助工具。

Python 擴充套件模板

Python 擴充套件模板 可幫助您開始為喜愛的 Python 工具構建 Visual Studio Code 擴充套件。它可以是 linter、格式化程式、程式碼分析工具,或者所有這些功能的組合。該模板將為您提供構建將您的工具整合到 VS Code 的擴充套件所需的基本構建塊,並且它已經可以訪問上述 Python API。

程式語言和框架

擴充套件模板包含兩部分:擴充套件部分和語言伺服器部分。擴充套件部分用 TypeScript 編寫,語言伺服器部分用 Python 編寫,基於 pygls(Python 語言伺服器)庫。

使用此模板時,您將主要處理程式碼的 Python 部分。您將使用 語言伺服器協議 將您的工具與擴充套件部分整合。pygls 當前適用於 LSP 的 3.16 版本

TypeScript 部分負責與 VS Code 及其 UI 互動。擴充套件模板內建了一些可供您的工具使用的設定。如果您需要新增新設定來支援您的工具,您將需要處理一些 TypeScript。擴充套件模板包含一些設定的示例,您還可以檢視我們團隊為一些流行工具開發的擴充套件

要求

  1. VS Code 1.64.0 或更高版本
  2. Python 3.7 或更高版本
  3. node >= 14.19.0
  4. npm >= 8.3.0(npm 隨 node 一起安裝,請檢查 npm 版本,使用 npm install -g npm@8.3.0 進行更新)
  5. 適用於 VS Code 的 Python 擴充套件

您應該知道如何建立和使用 Python 虛擬環境。

入門

要開始使用,請遵循模板 README 中的說明。您將瞭解到如何使用 模板建立您的儲存庫,以及如何安裝必要的工具(例如 nox 任務執行器)和可選依賴項(測試支援)。

README 包含最新的說明,並詳細介紹瞭如何自定義擴充套件的 package.json 佔位符(<pythontool-module><pythontool-display-name> 等)。

模板的功能

透過模板建立擴充套件後,它將包含以下擴充套件貢獻。假設 <pytool-module> 已替換為 mytool,而 <pytool-display-name> 已替換為 My Tool

  1. 命令 My Tool: Restart Server(命令 ID:mytool.restart)。
  2. 以下設定
    • mytool.logLevel
    • mytool.args
    • mytool.path
    • mytool.importStrategy
    • mytool.interpreter
    • mytool.showNotification
  3. 以下擴充套件啟用觸發器
    • 在語言 python 上。
    • 在開啟的工作區中找到帶有 .py 副檔名的檔案時。
    • 在命令 mytool.restart 上。
  4. 日誌輸出通道 輸出 > My Tool

整合您的工具

生成的 bundled/tool/server.py 檔案是您進行大部分更改的地方。檔案中的 TODO 註釋指出了各種自定義點。您還可以在模板中的其他位置(例如其他 Python 和 Markdown 檔案)搜尋 TODO 註釋。即使您想保留 MIT 許可證,您也需要審查 LICENSE 檔案。

示例

有幾個從模板建立的示例實現

  • Pylint - 在檔案 opensaveclose 上實現 linting 和程式碼操作。
  • Flake8 - 實現 linting 和程式碼操作。
  • Black Formatter - 整合 Black 格式化程式。
  • autopep8 - 整合 autopep8 格式化程式。
  • isort - 新增程式碼操作以排序匯入。

您還可以查閱 語言伺服器協議規範,以便更好地理解 pygls 語言伺服器整合。

擴充套件開發

模板 README 詳細介紹了模板中包含的 開發週期支援。模板包含命令和配置,因此您可以構建、執行、除錯和測試您的擴充套件。

如果在開發過程中遇到問題,有一個 故障排除 部分可以幫助解決常見問題。

打包和釋出

在釋出您的擴充套件之前,您需要更新擴充套件 package.json 欄位(例如 publisherlicense)以適應您的特定擴充套件。您還需要更新輔助 Markdown 檔案(CODE_OF_CONDUCT.mdCHANGELOG.md 等)。

一旦您的擴充套件準備好釋出,就有一個 nox build-package 任務來建立 .vsix 檔案,然後您可以將其上傳到您的擴充套件 管理頁面

如果您是建立和釋出 VS Code 擴充套件的新手,我們建議您遵循主 VS Code 擴充套件編寫 主題中概述的最佳實踐。在這裡,您將找到指導,幫助您的擴充套件在 Marketplace 上看起來很棒,以及如何成為經過驗證的釋出者,以便使用者放心地安裝您的擴充套件。