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

Authoring Python Extensions

注意:如果您是 VS Code 擴充套件開發新手,建議您先閱讀 Your First Extension 教程,並嘗試建立一個簡單的 Hello World 擴充套件。

Python 擴充套件提供了 API,供其他擴充套件使用使用者計算機上的 Python 環境。請檢視 @vscode/python-extension npm 模組,其中包含型別和輔助工具,以便從您的擴充套件中訪問這些 API。

Python 擴充套件模板

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

Programming languages and frameworks

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

使用此模板時,您主要會處理程式碼的 Python 部分。您將使用 Language Server Protocol 將您的工具與擴充套件部分整合。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. 用於記錄的輸出頻道 Output > My Tool

整合您的工具

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

示例

已經建立了幾個使用該模板的示例實現

  • Pylint - 在檔案 opensaveclose 時實現 linting 和 Code Actions。
  • Flake8 - 實現 linting 和 Code Actions。
  • Black Formatter - 集成了 Black 格式化程式。
  • autopep8 - 集成了 autopep8 格式化程式。
  • isort - 添加了用於排序匯入的 Code Actions。

您還可以檢視 Language Server Protocol 規範,以更好地理解 pygls 語言伺服器整合。

Extension development

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

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

Packaging and publishing

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

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

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

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