写在前面
因为本人喜欢用现在非常受欢迎的neovim
版本lazyvim
,所以编辑esp32(esp idf)
项目时,发现一个很强迫症的问题。
因为esp32
项目并非使用clang
作为编译器,但是neovim
的语言服务器clangd
很优秀,所以,直接使用neovim
搭配clangd
打开esp32
项目源文件时,会出现如下报错:
因为clangd
需要读取build/compile_commands.json
来生成索引,读取到了一系列clang
编译器不认识的编译参数,所以发生了大量报错。然而,这些报错对我们的esp32
项目并没有影响,最终,直接选择忽略这些报错。
下面开始操作。
打开config.yaml
文件
vim ~/Library/Preferences/clangd/config.yaml
其他操作系统类似,具体路径请自行查找或 Google。
添加以下内容
CompileFlags:
Add: []
Remove: [-mlongcalls, -fstrict-volatile-bitfields, -fno-shrink-wrap, -fno-tree-switch-conversion]
Diagnostics:
Suppress: ['drv_unknown_argument', 'unused-includes', 'pp_file_not_found']
- 注:此文件将在全局生效。
可以看到,0 报错,非常之清爽,并且,代码提示补全功能和基础的语法检测全都正常使用。