vscode 智能感知不起作用
vscode Intellisense not working
我刚刚下载了Linux ubuntu 14.04的Visual Studio代码。我创建了一个简单的测试.cpp并用 vscode 编写它,智能感知不起作用。
以下是测试中的代码.cpp:
struct test{
int a = 5;
}
int main(){
test t;
t.
}
当我写"t."时,没有智力告诉我t的成员,应该有。
我使用命令"touch test.cpp"在linux终端中创建了test.cpp文件,然后我用Visual Studio代码打开test.cpp并编写了代码。截图可以在这里看到:https://i.stack.imgur.com/fLhSA.png
有人知道如何让智能感知在 Linux 中为 vscode 工作吗?
正如其他人建议的那样,您现在可以添加 C/C++ 扩展。
扩展可能会遇到以下两个问题:
扩展不会检测自定义库:
您必须添加自定义库的包含路径。执行以下操作:
Ctr + 移位 + P
C/C++ 扩展:配置
包含路径(例如,每行添加一个路径)
${workspaceFolder}/**
/home/me/Documents/my_custom_lib/
扩展突然停止,不再为您提供任何建议:
如果不打开项目根目录,而是打开它的子项,则可能会发生这种情况。打开项目根文件夹并重新加载窗口。
以下内容主要适用于使用 ROS1 的情况,使用 vscode 的 C/C++ 扩展:
在文件.vscode/c_cpp_properties.json
(由 VSCode ROS 扩展名生成)中,尝试从"cppStandard": "gnu++14"
更改为"cppStandard": "c++14"
。
该文件看起来像这样:
{
"configurations": [
{
"browse": {
"databaseFilename": "",
"limitSymbolsToIncludedHeaders": true
},
"includePath": [
"/home/user/catkin_ws/devel/include/**",
"/opt/ros/melodic/include/**",
...,
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++14"
}
],
"version": 4
}
ROS使用的是c ++ 14标准,因此指定gnu++14
似乎破坏了事情。这是从这个问题中推断出来的。
存在此问题(现已关闭)。
没有内部智能感知,但有一个 C/C++ 插件。 最近它停止为我工作。 我卸载并重新安装, 并且转到定义现在可以工作了。
我在VSCode(使用C/C++插件)以及其他具有自动完成/智能感知功能的C IDE上注意到依赖于静态代码分析,使用嵌套函数确实混淆了静态代码分析器并导致自动完成之类的事情停止工作。
我刚刚有一个 VS Code 项目,我已经工作了一段时间,展示了这一点。重新启动智能感知或VSCode iteslf并没有修复它,但是我注意到它实际上不仅在我正在处理的主文件中起作用。在其他具有帮助程序功能、库功能等的文件中。自动完成工作正常。
我删除了我的嵌套函数并将其替换为goto cleanup;
模式(常见,但我一直喜欢onReturn();
作为嵌套方法以避免使用goto
模式)。但是我现在可以看到嵌套函数确实会干扰静态代码分析/自动完成。
我删除了嵌套函数,将其替换为goto cleanup;
,瞧,智能感知开始运行良好。
因此,在像我一样喜欢在 C 中使用嵌套函数的奇怪情况下,这通常会绊倒静态代码分析器/智能感知。
clangd
插件
C++,我使用clangd
插件取得了非常好的结果:https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd 它将 clangd 集成到 vscode 中。
compile_commads.json
数据库,该数据库包含构建系统生成的确切编译命令,该插件使用 clang 基于compile_commads.json
数据库解析代码,该数据库包含构建系统生成的确切编译命令,因此往往会产生最准确的结果。
我已经在以下位置更详细地介绍了它的设置:VSCode"转到定义"不起作用
在撰写本文时,支持的语言表示C++没有智能感知。
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- vscode 智能感知不起作用
- Xcode 代码感知不起作用(找不到符号)
- Visual Studio 2012 智能感知不起作用
- Visual Studio 2010 - C++智能感知不起作用(甚至不是Ctrl + Space),没有函数名称,没有参数列表,什么都没有