本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

编写 Python 扩展

注意:如果你是VS Code扩展作者的新手,你可能想先阅读你的第一个扩展教程,并尝试创建一个简单的Hello World扩展。

Python 扩展提供了用于与其他扩展在用户机器上与可用的 Python 环境一起工作的 API。查看 @vscode/python-extension npm 模块,该模块包括类型和从您的扩展访问这些 API 的实用工具。

Python 扩展模板

Python 扩展模板 帮助您开始为最喜欢的 Python 工具构建 Visual Studio Code 扩展。它可以是一个检查器、格式化工具或代码分析工具,或者全部具备。该模板将为您提供构建将工具集成到 VS Code 中的扩展的基本构建块,并且它已经具有访问上述 Python API 的权限。

编程语言和框架

扩展模板分为两部分,扩展部分和语言服务器部分。扩展部分用TypeScript编写,语言服务器部分用Python编写。pygls(Python 语言服务器) 库。

使用此模板时,您大部分的工作将是在Python代码上。您将使用语言服务器协议将您的工具与扩展部分集成。pygls 目前在 LSP的3.16版本上工作。

TypeScript 部分处理与 VS Code 和其用户界面的交互。扩展模板包含一些内置的设置,这些设置可以被你的工具使用。如果你需要添加新的设置来支持你的工具,你将需要使用一点 TypeScript。扩展模板为一些设置提供了示例,你还可以查看我们团队为一些流行工具开发的扩展。

要求

  1. VS Code 1.64.0 或更高版本
  2. Python 3.7 或更高版本
  3. 节点 >= 14.19.0
  4. npm >= 8.3.0npm安装了 node,检查 npm 版本,使用npm install -g npm@8.3.0更新)
  5. Python VS Code 扩展

你应该知道如何创建和使用Python虚拟环境。

入门指南

要开始,请按照模板中的说明进行操作README。在那里,您将学习如何使用模板来创建您的仓库以及如何安装必要的工具(例如nox任务运行器)和可选的依赖项(测试支持))。

README文件包含最新的说明,还详细介绍了如何自定义扩展package.json占位符 (<pythontool-module><pythontool-显示名称>等等)。

模板的特点

在通过模板创建扩展后,它将包括以下扩展贡献。假设<pytool-模块>被替换为我的工具,和<pytool-显示名称>我的工具输入:

  1. 一条命令 我的工具:重启服务器 (命令 ID:mytool.restart)。
  2. 以下设置:
    • mytool.日志级别
    • mytool.args
    • mytool.路径
    • mytool.importStrategy
    • mytool.解释器
    • mytool.显示通知
  3. 以下触发器用于激活扩展:
    • 关于语言Python输入:.
    • 存档于.py在打开的工作区中找到的扩展。
    • 听命令mytool.restart输入:.
  4. 日志输出通道输出 > 我的工具.

整合您的工具

生成的捆绑/工具/服务器.py文件是你将进行大部分更改的地方。待办事项文件中的注释指出了各种定制点。同时搜索待办事项在模板的其他位置,如其他Python和Markdown文件中,查看注释。即使您想保留MIT许可证,也应查看LICENSE文件。

示例

有多个从模板创建的示例实现:

您还可以查看语言服务器协议规范,以更好地理解pygls语言服务器集成。

扩展开发

模板的README详细介绍了模板提供的开发周期支持。该模板包含命令和配置,以便您可以构建、运行、调试和测试您的扩展。

如果在开发过程中遇到问题,有一个故障排除部分可以帮助解决常见问题。

包装和发布

在发布您的扩展之前,您需要更新扩展package.json字段(例如出版商许可证) 用于您的特定扩展。您还希望更新辅助Markdown文件 (行为准则.mdCHANGELOG.md等等)。

一旦您的扩展准备就绪可以发布,有一个诺克斯 构建包任务创建一个.vsix 文件,然后您可以将其上传到您的扩展管理页面.

如果您是第一次创建和发布 VS Code 扩展,我们建议您遵循 VS Code 主文档中列出的最佳实践扩展编写主题。在这里,您将找到帮助使您的扩展在市场中看起来很棒的指导,以及如何成为经过验证的发布者,以便用户可以自信地安装您的扩展。