プロジェクトのファイルの include が読み込まれない
bear を使ってビルドコマンド(make, ninja, …)をラップし(bear -- ninja)、compile_commands.json を生成。それをプロジェクトルートにリンクするとうまくいくようになる
- 2025/03/13 追記:ubuntu20 で bear を使ったときは、
bear sh build.shのように--を使わなかった。bear のバージョンが 2 だからか?
cf. https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#clangd
CITE
If compile_commands.json lives in a build directory, you should symlink it to the root of your source tree.
ln -s /path/to/myproject/build/compile_commands.json /path/to/myproject/
cf. https://uchan.hateblo.jp/entry/2018/12/29/104132
Cite
bear コマンドを使って compile_commands.json を自動生成してみたところ,cpp ファイルについては上手く生成されました.しかしヘッダファイルは全く無視されました.まあ当然ですよね.Makefile に登場するのは cpp ファイルだけですから.
ここで困ったことになります.Vim で編集するのは cpp ファイルだけではありません.当然,ヘッダファイルも編集します.ヘッダファイルも他のヘッダファイルをインクルードしますし,C++20 の機能を使ってプログラムを書きますから,cpp ファイルと同じようにコンパイルオプションを指定してあげないとうまく補完されません.
……とはいわれているが、ヘッダファイルも compile_commands.json だけでうまく補完が効くようになっていると思われるが……?