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"
}