使用 CMAKE 为 C++ 设置 Neovim

Setting Up Neovim for C++ with CMAKE

我将 coc 用于 code-completion,将 ale 用于 linting 我的 c++ 文件,当我将所有 headers 和源文件放在同一目录时,这工作正常,但是当我有具有典型 includesrc 目录的 CMake 项目(分别用于 headers 和 .cpp 文件)此设置未能意识到我的 headers 在 include目录等 linting 和代码完成不起作用。 在配置我的 neovim 设置以处理此项目结构方面的任何帮助,或可以完成我想要的不同插件的建议,将不胜感激。

请查看 CMake 关于 CMAKE_EXPORT_COMPILE_COMMANDS 的文档。

这是我的部分 .nvimrc 例如:

nnoremap <F5> :wa <bar> :set makeprg=cd\ build\ &&\ cmake\ -DCMAKE_BUILD_TYPE=debug\ -DCMAKE_EXPORT_COMPILE_COMMANDS=1\ ../view\ &&\ cmake\ --build\ . <bar> :compiler gcc <bar> :make <CR>

这会生成 compile_commands.json 文件,供各种 ALE Supported Languages and Tools 读取。