OpenHarmony开发手册:使用clangd进行代码补全

前言

在 OpenHarmony 中使用 vscode 等编辑器进行 c++ 代码开发时,默认 c++ 的代码提示和补全并不好用。通过使用 clangd,可以增强代码提示和补全功能,提升编码效率。

1. clangd 安装

在 Ubuntu 上可以通过以下命令进行安装:

sudo apt install clangd

另外在 vscode 上也可以通过插件(在下文介绍)来下载 clangd。

2. compile_commands.json 生成

clangd 工具进行代码补全需要用到 compile_commands.json 文件,这个文件中包含了一系列 c/cpp 文件的编译指令。通常 compile_commands.json 是由编译构建工具进行生成的。

目前 OpenHarmony 的编译脚本 build.sh 已经可以通过 gn 生成 compile_commands.json:只需要加上参数 --gn-flags="--export-compile-commands" 运行即可。

如在 rk3568 上以 debug 模式编译 ets_frontendend_build 的同时生成 compile_commands.json 文件:

./build.sh --product-name rk3568 --build-target ets\_frontendend\_build --gn-args is\_debug=true --gn-flags="--export-compile-commands"

上述命令成功执行后,会在 out/rk3568 目录下生成我们所需要的 compile_commands.json 文件。

3. vscode 插件配置

vscode 上需要安装 clangd 插件:

一些必要的配置如下:

  1. 在 clangd 插件设置里,确保 clangd 命令的路径正确可用

  2. 在 clangd 插件设置里,确保启用了代码补全

  3. 确保生成的 compile_commands.json 位于或被链接到 vscode 项目的根目录下。如果需要放到其他目录,需要修改 clangd 命令的 --compile-commands-dir 参数。如:

配置好后,就可以使用 clangd 进行补全了。

4. 与微软 C/C++ 插件的体验对比

优点:

  1. 跳转定义、声明等更快更准确

  2. 更丰富的鼠标悬停信息,如常量的值、结构体的大小等

  3. 补全时自动添加头文件

  4. auto 类型推断显示

  5. ...

缺点:

  1. 若 compile_commands.json 较大,初次加载时间会比较长
  2. 占用内存更多

总结

本文分享了 OpenHarmony 中配置 vscode+clangd 进行代码补全的方法。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值