OpenHarmony开发者论坛
标题:
OpenHarmony中使用clangd进行代码补全
[打印本页]
作者:
深开鸿_李涛
时间:
2024-6-28 17:23
标题:
OpenHarmony中使用clangd进行代码补全
[md]## 前言
在OpenHarmony中使用vscode等编辑器进行c++代码开发时,默认c++的代码提示和补全并不好用。通过使用clangd,可以增强代码提示和补全功能,提升编码效率。
## 1. clangd安装
在Ubuntu上可以通过以下命令进行安装:
```shell
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文件:
```shell
./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插件:
![](
https://forums-obs.openharmony.c ... 3ot2481t9ocf5zf.png
)
一些必要的配置如下:
1. 在clangd插件设置里,确保clangd命令的路径正确可用
![](
https://forums-obs.openharmony.c ... sq7p939r7r7k9dk.png
)
2. 在clangd插件设置里,确保启用了代码补全
![](
https://forums-obs.openharmony.c ... udo6zrq9x5i9j66.png
)
3. 确保生成的compile\_commands.json位于或被链接到vscode项目的根目录下。如果需要放到其他目录,需要修改clangd命令的 `--compile-commands-dir`参数。如:
![](
https://forums-obs.openharmony.c ... 9dzr3ahr1a1gkv4.png
)
配置好后,就可以使用clangd进行补全了。
## 4. 与微软C/C++插件的体验对比
优点:
1. 跳转定义、声明等更快更准确
2. 更丰富的鼠标悬停信息,如常量的值、结构体的大小等
3. 补全时自动添加头文件
4. auto类型推断显示
![](
https://forums-obs.openharmony.c ... 45l5y5evze5w4lr.png
)
5. ...
缺点:
1. 若compile\_commands.json较大,初次加载时间会比较长
2. 占用内存更多
## 总结
本文分享了OpenHarmony中配置vscode+clangd进行代码补全的方法。
[/md]
作者:
一天要喝九杯水
时间:
2024-7-2 13:37
命令中多写了end吧
作者:
[::::]
时间:
2024-8-21 15:50
标题:
OpenHarmony中使用clangd进行代码补全
[md]您好,想咨询一下,像您这么配置过后,仍有头文件找不到的情况,应该要怎么办呢?期待您的回复~
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5