Hello everyone! I am developing a suite of Neovim plugins for Unreal Engine development called taku25/unrealdev.nvim.
Here are the updates for this week! The main focus is on strengthening bi-directional integration with IDEs (like Rider) and enhancing UNX.nvim features.
1. UEP.nvim: Enhanced IDE Integration
Auto-start Neovim Server
I've updated UEP start to automatically launch the Neovim server.
This allows you to seamlessly open files in your currently running Neovim instance directly from your IDE (Rider, Visual Studio, etc.).
You can configure the server name in the UEP.nvim options:
server = {
enable = true,
name = "UEP_nvim", -- You can change the name here
},
Note for Windows Users:
On Windows environments,.pipeis automatically appended to the specified server name. Please keep this in mind when connecting from external tools.
Setup Example: Open in Neovim from JetBrains Rider
By adding an "External Tool" in Rider, you can jump to Neovim via the right-click menu.
- Go to Settings -> Tools -> External Tools.
- Add a new tool with the following settings:
-
Program:
nvim.exe -
Arguments:
--server \\.\pipe\UEP_nvim --remote-send "<C-\><C-n>:e $FilePath$<CR>:$LineNumber$<CR>zz"
What does this argument do?
It sends a command to Neovim to: "Exit Insert Mode -> Open the file -> Go to the specific line -> Center the screen."
(Insert your screenshot of Rider settings here)
2. UEP.nvim: Open IDE from Neovim (open_ide)
Conversely, I added a feature to open the file you are currently editing in Neovim directly in your IDE using UEP open_ide.
This command is fully configurable in your config. It defaults to Rider, but you can easily set it up for Visual Studio or VS Code.
ide = {
-- For Rider (Default)
open_command = "rider --line {line} \"{file}\"",
-- Example for VS Code
-- open_command = "code -g {file}:{line}",
-- Example for Visual Studio (Adjust the path to devenv as needed)
-- open_command = "devenv /edit {file} /command \"Edit.GoTo {line}\"",
},
3. UNX.nvim: Project Tree & Diff Enhancements
I also added some convenient features to UNX.nvim, which handles the UI.
Open in IDE from Project Tree
You can now press <C-o> on a file in the project tree to open it in your configured IDE (using the open_ide setting mentioned above).
Diff View Support
Pressing D on the project tree now displays the standard Neovim VCS diff. This is great for quickly checking changes.
Custom User Functions (Keymaps)
If the standard diff is hard to read, or if you want to run specific commands on a file, you can now define custom functions in your keymaps.
Define them in your config like this:
keymaps = {
custom = {
-- Key = Function to execute
["<leader>p"] = function(node)
-- 'node' contains file info for the current line
if node and node.path then
print("Selected file path: " .. node.path)
end
end,
-- You can also define it as a named action (for future extensions)
["<C-z>"] = {
action = function(node)
vim.notify("Custom action for: " .. (node.name or "unknown"))
end,
desc = "My custom notification"
}
}
}
What's Next?
Thatβs it for this week's updates.
For next week and beyond, I plan to work on expanding the Database (DB) features and implementing detailed analysis using Rust + Tree-sitter. My goal is to create a robust completion system that understands the specific structures of Unreal Engine, without relying solely on LSP.
Although it is still experimental, I have already started introducing a Rust program called scanner into UNL.nvim.
I will continue to add more features to make Unreal Engine development in Neovim the best experience possible!
Happy coding!


Top comments (0)