在使用 Neovim 进行 C/C++的开发时,我们常常使用 clangd 作为 lsp 提供语法高亮/重构等语言服务
其中 clangd 根据自动推断宏的功能也是十分有效,搭配CMake可以达到更加好的效果(如支持 CMake 内置宏,支持自动 include CMake 配置的头文件)
下面提供简要的集成 clangd 与 cmake 的方法
一般来说clangd可以自动识别CMake生成的compile_commands.json来进行头文件的识别与宏的分析
但 compile_commands.json 不会自动生产,故我们可以通过以下命令实现 compile_commands 的自动生产
1 | cmake . -G -DCMAKE_EXPORT_COMPILE_COMMANDS=ON |
其中 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
是用于导出编译命令的 flag
故我常常会在项目目录下建立一个 build.sh 来构建项目:
1 | cmake . -G -DCMAKE_EXPORT_COMPILE_COMMANDS=ON |
构建时只需要输入 build.sh