Emacsのeglot+clangdでプロジェクトルートとIncludeディレクトリを指定する
お仕事でちょっと変わったディレクトリ構成のCのコードを読むときに、Emacsのeglot+clangdで一部のインクルードファイルが読み込まれずにジャンプがうまくいかなくて苦労したのでメモ。
init.elの編集
~/.config/emacs/init.el
を編集して次の行を追加します。
(setq project-vc-extra-root-markers '("compile_flags.txt"))
この記述をすると、 compile_flags.txt
という名前のファイルがあるディレクトリがeglotが認識するプロジェクトのルートディレクトリとして設定されます。
compile_flags.txtの作成
次に、 compile_flags.txt
という名前のファイルをプロジェクトのルートディレクトリに作成して、次の行を追記します。 Path\To\Project
は実際のインクルードディレクトリのパスに変更してください。
-IPath\To\Include
この記述により、eglotから起動されるclangdにインクルードパスを追加することができます。
Emacsでジャンプする
上記の設定をすることで、 M-.
や M-,
でカーソル下にある変数やマクロの定義にジャンプをすることができます。