文章

vscode 使用 clangd 替换 C/C++ 插件

vscode 使用 clangd 替换 C/C++ 插件

前言

vscode 自带的 C/C++ 插件(ms-vscode.cpptools)提供了很多功能,比如 IntelliSense(代码补全、跳转)、调试等,其中的 IntelliSense 功能问题非常多,官方的维护也不太积极,所以可以选用更稳定的 clangd 插件。

clangd

安装 clang

clangd 依赖于 clang 做分析,需要安装最新版的 clang

1
2
sudo apt install clang-20
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 100

安装 clangd

clangd 插件自带的 clangd 版本一般较老,我们直接安装最新的:

1
2
sudo apt install clangd-20
sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-20 100

安装 clangd 插件

搜索 vscode 插件市场,安装 clangd 插件

关闭 C/C++ 插件的 IntelliSense

安装好 clangd 插件后会自动提示是否关闭 C/C++ 插件的 IntelliSense 功能,点确定就行

如果没提示,可以手动关闭:

1
2
3
4
// setting.json
{
    "C_Cpp.intelliSenseEngine": "Disabled"
}

clangd 配置

clangd 配置使用的是当前项目目录下的 .clangd 文件:

1
2
3
4
5
6
CompileFlags:
  CompilationDatabase: /workspaces/build/ # cmake 的 compile_commands.json 的目录
  Add:
    - "-ferror-limit=0" # 不限制错误数量
Diagnostics:
  Suppress: ["*"] # 关闭所有诊断。如果需要显示错误,就删了这两行

更多配置可以看官方文档

本文由作者按照 CC BY-SA 4.0 进行授权