使用 sshfs 在工作区中挂载目录后,VScode 自动完成功能不起作用

问题描述

我正在使用 VScode 在下一个环境中开发 Django Web 应用程序:

• 操作系统和版本:Windows 10

• VS 代码版本:1.52.2

• Python 扩展版本:v2021.5.842923320

• 远程 – SSH 版本:v0.65.4

在我的 Windows 笔记本电脑上,我使用 Remote – SSH 插件在 Ubuntu 20.04 VM 上工作,所以我用 Django3.2 和其他 python 包配置了一个 python3.9 虚拟环境。另外,我已经安装了 pylint 并且一切正常。

当我通过 sshfs 从另一个站点在应用程序媒体文件夹内(在工作区内)安装文件夹时出现问题。发生的情况是自动完成停止工作,当您按 Clr+Space 时,我只会收到一条加载消息。

请注意,我通过 sshfs 挂载的这个文件夹非常大,超过 1 TB,其中包含许多文件包括 python 脚本,而且我注意到即使关闭 VScode 我也无法卸载该文件夹,因为 fusermount 说该文件夹已被使用通过某个进程(我猜是 VM 内部的 VScode 进程)。毕竟,如果我不打开 VScode,我可以毫无问题地挂载和卸载此文件夹。

我还使用“files.exclude”和“files.watcherExclude”排除了这个媒体文件夹,但问题仍然存在。

有人以前遇到过这个问题或类似的问题。如有任何建议,我将不胜感激。

[更新] 即使使用 files.excludeserach.exclude 或不使用,如果我在打开 VScode 后挂载文件夹,Intellisence 也能正常工作一段时间。但是如果我关闭并重新打开 Vscode,智能就会停止工作。如果我在打开 VScode 之前挂载文件夹,也会出现同样的问题。

[更新 2] Python language sever OUTPUT panel

此致。

解决方法

在工作区的根目录创建一个“pyrightconfig.json”,并添加排除解决问题https://github.com/microsoft/pyright/blob/main/docs/configuration.md#main-pyright-config-options

{"exclude": ["**/application/media"]}
,

您应该使用 search.exclude 而不是 files.exclude

  // Configure glob patterns for excluding files and folders in fulltext searches and quick open. Inherits all glob patterns from the `files.exclude` setting.
  "search.exclude": {
    "**/node_modules": true,"**/bower_components": true,"**/*.code-search": true
  },// Configure glob patterns for excluding files and folders. For example,the file Explorer decides which files and folders to show or hide based on this setting. Refer to the `search.exclude` setting to define search specific excludes.
  "files.exclude": {
    "**/.git": true,"**/.svn": true,"**/.hg": true,"**/CVS": true,"**/.DS_Store": true
  },

official docs

更新:

您使用的是哪种语言服务器? Pylance?、Jedi?。您可以尝试切换语言服务器吗?

你能看看这些面板吗?

enter image description here

更新 2:

您可以尝试升级 Python 扩展吗?如果它不起作用,您可以尝试将节点版本降级到12吗?您可以参考this page

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...