D.L*_*D.L 19

我有完全相同的问题。大约一周后,它变得非常烦人。

基本上,正如评论所暗示的那样,可能有多种 linting 或 intelisense 工具。就我而言(对于python),我pylance添加了扩展名。

当我禁用此功能后,问题就消失了,但功能丢失了。所以我又加回来了...

由于某种原因(我不知道为什么),这解决了问题!

我只能假设扩展在某种程度上已损坏。尽管如此,它还是奏效了。

编辑:我还可以确认取消选中此设置似乎有效:

Jupyter: Pylance Handles Notebooks
Run Code Online (Sandbox Code Playgroud)

我当前的系统是Windows 11, with python 3.10.

在此输入图像描述

最终编辑(2022 年 12 月 8 日):此问题已在此处解决:

请您安装VS Code 1.74最新的 Jupyter、PyLance 和 Python 扩展,并确认它仍然存在。


Ben*_*ers 6

太长了;安装预发行版本的 Jupyter 解决了(v2022.11...)

好吧,经过一些更广泛的实验,我想我找到了导致我的情况的原因。查看进程后,我注意到有两个 Pylance 进程正在运行,而且只有当我在打开或已打开 Jupyter 笔记本的会话中工作时,这才会成为问题

saun89   17740 37.3  0.3 1008004 199492 ?      Sl   20:58   0:22 /home/saun89/.vscode-server-insiders/bin/fef85ea792f6627c83024d1df726ca729d8c9cb3/node /home/saun89/.vscode-server-insiders/extensions/ms-python.vscode-pylance-2022.11.32/dist/server.bundle.js --cancellationReceive=file:9178e897a2b78b36bfd167f79b36c3bdad2931d71b --node-ipc --clientProcessId=17651
saun89   18743  257  0.7 1304584 382288 ?      Sl   20:59   0:20 /home/saun89/.vscode-server-insiders/bin/fef85ea792f6627c83024d1df726ca729d8c9cb3/node /home/saun89/.vscode-server-insiders/extensions/ms-python.vscode-pylance-2022.11.32/dist/server.bundle.js --cancellationReceive=file:8744a321767eed92821fd737be4dc7dcfb728284e5 --node-ipc --clientProcessId=17651
Run Code Online (Sandbox Code Playgroud)

Pylance 基本上为工作区启动一项服务,然后为笔记本启动一项单独的服务。“Python 语言服务器”日志的输出:

在此输入图像描述

禁用 Jupyter 会删除重复项,并且在安装早期版本的扩展 (v2022.4) 后,这似乎已完全解决了该问题。一旦我有了可重现的东西,我将继续记录扩展错误。


Álv*_*lez 5

Visual Studio Code 提供了一个 API,因此第三方扩展和内置模块可以为自动完成弹出窗口提供建议。该系统目前的设计只是添加了建议——没有重复检测或删除(也许是因为扩展也可以处理建议的排序,这样的算法会顺利进行)。这意味着,如果您对一种给定的语言有多个扩展或模块,您很容易得到重复的条目。

拥有多个 PHP 扩展并不一定是个坏主意,因为它们可以满足不同的需求(例如,PHP DocBlocker 只是创建注释,它不提供自动完成建议)但您至少有两个扩展(PHP Intelephense 和 PHP Intellisense) ) 做完全相同的事情。这可能会影响性能(您的所有工作区文件都将被多次扫描)并且只会增加噪音。

我建议您仔细阅读扩展说明以了解它们的确切作用,然后找出您需要哪些。请记住,可以在每个工作区的基础上启用/禁用扩展。


以下只是我个人完全主观的看法。在提供代码智能的 PHP 扩展中,只有两个看起来足够成熟:

  • PHP 智能手机
  • PHP智能感知

我两个都试过了。PHP Intelephense 比 PHP Intellisense 更适合我,所以我一直保留它。我还禁用php.suggest.basic安装说明,因为基本建议没有给我增加任何价值(它们是盲字符串匹配):

关闭php.suggest.basic设置以获得最佳效果。

...以及驯服内置的 Emmet 支持,它提供了非常愚蠢的建议:

"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"
Run Code Online (Sandbox Code Playgroud)

天啊。