0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Neovim × Unreal Engine】今週のアップデート:P4対応、マクロ生成ウィザード、公式ドキュメント連携など(2025/12/04)

0
Last updated at Posted at 2025-12-04

「我ながらニッチ・オブ・ニッチなプラグインを作っているなぁ…」と改めて思いつつ、今週も UnrealDev.nvim エコシステムのアップデートを行いました。

Unreal Engine開発をNeovimで快適にするための機能追加がメインです。特にPerforce (P4) ユーザーや、C++のマクロ記述を楽にしたい方には嬉しい更新となっています!


📦 1. UnrealDev.nvim

エコシステム全体の健全性をチェック

:checkhealth UnrealDev コマンドを追加

Unreal Engineの開発環境(依存プラグインや設定)が正しくセットアップされているかを確認するためのコマンドを追加しました。

特に nvim-treesitter 関連のパーサー更新は、プラグインマネージャーのアップデートだけでは追従できない場合があるため、トラブルシューティングを容易にするために実装しました。
環境がおかしいな?と思ったら、まずはこれを実行してみてください。
checkhealth.png

🌲 2. UNX.nvim (Explorer)

待望のPerforce (P4) サポート!

Unreal Engine開発の現場といえば、バージョン管理はPerforceが標準です。
これまでGitのみのサポートでしたが、今回のアップデートでついに P4ステータスの表示 に対応しました。
p4_checkout.png

  • ステータス表示: ファイルツリー上で、P4の管理状態(Add, Edit, etc.)がアイコンで確認できます。
  • 自動チェックアウト: 編集不可能なファイルを編集しようとした際、自動的に「チェックアウトしますか?」というダイアログを表示します。

これで「書き込もうとしたらRead-onlyで怒られる」ストレスから解放されます。


🛠️ 3. UCM.nvim (Code Actions)

インクルード記述とマクロ作成を爆速化

📋 :UCM copy_include[!]

C++クラスの #include パスを計算してクリップボードにコピーするコマンドです。
「このクラスを使いたいけど、相対パスを書くのが面倒…」という悩みを解決します。

  • 自動解決: 例えば MyActor.cpp 上で実行すると、対になるヘッダーを探し出し、#include "Actor/MyActor.h" のような正しいパスを生成します。
  • :UCM copy_include: 現在開いているファイルのクラスパスをコピー。
  • :UCM copy_include!: クラス名を選択(検索)して、そのパスをコピー。

似た機能に UEP add_include がありますが、あちらは「自動挿入」、こちらは「クリップボードへのコピー」と使い分けが可能です。

:UCM specifiers[!] (マクロ生成ウィザード)

UCLASS, UPROPERTY, UFUNCTION などのマクロ記述を支援するウィザード機能を追加しました。

  • 通常モード (:UCM specifiers):

    1. マクロの種類を選択(例: UPROPERTY
    2. スペシファイアを選択(例: EditAnywhere, BlueprintReadWrite
    3. UPROPERTY(EditAnywhere, BlueprintReadWrite) の形でカーソル位置に挿入&クリップボードへコピー。
    4. スマートカーソル機能により、Category="" などを含む場合は "" の間にカーソルが自動移動します。
  • 追記モード (:UCM specifiers!):

    • 既存のマクロに引数を追加したい時に便利です。
    • マクロの枠(())は作成せず、中身の EditAnywhere だけをカーソル位置に挿入します。

specifiers_1.gif
specifiers_2.gif


🔍 4. UEP.nvim (Project Provider)

設定ファイルやドキュメントへのアクセスを強化

ファイル・シェーダー関連

  • Config/Shadersディレクトリの表示: UEP tree コマンドで、Game側のConfigやShadersフォルダが表示されなかった問題を修正しました。
  • 仮想パス対応: .ush / .usf ファイル内の仮想インクルードパスに対応し、open_files でジャンプ可能になりました。
  • :UEP shaders[!] [Scope]: シェーダーファイルを検索して開くコマンドを追加しました。

C# 設定ファイルへのジャンプ

  • :UEP build_cs[!]:
    • ! なし: 現在のモジュールの Build.cs を即座に開きます。
    • ! あり: プロジェクト内の全 Build.cs から選択して開きます。
  • :UEP target_cs[!]:
    • ! なし: プロジェクトの Target.cs を開きます。
    • ! あり: エンジン側の Target.cs も含めて検索します。

🌐 :UEP web_doc[!] (公式ドキュメント検索)

ブラウザでUnreal Engineの公式ドキュメントを開くコマンドです。
プロジェクトで使用しているUEのバージョンを自動検知 し、適切なバージョンのページを開くのが特徴です。

  • ! なし: カーソル下の単語をドキュメント検索します。
  • ! あり: プロジェクト内のクラス一覧から選択して、そのドキュメントを開きます。
    • Note: URL生成ロジックはExperimentalです。直リンクの推測に失敗した場合は、自動的にサイト内検索へフォールバックします。
      web_doc.gif

終わりに

今週は、実際の開発作業において「ここが面倒だな」「Riderならできるのにな」と感じていた、かゆい所に手が届くアップデートを行いました。

機能が充実してきたおかげか、最近はRiderでコードを書く時間が劇的に減り、「あれ、これNeovimの方が楽なんじゃないか?」と感じる瞬間が増えてきました。(単純に私がRiderのショートカットを覚えていない説もありますが…笑)

「こんな機能が欲しい!」という要望があれば、ぜひコメントやIssueで教えてください。できる限り対応したいと思います。
また、もし気に入っていただけたら UnrealDev.nvim にスターを頂けると開発の励みになります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?