vscode Intellisense 不工作

新手上路,请多包涵

我刚刚下载了 linux ubuntu 14.04 的 Visual Studio 代码。我创建了一个简单的 test.cpp 并在 vscode 中编写它并且智能感知不起作用。

下面是 test.cpp 中的代码:

 struct test{
    int a = 5;
}

int main(){
    test t;
    t.
}

当我写“t”时,没有智能感知告诉我 t 的成员。应该有的。

我使用命令“touch test.cpp”在 linux 终端中创建了 test.cpp 文件,然后我用 Visual Studio 代码打开了 test.cpp 并编写了代码。可以在这里看到截图:http: //i.stack.imgur.com/fLhSA.png

任何人都知道如何让智能感知在 linux 中为 vscode 工作?

原文由 skarl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

我注意到 VSCode(使用 C/C++ 插件)以及其他具有自动完成/智能感知功能的 C IDE,例如依赖静态代码分析的功能,使用嵌套函数确实会混淆静态代码分析器并导致自动完成等事情停止工作.

我刚刚有一个我已经研究了一段时间的 VS Code 项目来展示这个。重新启动 Intellisense 或 VSCode iteslf 并没有修复它,但是我注意到它实际上并不仅仅在我正在处理的主文件中工作。在其他具有辅助功能、库功能等的文件中,自动完成工作正常。

我删除了我的嵌套函数并将其替换为 goto cleanup; 模式(常见但我一直喜欢 onReturn(); 作为一种嵌套方法,以避免使用 goto )。但是我现在可以看到嵌套函数确实干扰了静态代码分析/自动完成。

我删除了嵌套函数,将其替换为 goto cleanup; 瞧,Intellisense 开始运行良好。

因此,在您像我一样并且喜欢在 C 中使用嵌套函数的奇怪情况下,这通常会导致静态代码分析器/Intellisense 出错。

原文由 Papyrus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏