DEV Community

taku25
taku25

Posted on

Turning Neovim into a UE5 IDE: File Watching & Architecture Shifts (Weekly Update 2026-01-09)

Happy New Year! πŸŽ‰ It's 2026, and I'm kicking off the year with a renewed focus: making Neovim the ultimate IDE for Unreal Engine development.

Here is this week's progress report. We have some major architectural changes and new features that bring us significantly closer to that "IDE-like" experience.

  1. Polishing the SQLite Migration 🧹
    Following the recent migration to SQLite, I've squashed a number of bugs that popped up. The foundation is now much more stable, ensuring a smoother experience overall.

  2. UNX: Ditching the Cache for a Pure File Tree 🌳
    Previously, the file tree implementation was heavily tied to unl-neotree, relying on a cached tree structure. This week, I completely overhauled this.

The Change: I moved away from the cache-dependent architecture to a pure file tree approach using a custom structure for UNX.

The Benefit: We no longer rely on stale data. If you add or remove files externally (e.g., via Windows Explorer), the tree can now handle those changes immediately without waiting for a cache rebuild. It only displays the information strictly necessary for UE development, keeping it lightweight.

New UNX Features:

N Key (Create File): You can now create simple files directly in the tree!

Why this matters: Previously, you could only create classes via wizards. Now, if you have a header file and just want to quickly add the corresponding .cpp source, you can simply hit N.

R Key (Force Refresh): Added the ability to manually force a tree update/redraw.

  1. One Step Closer to an IDE: UEP start πŸš€ This is the highlight of the week.

My goal is to make Neovim function as a "lightweight IDE" for UE. To achieve this, I implemented UEP start (alias: UDEV start_project), which replaces the old manual UEP refresh workflow.

How it works: Instead of manually refreshing, you run UEP start. This kicks off a background process that:

Watches VCS Revisions: Smartly detects git changes.

Monitors Files with vim.uv: It watches the project folder for any file changes using Neovim's built-in Libuv loop.

The Result: Changes are detected instantly. The cache updates file-by-file in real-time, meaning commands like UEP files reflect the current state of your project immediately. No more manual toggling!

Note: If you want to stop the background monitoring, simply run UEP stop (UDEV stop_project).

That's it for the first update of 2026. I'm excited to keep pushing the boundaries of what Neovim can do for Game Devs this year.

Happy coding!

Top comments (0)