Introduction
Hello! I’m a developer who is frantically building plugins to make Neovim the most comfortable environment for Unreal Engine development.
My goal is to make Neovim function just like a full-fledged IDE (like Rider or Visual Studio) for UE5.
In this week's update, I've added a feature to instantly visualize the complex "Config (.ini)" hierarchy—a headache for every UE developer—and navigation features to boost coding speed.
⚠ Important: 1. Update tree-sitter-unreal-cpp
This step is mandatory to use the new features.
I have updated the parser to improve the accuracy of Unreal C++ analysis. However, due to how Treesitter works, you need to manually update the revision number in your configuration.
For features like AActor class analysis, the Symbols View, and the new Goto Super (described below) to work correctly, please overwrite your plugin config with the following settings (The Wiki has also been updated):
{
'nvim-treesitter/nvim-treesitter',
branch = "main",
config = function(_, opts)
vim.api.nvim_create_autocmd('User', { pattern = 'TSUpdate',
callback = function()
local parsers = require('nvim-treesitter.parsers')
parsers.cpp = {
install_info = {
url = 'https://github.com/taku25/tree-sitter-unreal-cpp',
-- Please update from the old hash (89f34...) to the one below:
revision = '67198f1b35e052c6dbd587492ad53168d18a19a8',
},
}
parsers.ushader = {
install_info = {
url = 'https://github.com/taku25/tree-sitter-unreal-shader',
revision = '26f0617475bb5d5accb4d55bd4cc5facbca81bbd',
},
}
end
})
-- (Other installation settings...)
end
}
2. [Killer Feature] Config Explorer: Escape from Config Hell
The Unreal Engine Config (.ini) system is powerful but incredibly complex.
It starts with Engine/Config/Base.ini, then Project/Config/DefaultEngine.ini, overrides by WindowsEngine.ini, and even further overrides by DeviceProfiles...
"In the end, what is the actual final value of this parameter?" "Where was it overwritten?"
Have you ever gotten lost tracking this down?
To solve this, I implemented the Config Explorer.
Features:
- Hierarchy View: Displays config values relevant to your project in a tree structure organized by platform.
-
Visualizing Inheritance: It merges and displays not just
Defaultsettings, but also platform-specific settings (Windows,Android,iOS) and even Device Profiles (likeAndroid_Low). - History Tracking: You can track the history of a parameter: "In which file, on which line, and how was it changed (Overwritten, Added, Deleted)?"
-
Jump to Source: Select a history entry to instantly jump to the definition line in the original
.inifile.
↑ It analyzes the actual project INIs and displays the final value and override history in one shot.
3. Implement Virtual: Auto-generate Overrides
When overriding a virtual function in a parent class in C++, copying and pasting the signature between header files is tedious.
I've implemented the "Override function..." feature found in Rider and VS into Neovim.
- It traverses the inheritance chain of the current class and lists available
virtualfunctions. - Simply pick one from the list, and it adds the declaration (with
override) to the header and copies the implementation code (withSuper::Call) to your clipboard.
4. Goto Super Definition / Implementation
"How was this function implemented in the parent class?"
To find out, we used to have to grep or trace the LSP hierarchy. Now, it's just one command.
-
:UDEV goto_super_def: Jump to the parent class function definition (Header). -
:UDEV goto_super_impl: Jump to the parent class implementation (Source).
It recognizes the function name at the cursor, intelligently searches the inheritance tree, and jumps.
5. Symbols View Optimization (Lazy Initialization)
As projects grew larger, the initialization cost of the Symbol Tree (Class/Function view) started to become noticeable.
In this update, I completely refactored the architecture to perform analysis and initialization only at the moment it is needed (Lazy Loading).
This significantly improves Neovim startup time and file opening response.
6. Other Improvements
Small but useful fixes:
- UCM switch: Added support for file paths in
Engine/Classes. - UEP find_parents: Added support for
UObject(making the inheritance tree much clearer). - UEP tree: Fixed a bug where project files inside Plugins were hidden.
- UNL: Added
.inifile parsing capability and standardized the C++ parser logic.
Conclusion
With this week's updates, Neovim is getting closer to a true "Unreal Engine Specialized IDE."
I believe the Config Explorer, in particular, is a unique feature not standard even in commercial IDEs.
If you find this useful or want to support the project, please check out the repositories.
While the number of Clones is increasing (yay!), the Star count is still a bit lonely (lol). Your Stars give me the motivation to develop the next feature!
[Links to Repositories]
- UnrealDev.nvim (Integration Plugin): https://github.com/taku25/UnrealDev.nvim
- UEP.nvim (Analysis Engine): https://github.com/taku25/UEP.nvim
- UNX.nvim (UI Explorer): https://github.com/taku25/UNX.nvim



Top comments (0)