我们很高兴地宣布,2022 年 5 月发布的适用于 Visual Studio Code 的 Python 和 Jupyter 扩展现已推出!
在此版本中,我们加入了三个新扩展: Black 、 isort 和 Jupyter Powertoys 。
如果您有兴趣,可以在我们的日志中查看 Python、Jupyter和 Pylance扩展的完整更新内容。
Black
正如我们曾表示的,我们的团队正在努力将我们在 Python 扩展中提供的工具支持分解为单独的扩展,以提高性能和稳定性。
我们现在有了一个新的 Black扩展,即 Python 格式化程序。 与 pylint扩展类似,这个新扩展使用语言服务器协议来提供格式支持,并且它附带最新版本的 Black——因此您不再需要将它安装在 Python 环境中。
今天您可以通过从市场上安装这个新扩展来试用它。 然后打开一个 Python 文件,右键单击编辑器并选择"Format document with ..."。 您还可以从命令面板( Ctrl + Shift + P 或 ⌘+ ⇧ + P )运行"Format document with ..."命令。 如果您有任何问题或功能请求,您可以将它们提交到 GitHub 存储库。
Isort
我们还有一个新的扩展,可以使用 isort对导入进行排序。 当您打开文件并且您的导入不遵循 isort 的标准时,它将显示错误诊断并提供代码操作来修复导入顺序。
浏览器上的 Jupyter Notebooks
Jupyter扩展现在可以安装为可以与 vscode.dev一起使用的 Web 扩展。 不过功能目前受到限制,仅支持在不需要 https 的 Jupyter 服务器上运行的笔记本(.ipynb 文件)。
如果您想试验该功能,请从本地计算机启动 Jupyter:
jupyter --no-browser --NotebookApp.allow\_origin\_pat=https://.\*\.vscode-cdn\.net
并使用此命令连接到它: Jupyter: Specify Jupyter server for connections 。
团队将在即将发布的版本中启用许多功能,包括:
Jupyter 团队很高兴地宣布推出 Jupyter Powertoys扩展,该扩展为使用 Jupyter 笔记本提供实验性功能。 在其第一个版本中,以下功能已被原型化:
我们很乐意让您试一试,让团队知道您的想法,以便更多的用户支持该功能!
有关更多信息,请参阅 vscode-jupyter-powertoys存储库中的 README 文件。
对内核处理进行了许多更新:
我们还添加了一些小的增强功能并修复了用户请求的问题,这些功能应该可以改善您在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。 一些显著的变化包括:
我们还要特别感谢本月的贡献者:
Quan Zhuo:修复从源代码构建时预构建的 ripgrep 二进制文件下载失败(https://github.com/microsoft/vscode-python/issues/19036vscode-python#19036
Dr-Irv:改进了使用 pandas 时的 IntelliSense ,这要归功于几个 pandas 存根修复(python-type-stubs#186、python-type-stubs#187、python-type-stubs#188、python-type-stubs#190)
sunyinqi0508:修复文件路径包含特殊字符时的错误(vscode-python#18829)
Capphosra:用更安全的方法替换 Buffer
构造函数以减少安全问题。 (vscode-jupyter#9562)
通过从 Marketplace 下载 Python扩展和 Jupyter扩展来尝试这些新的改进,或者直接从 Visual Studio Code 中的扩展视图安装它们( Ctrl + Shift + X 或 ⌘+ ⇧ + X )。 您可以在文档中了解有关 Visual Studio Code 中 Python 支持的更多信息。 如果您遇到任何问题或有建议,请在 Python VS Code GitHub页面上提出问题。
1
winffee OP 正如大家所见,从本月开始,我们会发布 VS Code Python 插件相关的内容,欢迎感兴趣的同学关注和提供反馈!
|
2
zhangxh1023 2022-06-07 15:46:56 +08:00
点进来才发现不是 java...
|
3
FirerWire3 2022-06-07 16:57:49 +08:00
越拆越多,装了几十个插件,已经受不了咯。拆出去的插件我是不装了,全用 pre-commit 集成使用,不依赖 VS Code 。
|
4
Kobayashi 2022-06-07 22:04:38 +08:00 via Android
我不明白了,为什么 linter ,formatter 也要拆成扩展?
|
5
xuboying 2022-06-08 10:39:08 +08:00
感觉是让新入门 python 的小白从一开始就习惯用代码整理功能,这本身是一个好习惯。
毕竟有很多已经掌握了 python 的人不愿意或者懒得用整理器。习惯问题。 |
6
uni 2022-06-08 14:23:25 +08:00
之前一直在用 yapf ,跟这个 black 相比怎么样呢?
|
7
winffee OP @Kobayashi 以前在有多个版本 Python 编译器的情况下,在切换编译器时总是会弹出提示让装 linter 等等,因为它默认是装在一个 Python 版本下面的,所以当你换了一个 python 版本又得安装一次。所以很多人呼吁“为什么要一遍遍提醒我,不能自动安装全局吗?”这就是为什么我们把 linter 和 formatter 拆分出来,正是让用户只需要安装一次,就可以自动配置所有的 Python 编译器。
|
9
winffee OP @uni yapf 的特点是支持多种格式化的风格,其更多的可能是使得代码看起来更整洁更友好。
black 可以说是目前最流行最多人使用的 python 格式化工具,他有统一的格式化标准。简单的使用方式以及极少的定制化选项。所以 black 允许我们自定义的余地较小。但这样也使得我们的代码更符合标准,也不失为一种最好的选择。 |
10
Kobayashi 2022-06-09 09:25:32 +08:00
原来也可以通过 python.formatting.blackPath 参数指定 black 位置非当前 venv 啊? flake8, pylint 位置同理。我想搞明白的是这个“使用语言服务器协议来提供格式支持”,有没有什么优势。嗯……有时间再研究。
|
11
winffee OP @Kobayashi 语言服务器协议 (LSP)背后的想法是标准化工具和服务器如何通信的协议,因此单个语言服务器可以在多个开发工具中重复使用,并且开发工具可以以最小的成本支持语言。
|
12
Kobayashi 2022-06-10 09:38:45 +08:00
我明白什么是 LSP ,vim 中也在用着。我不明白的是把格式化工具集成到 LSP 和直接使用它有什么区别。我的理解格式化工具就是接受一个文件,帮你格式化,毕竟大多格式化工具支持的命令行用法就是这样。集成或者不集成到 LSP 初步感觉不会有什么区别。周末再查吧。
|