vscode使用clangd作为C++代码提示插件

1,019 阅读1分钟

vscode使用clangd作为C++代码提示插件

需要知道,clangd插件和C/C++插件在intelliSenseEngine功能上是冲突的。

C/C++插件除了intelliSenseEngine功能外,还有调试器的功能,可以作为gdb前端,实现友好交互的C++调试,可以看这篇文章

如果不需要C/C++插件的调试功能,直接禁用插件或者卸载插件就可以;如果需要,就要禁用C/C++的intelliSenseEngine

{
    "C_Cpp.intelliSenseEngine": "disabled"
}

然后安装clangd插件,指定clangd和compile_commands.json的位置,就可以实现代码提示,效率远高于C/C++基于字符的提示

compile_commands.json需要生成,如果用CMake,需要添加-DCMAKE_EXPORT_COMPILE_COMMANDS=ON指令

{
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}/build",
        "--completion-style=detailed"
    ],
    "clangd.path": "/home/my/.local/bin/clangd",
    "clangd.checkUpdates": true,
    "C_Cpp.intelliSenseEngine": "disabled",
    "clang-format.executable": "/home/my/.local/bin/clang-format",
    "clang-format.fallbackStyle": "WebKit"
}