UnrealDev.nvim Update: Switching to SQLite for Blazing Fast Performance
Source: Dev.to
Just in time for the end of the year, I’ve released a major update for UnrealDev.nvim!
Previously, UnrealDev.nvim (and its core, UEP.nvim) used JSON files to cache project information. For large Unreal Engine projects, the file I/O overhead of massive JSON files became a noticeable bottleneck. This update migrates the caching backend to SQLite, delivering significantly faster file navigation and project analysis.
Key Changes & Installation
- New Dependency:
sqlite.lua
The plugin now requires the following library:
kkharji/sqlite.lua
Important Note for Windows Users
sqlite.lua needs sqlite3.dll to function. Installing SQLite via package managers like winget may only provide the .exe without the required .dll.
Solution
- Download the Windows binaries (containing the DLL) directly from the SQLite Download Page.
- Configure the path in your
init.lua:
-- Example: Set path to sqlite3.dll
vim.g.sqlite_clib_path = "C:\\Users\\username\\path\\to\\sqlite3.dll"
Updated :checkhealth
The health check now verifies SQLite status. When everything is set up correctly, you should see output similar to:
UnrealDev: ✅
UnrealDev Dependencies ~
- ✅ OK Executable 'fd': Found (File finder)
- ✅ OK Executable 'rg': Found (Ripgrep text searcher)
- ✅ OK UNL.nvim: Installed (Core Library & Utilities)
- ✅ OK Plugin 'kkharji/sqlite.lua' found.
- ✅ OK Path configured: C:\Users\taku3\AppData\Local\Programs\sqlite\sqlite3.dll
- ✅ OK SQLite is working correctly! (In-memory DB test passed)
...
Command Unification
Several specific commands have been deprecated and merged into the main commands.
- Deprecated:
:UEP config_files,:UEP program_files,:UEP config_grep,:UEP program_grep - Merged into:
:UEP files,:UEP grep
The command arguments now support a new mode parameter:
:UEP files [scope] [mode] [deps_flag]
:UEP grep [scope] [mode] [deps_flag]
You can specify the file type using the mode argument (default is source).
Examples
" Find Config (.ini) files in Runtime modules
:UEP files runtime config
" Find source files for Programs (Tools) within the Game project
:UEP files game programs
" Find Shader (.usf/.ush) files in the Engine
:UEP files engine shader
This allows flexible filtering by combining scope and mode.
Note: Commands like :UEP module_files remain separate to keep the argument logic simple for module‑specific actions.