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中添加下面规则,编译时会自动更新:
add_rules("plugin.compile_commands.autoupdate", {outputdir = ".vscode"})
outputdir是json文件输出目录,默认在项目根目录下生成。
貌似还可以使用vscode xmake插件生成。
clangd插件配置
配置前需要安装clangd插件,并根据提示安装clangd到系统上。这里很可能需要科学上网,不然下载很慢,或者可以手动下载安装。
在.vscode的settings.json设置compile_commands.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生成的索引文件: