如何在VS Code中重置Intellisense?

95

如果您在VsCode调试时进行代码更改,智能感知有时会出现错误的编译错误。最快的方法是重置或更正它?


3
不确定此处是否适用,但在关闭 VS 后删除项目旁边的 ".vs" 文件夹可以解决许多问题。 - Marc Gravell
附注:在C#中,Omnisharp会遍历sln文件。如果您添加了一个新的项目,并忘记将其添加到解决方案中,则可能会导致智能感知功能失败,特别是针对该项目的包。请将该项目添加到解决方案中,并从命令面板中运行“Omnisharp:重新启动Omnisharp”命令。 - James World
10个回答

178

重新启动 TypeScript 语言服务

在 VS Code 中打开 TypeScript 源文件(在 css 或 json 文件中不起作用),

  1. 打开命令面板 (视图菜单 -> 命令面板)
  2. 输入 TypeScript: Restart TS server. (键入 "restart",它应该自动建议)

31
只有在打开 TypeScript 文件时,该命令才会显示!例如,在编辑 .css 文件时是找不到它的。 - nitzel
2
如果您打开了一个 .cs 文件,您将获得重新启动 OmniSharp 的选项,这将清除 C# 问题,例如文件的错误标记不正确。 - Chris
@DrumM -- 要在 VSCode 中重启 TypeScript,您必须在 TypeScript 文件中使用命令面板(例如,在 CSS 或 JSON 文件中无法工作)-- 可以考虑将行"typescript.tsdk": "node_modules/typescript/lib/" 添加到.vscode/settings.json -- 还要确保通过 npm install typescript 在项目中本地安装 TypeScript -- 然后重启 VS Code -- 当然,作为解决方法,完全重启 VSCode 也可以。 - ChaseMoskal
你可以进入 "文件(File) > 首选项(Preferences) > 快捷键(Keyboard Shortcuts)" 并查找 "Typescript: Restart TS Server",然后为其设置一个按键绑定 (我使用的是 ctrl + PauseBreak)。 - Daniel
如果你正在使用Vue扩展,它将是:Volar:重新启动Vue服务器。 - undefined

35

您可以按Ctrl+Shift+P或F1,然后在命令面板中输入“reset..”,在弹出的列表中选择“C/C++重置IntelliSense数据库”。在此键入图像描述


伙计,这甚至对我也不起作用。看起来有一个很大的错误。我正在运行最新版本。无论我做什么,我总是得到:“找不到...的定义”。 - jaques-sam

12

对于C#,请使用以下方法:

cmd+shift+Pctrl+shift+P会弹出命令栏,然后选择OmniSharp: restart OmniSharp。输入restart,它会给你建议。


12
在VSCode中,使用Ctrl + Shift + P并单击C/C++ Rescan Workspace对我很有用。

1
也许需要在执行 @Valex 的答案中的 C/C++ Rescan Workspace 之前重置 IntelliSense 数据库,同时重新构建也可能有所帮助。 - guan boshen

8

对于Angular/TypeScript,重置扩展主机的方法非常可靠。

Ctrl + Shift + P --> 重新启动扩展主机

--或者--

Ctrl + P --> 然后键入“>” --> 重新启动扩展主机


1
也适用于C#。 - Harutyun Imirzyan
1
同时也适用于 Jupyter 笔记本中的 Python/Pylance。 - Kriggs

7

2
这仍然是一个问题...我已经在过去三年中为TypeScript项目重新启动VSCode大约10次... VSCode会错误地报告定义错误,但只需重新启动VSCode即可消失...不知何故,语言服务经常出现故障 *耸肩* - ChaseMoskal
13
嘿,我发现了一些东西-- 查看菜单-> 命令面板,键入 restart,然后点击 TypeScript: Restart TS server. - ChaseMoskal
1
@ChaseMoskal 这样更加高效! - Jeff

2

我遇到了以下问题:

  • 退出VSCode
  • 禁用C/C++扩展
  • C/C++ 重置 IntelliSense 数据库
  • C/C++ 重新扫描工作区

后来我发现有一堆名为cpptoolscpptools-srv的进程在运行。在杀死它们并重置VSCode之后,一切都重新开始正常工作了。

我使用的命令是:

pkill cpptools

在大多数情况下,使用上述pkill命令后,我不需要退出VSC。

1

重新启动Dart分析服务器

由于这个问题有点通用,而且看到人们回答各种编程语言的解决方法,我将发布关于 Dart 的解决方法。

  • 打开命令面板(视图菜单→命令面板)
  • 输入:Dart: Restart Analysis Server 并按 Enter

就像关闭和重新打开vscode一样


0
我正在使用较旧版本的VS Code(1.48.1)。这个答案为我解决了一个文件未生成C/C++ IntelliSense信息的问题。如果重置IntelliSense不起作用(Ctrl+Shift+P→C/C++:重置IntelliSense数据库;对我来说没有用),请尝试以下方法:

确保文件中没有红色波浪线(解析错误),特别是在#include指令上。解决包含问题的最佳方法是在工作区声明更多的包含目录。(我看到了很多关于如何在系统/用户范围内执行此操作的答案,但只有不完整的答案说明如何在每个工作区中执行此操作。)通过在工作区目录中生成一个c_cpp_properties.json文件来实现这一点(我的似乎还没有这个文件):Ctrl+Shift+P → C/C++: Edit Configurations (JSON)。添加路径到includePath,直到在有问题的文件和它所包含的所有文件中都消除了所有包含错误。使用变量${workspaceFolder}来引用工作区的根目录。顺便说一句,我的默认只有${workspaceFolder}/**includePath中,这应该递归搜索您的整个工作区文件夹以查找包含文件。对我来说没有用,至少在一个特定的文件上。我必须在${workspaceFolder}下明确添加更多目录,以便VS Code找到一些包含文件。我没有遇到任何标准库包含的问题。因此,本答案不涉及这些内容。

在 IntelliSense 数据库进行另一次重置并重新启动 VS Code 之前,您可能需要这样做,才能正确显示所有 IntelliSense 信息。我还发现,打开它正在寻找的包含文件似乎有助于帮助它找到这些文件。我希望这对我继续有效。目前为止都还不错。


0

在新版本的VS Code中,.NET使用了语言服务器替代了OmniSharp。你可以使用该命令重新启动。希望对你有帮助。

.NET:重新启动语言服务器


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接