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

相关推荐
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉3 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer3 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
hikktn5 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
青花瓷5 小时前
C++__XCode工程中Debug版本库向Release版本库的切换
c++·xcode
观音山保我别报错5 小时前
C语言扫雷小游戏
c语言·开发语言·算法
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
捕鲸叉6 小时前
MVC(Model-View-Controller)模式概述
开发语言·c++·设计模式
Dola_Pan7 小时前
C++算法和竞赛:哈希算法、动态规划DP算法、贪心算法、博弈算法
c++·算法·哈希算法