VSCode“转到定义”不起作用

时间:2016-05-20 08:35:00

标签: c++ visual-studio-code

我使用C / C ++扩展安装了Visual Studio Code 1.1, 打开我的C ++项目并试图徒劳地使用“转到定义”。

“转到定义”根本不起作用。 例如,转到类成员的定义:

int i = m_myVar;

(我用一个文件打开了一个更简单的项目,它正在为这个文件工作)

最后,我想要的是我的大项目的良好索引,有没有办法安装Intellisense?

12 个答案:

答案 0 :(得分:1)

我最近遇到了同一问题,尝试了所有我无法找到的建议解决方案后,我找到了这篇文章:

https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc

基本上,我的项目太大了,VS代码不再能够跟踪所有文件,这弄乱了“转到定义”功能。

按照链接上的步骤增加要跟踪的最大文件数后,问题已解决。

更正非常简单(已在Ubuntu 18.04上测试):

添加此行:

fs.inotify.max_user_watches=524288

到文件/etc/sysctl.conf的末尾

保存后,运行以下命令:

sudo sysctl -p

希望这对其他人有用,这在最近几天一直困扰着我。

答案 1 :(得分:1)

我尝试了此线程中提到的方法,但似乎没有一个对我有用。一个对我有用的简单解决方案是关闭当前工作区并创建一个新工作区,添加我需要的文件夹(与旧工作区相同),然后保存新工作区。等待几分钟建立索引,IntelliSense 现在可以找到定义了。

答案 2 :(得分:1)

我遇到了类似的问题,除了 Python 和谷歌搜索解决方案让我回到这篇文章,所以我想我会在这里发布我的解决方案,希望它可以帮助其他人。

我正在通过 VScode Remote 在远程集群上工作,并且遇到了与原始问题类似的错误(所有“转到 ___”功能都不可用,甚至出现“太大而无法跟踪”错误),我以为我有增加手表的数量,但最终无济于事。

我需要做的就是在远程 VScode 服务器上安装一个 python 解释器。这解决了我的问题。

答案 3 :(得分:0)

我相信vscode 1.1(实际上是1.1.1)+ C ++扩展(cpptools)和我们现在可以得到的智能感知一样多。

您应该使用"打开文件夹加载您的大项目"函数使vscode知道其他文件。

https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extension-for-visual-studio-code/警告让索引首先完成(索引期间右下角的红色图标),并提到当前对源代码解析的限制。

答案 4 :(得分:0)

我很久以来一直在尝试解决此问题。最后,对我有用的是简单地重新安装vscode,然后安装最新的C / C ++扩展(v0.18.1)。然后,在.vscode / c_cpp_properties.json文件的includePath下,添加包含所有头文件的include文件夹。

答案 5 :(得分:0)

我在 Ubuntu 20.04 上使用 VSCode 1.52.1。

就我而言,无论出于何种原因,c_cpp_properties.json 已在 Disabled 中设置为 ~/.config/Code/User/settings.json

手动将其更改为 Enabled 解决了问题。

答案 6 :(得分:0)

安装一些 VSCode 扩展后,它也无法在我的笔记本电脑上运行。我决定在管理员权限下关闭并重新打开 VSCode,突然就解决了。

答案 7 :(得分:0)

只是为了通知如果以上都不起作用 在我的情况下,我在我的 VS 代码中使用了 Kite 扩展,我只是禁用了它并且它起作用了。我认为 kite 扩展程序阻止了此功能。

答案 8 :(得分:0)

如果您的 PC 上有多种语言版本,请指定您在 VScode 中使用的确切语言(在我的情况下,我使用的是 Python,因此我必须在 VS Code 中为 Python 解释器指定版本)< /p>

如果你无论如何都做不到,那就卸载所有你不使用的其他版本,然后如果你去VS Code,它会询问要使用的版本,你只会有一个版本,所以当您选择版本时,“转到定义”将被激活。

答案 9 :(得分:-1)

我在安装扩展C / C ++时遇到了类似的问题。我通过下载扩展的较旧版本并升级到最新版本来解决了该问题。它以某种方式解决了问题...

答案 10 :(得分:-1)

请安装以下扩展程序:

Angular Language Service extension for VS Code

“转到定义”功能将通过以下两种方式之一起作用:

 1. ctrl + hover, and click the variable or method
 2. right click the variable or method, and click "Go to Definition" 

祝大家好运。

答案 11 :(得分:-2)

确保已安装扩展名“ C / C ++”。 请参阅https://code.visualstudio.com/docs/languages/cpp

相关问题