给neovim配置项目信息
为什么要配置项目信息呢? compile_commands.json
文件不行吗? 主要是为了刚开始编码时能有一些信息, 所以直接简单地手写一下.ccls
文件或者.clangd
文件会方便一点。
clangd
.clangd
文件由一个个片段(fragment)组成, 片段间可以使用---
分割。本质就是解析成yaml, 所以配置是key value对的形式定义的。比如:
1 | CompileFlags: |
其中, 数组也可以写成add: [-xc++, -Wall, -I/abs/path1, -I/abs/path1]
。需要注意的是路径要使用绝对路径issue
官方文档怎么看, 每个大标题就是一个fragment, 如CompileFlags
。然后其中的小标题就是设置, 如Add
, 会描述怎么设置
配置.clang-format
文件可以控制格式化的格式, .clang-tidy
可以控制代码检查等
ccls
在项目根目录创建一个.ccls
文件, 然后以行为单位添加编译器信息, 如-I
, -D
等。其中第一行要是compiler driver, 一般用clang
, 后续每行添加一个参数(需要使用空格-I foo
, 用-Ifoo
)。每行开头可以使用一个或多个%
开头的的特殊变量(详见官方文档)。
形如:
1 | clang |
或者在compile_commands.json
基础上追加, 第一行使用%compile_commands.json
后不用再添加compiler driver
1 | %compile_commands.json |