編寫 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。擴充套件模板包含一些設定的示例,您還可以檢視我們團隊為一些流行工具開發的擴充套件。
要求
- VS Code 1.64.0 或更高版本
- Python 3.7 或更高版本
- node >= 14.19.0
- npm >= 8.3.0(
npm
隨 node 一起安裝,請檢查 npm 版本,使用npm install -g npm@8.3.0
進行更新) - 適用於 VS Code 的 Python 擴充套件
您應該知道如何建立和使用 Python 虛擬環境。
入門
要開始使用,請遵循模板 README 中的說明。您將瞭解到如何使用 模板建立您的儲存庫,以及如何安裝必要的工具(例如 nox 任務執行器)和可選依賴項(測試支援)。
README 包含最新的說明,並詳細介紹瞭如何自定義擴充套件的 package.json
佔位符(<pythontool-module>
、<pythontool-display-name>
等)。
模板的功能
透過模板建立擴充套件後,它將包含以下擴充套件貢獻。假設 <pytool-module>
已替換為 mytool
,而 <pytool-display-name>
已替換為 My Tool
- 命令 My Tool: Restart Server(命令 ID:
mytool.restart
)。 - 以下設定
mytool.logLevel
mytool.args
mytool.path
mytool.importStrategy
mytool.interpreter
mytool.showNotification
- 以下擴充套件啟用觸發器
- 在語言
python
上。 - 在開啟的工作區中找到帶有
.py
副檔名的檔案時。 - 在命令
mytool.restart
上。
- 在語言
- 日誌輸出通道 輸出 > My Tool。
整合您的工具
生成的 bundled/tool/server.py
檔案是您進行大部分更改的地方。檔案中的 TODO
註釋指出了各種自定義點。您還可以在模板中的其他位置(例如其他 Python 和 Markdown 檔案)搜尋 TODO
註釋。即使您想保留 MIT 許可證,您也需要審查 LICENSE 檔案。
示例
有幾個從模板建立的示例實現
- Pylint - 在檔案
open
、save
和close
上實現 linting 和程式碼操作。 - Flake8 - 實現 linting 和程式碼操作。
- Black Formatter - 整合 Black 格式化程式。
- autopep8 - 整合 autopep8 格式化程式。
- isort - 新增程式碼操作以排序匯入。
您還可以查閱 語言伺服器協議規範,以便更好地理解 pygls
語言伺服器整合。
擴充套件開發
模板 README 詳細介紹了模板中包含的 開發週期支援。模板包含命令和配置,因此您可以構建、執行、除錯和測試您的擴充套件。
如果在開發過程中遇到問題,有一個 故障排除 部分可以幫助解決常見問題。
打包和釋出
在釋出您的擴充套件之前,您需要更新擴充套件 package.json
欄位(例如 publisher
和 license
)以適應您的特定擴充套件。您還需要更新輔助 Markdown 檔案(CODE_OF_CONDUCT.md
、CHANGELOG.md
等)。
一旦您的擴充套件準備好釋出,就有一個 nox
build-package
任務來建立 .vsix
檔案,然後您可以將其上傳到您的擴充套件 管理頁面。
如果您是建立和釋出 VS Code 擴充套件的新手,我們建議您遵循主 VS Code 擴充套件編寫 主題中概述的最佳實踐。在這裡,您將找到指導,幫助您的擴充套件在 Marketplace 上看起來很棒,以及如何成為經過驗證的釋出者,以便使用者放心地安裝您的擴充套件。