早速ですが、今週のアップデート情報の共有です。
今週は、以前から不安定だったDB周りの修正を行いつつ、JetBrains Riderにあるような「定義の作成」「実装の作成」といった強力な支援機能を UCM.nvim に実装しました。
NeovimでのUnreal Engine開発が、また一歩IDEに近づきました。
UCM.nvim:定義と実装の行き来をスムーズに
これまで手動で行っていたヘッダーとソースファイルのボイラープレート記述を自動化しました。
-
UCM create_impl
ヘッダーファイルの関数定義上でコマンドを実行すると、対になる.cpp側に実装テンプレートを自動挿入します。
特筆すべきは、override指定子が付いている場合、自動的にSuper::Function()の呼び出しまで生成する点です。
-
UCM create_decl
create_implの逆を行う機能です。.cpp側の関数実装上で実行すると、ヘッダーファイルに定義を追加します。引数の変更など、シグネチャの更新にも対応しています。
-
UCM add_struct
クラスは「1ファイル1クラス」が基本ですが、構造体(Struct)はヘッダーにサクッと追加したい場面が多々あります。
このコマンドを使えば、ウィザード形式で名前と継承元を選択するだけで、適切なUSTRUCT定義を現在のカーソル位置に挿入できます。
- 新規ファイル作成のリファクタリング
-
UCM new_class: クラス専用の新規ファイル作成コマンド。 -
UCM new_struct: 構造体専用の新規ファイル作成コマンド。 - 内部ロジックを見直し、クラス・構造体の両方に適切に対応できるよう
UCM new周りをリファクタリングしました。
UNX.nvim:ツリー操作のストレスを軽減
ファイルツリーの操作感を向上させました。
-
ツリー状態の永続化
UEのプロジェクトは階層が深くなりがちです。再起動のたびにフォルダを開き直すのが手間のため、ツリーの開閉状態を保存・復元できるようにしました。 -
UNX focus
編集中のファイルから、ツリー上の該当位置へフォーカスを移す機能を実装しました。
「今編集しているファイルと同じ階層に新しいファイルを作りたい」といった場合に、即座にツリー位置を特定できるため非常に便利です。
UEP.nvim:ナビゲーション強化
-
UEP structs
構造体の一覧を表示し、そこから定義元へジャンプする機能を実装しました。
おわりに
今週の変更は以上です。
これら「実装・定義の自動生成」や「構造体ウィザード」が入ったことで、コード編集作業に関しては Neovimを完全に主戦場に置けるレベル になってきた手応えがあります。
今後の展望として、RiderなどのIDEとNeovimの連携を模索中です。
例えば、「Riderでデバッグ中に、ブレークしたファイルを即座にNeovimで開く」あるいは「Neovimで編集中のファイルをRiderで開く」といった相互連携ができれば、デバッグ体験も含めて最強の環境になりそうです。技術的に可能かどうか、引き続き調査していきます。



