为vscode配置clangd 您所在的位置:网站首页 clangd插件没有运行按钮 为vscode配置clangd

为vscode配置clangd

2024-03-10 15:14| 来源: 网络整理| 查看: 265

目录 安装clangd 后端安装clangd 前端修改基础配置生成compile_commands.json文件基本效果补全warning提醒自动修改存在问题 注意事项

clangd能提供更好的补全和提示,自带检查一些warning的问题,可以减少大家未来找存在的warning的时间。经过配置可以在unittest和timetest中也实现自动补全,平均速度比vscode c/c++插件更快。

安装clangd 后端 sudo apt-get install clangd 安装clangd 前端

在插件市场搜索clangd。安装即可。注意c/c++可以不用卸载,否则调试可能会有点问题。 在这里插入图片描述

修改基础配置

在project folder下建立.vscode文件夹,创建settings.json文件。如下图 在这里插入图片描述

settings.json内容如下(注意本地可能需要也配置clangd.arguments否则可能会有问题,陈天浩就有这个问题)

{ "files.associations": { "iostream": "cpp", "intrinsics.h": "c", "ostream": "cpp", "vector": "cpp" }, // 开启粘贴保存自动格式化 "editor.formatOnPaste": true, "editor.formatOnSave": true, "editor.formatOnType": true, "C_Cpp.errorSquiggles": "Disabled", "C_Cpp.intelliSenseEngineFallback": "Disabled", "C_Cpp.intelliSenseEngine": "Disabled", "C_Cpp.autocomplete": "Disabled", // So you don't get autocomplete from both extensions. "clangd.path": "/usr/bin/clangd", // Clangd 运行参数(在终端/命令行输入 clangd --help-list-hidden 可查看更多) "clangd.arguments": [ // 让 Clangd 生成更详细的日志 "--log=verbose", // 输出的 JSON 文件更美观 "--pretty", // 全局补全(输入时弹出的建议将会提供 CMakeLists.txt 里配置的所有文件中可能的符号,会自动补充头文件) "--all-scopes-completion", // 建议风格:打包(重载函数只会给出一个建议) // 相反可以设置为detailed "--completion-style=bundled", // 跨文件重命名变量 "--cross-file-rename", // 允许补充头文件 "--header-insertion=iwyu", // 输入建议中,已包含头文件的项与还未包含头文件的项会以圆点加以区分 "--header-insertion-decorators", // 在后台自动分析文件(基于 complie_commands,我们用CMake生成) "--background-index", // 启用 Clang-Tidy 以提供「静态检查」 "--clang-tidy", // Clang-Tidy 静态检查的参数,指出按照哪些规则进行静态检查,详情见「与按照官方文档配置好的 VSCode 相比拥有的优势」 // 参数后部分的*表示通配符 // 在参数前加入-,如-modernize-use-trailing-return-type,将会禁用某一规则 "--clang-tidy-checks=cppcoreguidelines-*,performance-*,bugprone-*,portability-*,modernize-*,google-*", // 默认格式化风格: 谷歌开源项目代码指南 // "--fallback-style=file", // 同时开启的任务数量 "-j=2", // pch优化的位置(memory 或 disk,选择memory会增加内存开销,但会提升性能) 推荐在板子上使用disk "--pch-storage=disk", // 启用这项时,补全函数时,将会给参数提供占位符,键入后按 Tab 可以切换到下一占位符,乃至函数末 // 我选择禁用 "--function-arg-placeholders=false", // compelie_commands.json 文件的目录位置(相对于工作区,由于 CMake 生成的该文件默认在 build 文件夹中,故设置为 build) "--compile-commands-dir=build" ], } 生成compile_commands.json文件

确保项目能够正常编译的前提下

cd build cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .. -G 'Unix Makefiles'

之后在build目录下就会生成对应的compile_commands.json,格式如下。请务必确保存在compile_commands.json文件,这是clangd补全依赖文件,否则会失效。

[ { "directory": "", "command": "", "file": "", }, ]

生成结束后可能需要手动启动reload window或者使用manually activate extension。之后每次打开project一般会自动开起。

在这里插入图片描述

在这里插入图片描述 可以通过ps -ef | grep clang查看是否存在进程

在这里插入图片描述

基本效果 补全

在这里插入图片描述

warning提醒

在这里插入图片描述

自动修改存在问题

在这里插入图片描述 在这里插入图片描述

注意事项 使用后最好使用下图close remote关闭,否则后台可能有进程未关闭

在这里插入图片描述

进程编译的时候,clangd会自动重新生成缓存,会占用较大的硬盘空间可能需要定时清理

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有