xmake vscode+clangd实现c/c++程序更精确跳转、补全

clangd相比与vscode自带的c/c++插件要好用很多,使用xmake搭配vscode开发c/c++程序时,可以通过下面方法使用clangd。

生成compile_commands.json

好像是叫什么compile database,xmake可以使用下面两种方式生成。

1、手动生成

xmake project -k compile_commands

还可以加上--lsp指定lsp后端:

xmake project -k compile_commands --lsp=clangd

2、规则自动生成

xmake.lua中添加下面规则,编译时会自动更新:

lua 复制代码
add_rules("plugin.compile_commands.autoupdate", {outputdir = ".vscode"})

outputdir是json文件输出目录,默认在项目根目录下生成。

貌似还可以使用vscode xmake插件生成。

clangd插件配置

配置前需要安装clangd插件,并根据提示安装clangd到系统上。这里很可能需要科学上网,不然下载很慢,或者可以手动下载安装。

在.vscode的settings.json设置compile_commands.json路径:

json 复制代码
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}/.vscode",
        // "--completion-style=detailed",
        // "--header-insertion=never"
    ],

参考:clang - Visual Studio Code clangd extension configuration - Stack Overflow

.cache下是clangd生成的索引文件:

相关推荐
FlightYe1 天前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎1 天前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
by209991 天前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
Rover Ramble1 天前
C++ 用互斥锁实现读写锁
开发语言·c++
你怎么知道我是队长1 天前
C++零基础入门第2周:数据类型、运算符与表达式完全指南(附20段可运行代码+避坑清单)
c++
say_fall1 天前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
雪落漂泊1 天前
C++算法 滑动窗口篇(下)
开发语言·c++
爱聊灵光的维C1 天前
从看见世界到重构认知:在视觉与硬件的交汇处,寻找我们这代人的北极星
c语言·物联网·计算机视觉·重构·硬件工程·射频工程
AI+程序员在路上1 天前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
揽星河..1 天前
【C语言】扫雷游戏
c语言·算法·游戏