Python Language Server带来更流畅的VS Code智能提示

最近尝试用Python语言进行图像处理。我用的主要工具是微软的VS Code,它具有非常出色的智能提示、语法高亮等功能,在众多编辑器、IDE中脱颖而出,颇受用户青睐。

然而,更新到VS Code 1.25后,原本十分流畅的智能提示失效了,不仅没有自动地补全变量,在按下Ctrl+Space组合键后甚至出现Loading进度条。我费了九牛二虎之力才解决此故障。

解决方法

经网上搜索,有人建议(忘记出处了)将python.jediEnable设为false

重启VS Code后,智能提示恢复了,甚至比出现该故障前更为流畅。

原因分析

在1.25以前的版本中,VS Code采用了流行的静态分析器Jedi,以实现Python语言的智能提示。

此外,Visual Studio很早就提供了Python语言的静态分析功能。最近,微软将其此功能分拆为单独的程序,称为Python Language Server,并将其早期版本提供给VS Code 1.25。

我猜测,造成智能提示失效的原因可能有二。最可能的原因是,VS Code的Python扩展没有处理好Jedih和Python Language Server之间的关系,导致智能提示加载失败。阴谋论的说法是,VS Code要提携自家亲戚Python Language Server,打压Jedi。

就功能和速度来说,早期版本的Python Language Server已远超对手。希望它更加完善,像VS Code一样为使用者提供更好的编程体验。

参考资料:

Python in Visual Studio Code – June & July 2018 Release

Introducing the Python Language Server

Jedi – an awesome autocompletion/static analysis library for Python