はじめに
今週のアップデート情報です。
今回は、以前の記事のような「派手な新機能のスクリーンショット」があるわけではありませんが、Unl-server(Rust製サーバー)を活用した最適化や、足回りの機能強化といった、パフォーマンスに直結する重要な変更を行いました。
以下、主な変更点です。
- 構文解析処理をサーバーへ完全移行
これまでNeovim側(Lua)で行っていた Tree-sitter や正規表現(Regex)を使用した構文解析部分を、すべて Unl-server 側に移行しました。
- 依存関係の削除: これにより、プラグイン群(シンタックスハイライト機能を除く)における Neovim 側の Tree-sitter 依存がなくなりました。LSPのシンタックスハイライトをメインで使用されている方は、別途 treesitter-unreal-cpp をインストールする必要がなくなります。
- 精度の向上: サーバー側(Rust)で Tree-sitter を実行することで、これまで以上に正確かつ高速な構文解析が可能になりました。
- .uasset 解析をバイナリ解析へ移行
.uasset ファイルの解析方法を、従来の簡易的な rg (ripgrep) による文字列検索から、Rustによるバイナリ解析 へと刷新しました。
- 対応バージョン: UE 5.3 〜 5.7
- 解析精度の向上: これにより、Children や Reference の取得精度が大幅に向上しました。特に、以前は取得が難しかった UFUNCTION の Reference も正確に取れるようになっています。
⚠️ 注意点:
現状、解析データはDBに永続化していないため、起動直後は解析完了まで少し待ち時間が発生します。ご利用の際はご注意ください。
- Picker API の拡張性向上
Picker機能を拡張し、デフォルトで用意しているもの以外も柔軟に追加できるようにしました。
Pickerのモデルに任意の function を設定することで、独自のPickerを作成・統合することが可能です。
詳細な仕様や設定方法は、以下のREADMEを参照してください。
まとめ:パフォーマンスの改善
諸々の重い処理をサーバー(Rust)側にオフロードしたことにより、Neovim本体のCPU負荷が下がり、より快適にエディットできる環境になったと思います。
ぜひ、最新版にアップデートして、より軽快になった Neovim x UE 開発をお試しください!
taku25/unrealdev.nvim
もしこのプロジェクトを気に入っていただけたら、リポジトリに ⭐️(Star)をいただけると開発の励みになります(小躍りして喜びます)!
それでは、良き Neovim x UE ライフを!!