DEV Community

taku25
taku25

Posted on

[UnrealDev.nvim] Enhanced IDE Integration & Custom Actions (Weekly Update 2026/01/24)

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
},

Enter fullscreen mode Exit fullscreen mode

Note for Windows Users:
On Windows environments, .pipe is 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.

  1. Go to Settings -> Tools -> External Tools.
  2. Add a new tool with the following settings:
  3. Program: nvim.exe
  4. Arguments: --server \\.\pipe\UEP_nvim --remote-send "<C-\><C-n>:e $FilePath$<CR>:$LineNumber$<CR>zz"

rider setting

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)

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}\"", 
},

Enter fullscreen mode Exit fullscreen mode

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"
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

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)