UnrealDev.nvim Update: Switching to SQLite for Blazing Fast Performance

Published: (December 29, 2025 at 03:54 AM EST)
2 min read
Source: Dev.to

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

  1. 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.

Back to Blog

Related posts

Read more »