VS Code Python 扩展(大约 v2018.19)不再包含对 linter 和格式化程序的支持。为什么?

sta*_*all 7 python visual-studio-code

VS Code 的 Python 扩展用于为格式化程序和 linter 等工具提供内置支持,包括:

  • Linting:Pylint、Flake8、Mypy、Bandit、Pydocstyle、Pycodestyle、Prospector、Pylama
  • 格式:autopep8、黑色、YAPF

Python 扩展中对这些工具的内置支持发生了什么变化?今后如何在 VS Code 中获得对这些工具的集成支持?

sta*_*all 12

基本上,请参阅https://github.com/microsoft/vscode-python/wiki/Migration-to-Python-Tools-Extensions。我会尝试总结/引用。

\n
\n

正如2022 年 4 月宣布的那样,我们的团队一直致力于将我们在 Visual Studio Code 的 Python 扩展中提供的工具支持分解为单独的扩展,目的是提高性能、稳定性,并且不再需要将工具安装在 Python 中环境 \xe2\x80\x93,因为它们可以与扩展一起提供。一旦各自工具的新版本可用,这还允许扩展与 Python 扩展分开发布。

\n
\n

这些扩展名包括:ms-python.pylintms-python.flake8ms-python.mypy-type-checkerms-python.black-formatterms-python.autopep8ms-python.isortcharliermarsh.ruffmatangover.mypyeeyore.yapf

\n

提示、命令和上下文菜单项已开始在2018.18.0 版本中删除- 例如。删除旧的 linter 和格式化程序提示和命令 #21979从命令选项板和上下文菜单中删除排序导入 #220582023 年 10 月版本的迭代计划中包含大量删除内容。用于 linting格式化的官方 VS Code Python 文档看起来已经更新了——至少部分更新了,这很好。

\n

与正在移动到其自己的扩展的 linting 和格式化功能相关的设置相应地被删除(这里是包含迁移说明的完整列表)。其中包括python.linting.enabled、、python.formatting.provider以及与特定 linter 和格式化程序相关的许多设置。

\n

并非所有之前支持的 linter 和格式化程序都具有扩展。如果您想自己创建 linter 或格式化程序工具扩展,Python 工具扩展模板可能会有所帮助。或者,您可以查看已弃用设置的替代方案列表,其中包括尝试另一个支持多个 linter 的扩展(例如charliermarsh.ruff)、禁用扩展自动更新以及坚持使用旧版本的 Python 扩展/其他支持的扩展您想要使用的工具,或者编写一个任务来在集成终端中运行该工具(您也可以编写自定义问题匹配)。

\n