📚

UnrealEngineのソースコードをneovimを使って実装する際の補完設定について

に公開

UnrealEngine5 (以下UE5) 開発時に neovim を用いて実装したい。

mason 経由で clangd をインストールして意気揚々とエディタを開くと UE5 関連のメソッドに対して無知なのでエラーが出まくる。そりゃそーだ。

どうしよっかなーってことでChatGPTにきいてみた。

clangd は compile_commands.json を基にコード解析を行うため、UE5のビルドシステムでこれを出力する必要があります。

ほう、compile_commands.json を用意できれば勝手に解釈してくれそう。
ただ、GPTくんの説明通りにやっても上手くいかず、四苦八苦したのでそれをメモしておく。

環境

  • UnrealEngine: 5.5.4-40574608+++UE5+Release-5.5
  • Platform: macOS 15.3.2 (arm64)
  • neovim: v0.10.4

やったこと

GPTくんは「UE5側でいろいろ設定必要よー」と言ってたけど、色々調べた結果以下コマンドを実施するだけでなんとかなった

# compile_commands.json 生成
/Users/Shared/Epic\ Games/UE_5.5/Engine/Build/BatchFiles/Mac/Build.sh \
      -mode=GenerateClangDatabase \
      -NoExecCodeGenActions \
      -project=$HOME/Documents/Unreal\ Projects/$ProjectName/$ProjectName.uproject \
      -game \
      -engine \
      ${ProjectName}Editor \
      Mac \
      DebugGame

# 生成された compile_commands.json をプロジェクトに反映
#   プロジェクトルートにいれるだけで clangd は読み取ってくれるらしい
ln -sf /Users/Shared/Epic\ Games/UE_5.5/compile_commands.json $PROJECT_DIR/compile_commands.json

参考: Get compile_commands.json - Development / Platform & Builds - Epic Developer Community Forums

${ProjectName}Editor 部分が何をしているのかわからないけど、上記参考リンクでそう書いてあったので合わせてみました。分かる人いれば教えていただけると嬉しいです。


日本語の記事が見当たらなかった & 忘備録も兼ねて 📝
しばらくこれで様子見して問題があれば追記します。UE5のエディタにnvim使いたいとかいう稀有な人はそう居ないかと思うけど、誰かの役に立てば幸いです。

Discussion