vscode 智能感知不工作

vscode Intellisense not working

我刚刚下载了 visual studio linux ubuntu 14.04 的代码。我创建了一个简单的 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 使用智能感知吗?

在撰写本文时,the languages supported 表示 C++ 没有 IntelliSense。

没有内部智能感知,但有一个 C/C++ 插件。 最近它停止为我工作。 我卸载了再安装, goto 定义现在有效。

正如其他人所建议的,您现在可以添加 C/C++ extension

您可能 运行 遇到以下两个扩展问题:

扩展未检测到自定义库:

您必须添加自定义库的包含路径。执行以下操作:

Ctr + Shift + P

C/C++ 扩展:配置

包含路径(例如每行添加一个路径)

${workspaceFolder}/**
/home/me/Documents/my_custom_lib/

扩展程序突然停止,不再给你任何建议:

如果您打开的不是项目根目录,而是它的子项目,则可能会发生这种情况。打开项目根文件夹并重新加载 window.

以下内容主要适用于使用 ROS1 的情况,将 C/C++ extension 用于 vscode:

在文件 .vscode/c_cpp_properties.json(由 VSCode ROS extension 生成)中,尝试将 "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 standard, so specifying gnu++14 seems to break things. This was deduced from this question

存在关于此的 issue(现已关闭)。