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生成的索引文件:

相关推荐
ZH_qaq19 分钟前
【洛谷】P11062 【MX-X4-T2】「Jason-1」加法 的题解
c++·算法
LaoWaiHang22 分钟前
C语言从头学60——学习头文件math.h(三)
c语言
9ilk27 分钟前
【与C++的邂逅】--- C++的IO流
开发语言·c++
是小满满满满吗27 分钟前
C++中的继承
开发语言·c++·python
程序猿练习生28 分钟前
C++速通LeetCode简单第16题-买卖股票的最佳时机
开发语言·c++·leetcode
只对您心动39 分钟前
【QT】实现TCP服务器,客户端之间的通信
linux·服务器·c语言·开发语言·c++·qt·tcp/ip
MaTF_1 小时前
《Effective C++》第三版——让自己习惯C++
开发语言·c++
Antonio9151 小时前
【高级数据结构】树状数组
数据结构·c++·算法
羊十一2 小时前
C++(C++的文件I/O)
开发语言·c++·cocoa
Am心若依旧4092 小时前
[C++进阶[六]]list的相关接口模拟实现
开发语言·数据结构·c++·算法·list