写点什么

VS Code 更新 Python 支持,微软为支持 Pylance 抛弃开源语言服务器

  • 2021-09-08
  • 本文字数:1117 字

    阅读完需:约 4 分钟

VS Code 更新 Python 支持,微软为支持Pylance抛弃开源语言服务器

9 月初,Microsoft 宣布更新了 Visual Studio Code 中对 Python 的支持,并引入了 Web 浏览器中的编辑功能。该公司还将其开源的 Python 语言服务器存档,以支持闭源的 Pylance。

 

11 月份,微软将再次更新 Python in Visual Studio Code 扩展,而 Microsoft Python 语言服务器也将随之结束生命周期。弃用后,Microsoft Python 语言服务器存储库将被标记为已存档,不过开发者仍然可以在语言服务器的代码库上进行分叉和构建。

 

Python 2.7 用户的 IntelliSense 支持来自Jedi 0.17,这也将是支持 Python 2.7 的最后一个 Jedi 版本。从 10 月份开始,微软将只支持 Jedi 0.18 和更高的版本,不再提供对 Jedi 0.17 的支持,同时放弃支持 ctags 和 rope。官方建议是升级到 Python 3 或最好使用 Pylance 。但某些 Python 库仅存在于 2.x 版本中,这也可能是一个问题。

 

语言服务器是驱动 VS Code 编辑器中特定编程语言的功能引擎,例如支持语法突出显示、代码完成和错误检测。微软第一次使用 Python 语言服务器是在 2018 年,并且将其开源

 

2020 年 6 月,微软宣布使用性能更高、功能更丰富的新 Python 语言服务器 Pylance ,并最终放弃了旧语言服务器 Microsoft Python 语言服务器。此后,微软团队一直在改进Pylance 和开源语言服务器Jedi 中的语言服务器支持

 

Pylance 可利用语言服务器协议与 VS Code 进行通信。据介绍称,Pylance 是以微软的静态类型检查工具 Pyright 作为基础开发的全新的语言服务器,利用类型 stubs(.pyi 文件)和惰性类型推断来提供高性能的开发体验。Pylance 通过丰富的类型信息增强用户的 Python IntelliSense 体验,帮助用户更快、更好地编写代码。Pylance 扩展还随附了热门模块的形态存根档(Type Stub)集合,以提供快速、准确的自动完成和类型检查。

 

根据统计数据,Python 扩展组件的安装量超过 4100 万,而第三方 Python 扩展组件的安装量仅 300 多万,后者使用 pyLint 或 flake8 作为 linter(均为开源)。

 

Pylance 现在已经成为 Python for Visual Studio Code 的默认语言支持,微软几乎所有的用户都已切换到了该新语言服务器。

 

尽管 VS Code 是免费和开源的,但与微软最初的 Python 语言服务器不同,Pylance 是闭源的,这也是其不太吸引开发者的地方。

 

Pylance 的许可声明显示,开发者只能在 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 和后续 Microsoft 产品和服务(统称为,Visual Studio 产品和服务)中,来开发和测试应用程序。

 

语言服务器是 VS Code 的基础。尽管 Pylance 是建立在一个单独的开源项目Pyright 之上,但这样的改变一定程度上还是破坏了编辑器的开源状态,并使社区更难修复问题和提出改进建议。

 

2021-09-08 10:386093

评论

发布
暂无评论
发现更多内容

用javascript分类刷leetcode16.set&map(图文视频讲解)

js2030code

JavaScript LeetCode

说说你对Vue的keep-alive的理解

bb_xiaxia1998

Vue

用户行为分析模型实践(三)——H5通用分析模型

vivo互联网技术

大数据 数据分析 数仓建模

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

一口气讲完了Redis常用的数据结构及应用场景

小小怪下士

Java redis 程序员

前端vue面试题

bb_xiaxia1998

Vue

从React源码来学hooks是不是更香呢

goClient1992

React

Verilog HDL函数与任务的使用

timerring

FPGA

react源码分析:组件的创建和更新

flyzz177

React

如何在 C# 项目中链接一个文件夹下的所有文件

newbe36524

ChatGPT背后的经济账

OneFlow

人工智能 深度学习 大模型

2023年国家级重大人才工程引进申报

科兴未来News

创新创业 江苏工博会 博士后 #人才政策# 启明计划

一文搞懂Redis

京东科技开发者

redis hash Zset Redis 协议 企业号 2 月 PK 榜

滴滴前端一面必会vue面试题(附答案)

bb_xiaxia1998

Vue

社招前端一面经典手写面试题

helloworld1024fd

JavaScript

react源码分析:实现react时间分片

flyzz177

React

面试官:vue2和vue3的区别有哪些?

bb_xiaxia1998

Vue

Backbone前端框架解读

京东科技开发者

Vue 前端 前端架构 企业号 2 月 PK 榜 backbone

什么是WMS系统?

SAP虾客

wms

lua中实现判断是否为局域网IP

ModStart

带你实现react源码的核心功能

goClient1992

React

百度工程师带你了解Module Federation

百度Geek说

JavaScript 微前端 企业号 2 月 PK 榜

如何实现OpenHarmony的OTA升级

OpenHarmony开发者

OpenHarmony

前端刷完这12道滑动窗口,就可以出山面试了

js2030code

JavaScript LeetCode

react源码分析:深度理解React.Context

flyzz177

React

前端工程师leetcode算法面试必备-二分搜索算法(上)

js2030code

JavaScript LeetCode

实现Promise的原型方法--前端面试能力提升

helloworld1024fd

JavaScript

高级前端常考手写面试题(必备)

helloworld1024fd

JavaScript

湖仓一体电商项目(十九):业务实现之编写写入DWS层业务代码

Lansonli

数据湖 湖仓一体电商项目

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

谈谈我对于关键思考的理解

阿里巴巴中间件

阿里云 关键

VS Code 更新 Python 支持,微软为支持Pylance抛弃开源语言服务器_语言 & 开发_褚杏娟_InfoQ精选文章