症状提要

  • 使用VsCode很长时间了,作为Python的主力开发IDE真的蛮不错,但是最近在连接服务器进行远程开发时,总是会遇到代码提示完全出不来,整个VSCode像是一个完全没有任何代码功能的文本编辑器,摸黑写代码
  • 经过一番痛苦的问题定位,发现log中有一点线索:
    • Ctrl+P打开命令面板,输入> Python: Language Server show output
    • (忘记保留截图了)日志里有很明显的language-server启动行,但是启动之后一直在检索整个项目文件夹,在超过timeout之后会报出一条wraning提示说"检索时间过长",但是很明显,server仍然会在后台继续检索,并不会抛出异常
  • 到这里,问题线索就比较清晰了,我的文件夹下包含有大量的非代码文件(如数据集/音频wav/音频flac等),vscode的python-laguage-server不停的在检索这类文件,在未检索完成之前是不会有任何代码提示的

解决方案

  • pyrightconfig.json是python-language-server的配置文件,可以通过在配置文件中指定排除项来跳过其对该目录项的检索,从而加速整个检索过程,解决vsc卡顿的问题
  • 配置示例:
{
    "exclude": [
        "data"
    ]
}
  • 其中,exclude项是一个数组,可以自由增加所需要忽略的项,遵循.*ignore的书写规范

注意

  • 该文件只能放在项目根目录,我尝试过放在.vscode下,language-server并不会主动读取