Skip to content

taku25/UnrealDev.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

120 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UnrealDev.nvim

Unreal Engine Development Sweet πŸ’“ Neovim

screenshot-20251122-191958

UnrealDev.nvim is a thin wrapper plugin that integrates the functionality of the Unreal Neovim Plugin Sweet suite (UEP, UBT, UCM, ULG, USH, UEA, UNX, UDB) into a single global command, :UDEV.

Its purpose is to simplify the setup of each plugin and allow all Unreal Engine-related operations to be called from a single interface.

English | ζ—₯本θͺž (Japanese)

GitHub stars Qiita Dev.to


Introduction to Some Features

image UDEV refresh
image UDEV gencompiledb
image UDEV tree
image UDEV symbols
image UDEV build & error
image UDEV new class
image UDEV classes
image UDEV config_grep

many other features


⚑ Development Status & Architecture

Note UnrealDev.nvim acts as a meta-plugin (wrapper) for the Unreal Engine development suite. While this specific repository primarily handles orchestration, the core features are actively developed and updated frequently in the individual modules listed below.

πŸ“š Detailed Documentation (Wiki)

Detailed installation instructions, configuration, command lists, and API usage examples are all available on the GitHub Wiki.

Please refer to the wiki first when setting up or customizing.


✨ Features

  • Unified Command Interface:
    • Call all detected plugin functions from the suite (project exploration, build, class management, log viewing, shell operations, asset inspection) from the :UDEV command.
  • Automatic Feature Detection:
    • Auto-detects installed suite plugins (UEP, UBT, UCM, ULG, USH, UEA) via pcall and provides commands only for those that are available.
  • Unified API:
    • Access all available suite plugin API functions via require('UnrealDev.api'), making it easy to create keymaps and automation.

πŸ”§ Requirements

βœ… For a complete list of external tool requirements (like fd, rg) and recommended UI plugins (like telescope, neo-tree), please see the Wiki Installation Page.

πŸš€ Installation

Example installation for lazy.nvim. UnrealDev.nvim should be listed, and any suite plugins you want to use should be listed as well (they are no longer hard dependencies, but peers).

return {
  {
    'taku25/UnrealDev.nvim',
    -- Define all plugins in the development suite.
    -- You can remove any plugins you don't use.
    dependencies = {
      {
        'taku25/UNL.nvim', -- Core Library
        build = "cargo build --release --manifest-path scanner/Cargo.toml",
        lazy = false,
      },
      'taku25/UEP.nvim', -- Project Explorer
      'taku25/UEA.nvim', -- Asset (Blueprint) Inspector
      'taku25/UBT.nvim', -- Build Tool
      'taku25/UCM.nvim', -- Class Manager
      'taku25/ULG.nvim', -- Log Viewer
      'taku25/USH.nvim', -- Unreal Shell
      {
        'taku25/UNX.nvim', -- Logical View 
        dependencies = {
          "MunifTanjim/nui.nvim",
          "nvim-tree/nvim-web-devicons",
        },
      },
      'taku25/UDB.nvim', -- Debug
      {
        'taku25/USX.nvim', -- Syntax highlight
        lazy=false,
      },
      
      -- UI Plugins (Optional)
      'nvim-telescope/telescope.nvim',
      'j-hui/fidget.nvim',
      'nvim-lualine/lualine.nvim',
      {
        'romus204/tree-sitter-manager.nvim',
        opts = {
          ensure_installed = { "cpp", "ushader", "verse" },
          highlight        = { "cpp", "ushader", "verse" },
          border           = "rounded",
          languages = {
            cpp = {
              install_info = {
                url              = "https://github.com/taku25/tree-sitter-cpp",
                use_repo_queries = true,
              },
            },
            ushader = {
              install_info = {
                url              = 'https://github.com/taku25/tree-sitter-unreal-shader',
                use_repo_queries = true,
              },
            },
            verse = {
              install_info = {
                url              = 'https://github.com/taku25/tree-sitter-verse',
                use_repo_queries = true,
              },
            },
          },
        },
        config = function(_, opts)
          vim.filetype.add({
            extension = {
              verse = "verse",
              usf   = "ushader",
              ush   = "ushader",
            },
          })
          require("tree-sitter-manager").setup(opts)
          local group = vim.api.nvim_create_augroup('MyTreesitter', { clear = true })
          vim.api.nvim_create_autocmd('FileType', {
            group    = group,
            pattern  = opts.highlight,
            callback = function(args)
              vim.treesitter.start(args.buf)
            end,
          })
        end,
      }
      -- ...
    },
    opts = {
      -- Configuration specific to UnrealDev.nvim
      -- (e.g., disable setup for plugins you don't have)
      setup_modules = {
        UBT = true,
        UEP = true,
        ULG = true,
        USH = true,
        UCM = true,
        UEA = true,
        UNX = true,
      },
    },
  },

  -- ---
  -- Individual Plugin Settings (Optional)
  -- ---
  --{ 'taku25/UBT.nvim', opts = { ... } },
  --{ 'taku25/UEP.nvim', opts = { ... } },
  --{ 'taku25/UEA.nvim', opts = { ... } },
  -- ...
}

βœ… Verify Installation

After installation, run the following command to ensure all dependencies, external tools (fd, rg), and the custom tree-sitter parser are correctly set up:

:checkhealth UnrealDev

If you see any Errors or Warnings, please follow the advice displayed in the checkhealth output.

βœ… For a complete installation example including UI plugins, and detailed opts examples for each plugin (UEP, UBT, etc.), please see the Wiki Installation Guide.

βš™οΈ Configuration

Configuration for UnrealDev.nvim itself is minimal, such as the setup_modules table shown above.

Configuration for each plugin in the suite (UEP, UBT, etc.) is done by passing opts to each plugin's spec in lazy.nvim (see installation example above).

βœ… For detailed configuration options for each plugin, please refer to the Wiki Configuration Page or each plugin's individual README.

⚑ Usage

All commands start with :UDEV. Only commands for installed plugins will be available.

" ===== (Examples) ===== "

" Rescan the project (from UEP)
:UDEV refresh

" Find files (from UEP)
:UDEV files

" Build a target (from UBT)
:UDEV build

" Create a new class (from UCM)
:UDEV new MyNewActor AActor

" Switch header/source (from UCM)
:UDEV switch

" Start tailing a log (from ULG)
:UDEV start_log

" Find Blueprint usages (from UEA)
:UDEV find_bp_usages

βœ… For details on all UDEV subcommands, arguments, and command name conflicts (e.g., :UDEV class_delete), please see the Wiki Command Reference. (Note: Assuming the English page for Command_ja is Commands)

πŸ€– API & Automation Examples

You can access all available functions programmatically through the UnrealDev.api module. If a plugin is not installed, its API functions will simply be nil.

-- (Example) Map UCM's 'switch' function (safe check)
vim.keymap.set('n', '<leader>oo', function()
  local api = require('UnrealDev.api')
  if api.switch_file then
    api.switch_file({ current_file_path = vim.api.nvim_buf_get_name(0) })
  end
end, { noremap = true, silent = true, desc = "UDEV: Switch H/S file" })

-- (Example) Map UEP's 'files' function (safe check)
vim.keymap.set('n', '<leader>pf', function()
  local api = require('UnrealDev.api')
  if api.files then
    api.files({})
  end
end, { desc = "UDEV: Find project files" })

Others

Unreal Engine Related Plugins:

  • UnrealDev.nvim
    • Recommended: An all-in-one suite to install and manage all these Unreal Engine related plugins at once.
  • UNX.nvim
    • Standard: A dedicated explorer and sidebar optimized for Unreal Engine development. It visualizes project structure, class hierarchies, and profiling insights without depending on external file tree plugins.
  • UEP.nvim
    • Analyzes .uproject to simplify file navigation.
  • UEA.nvim
    • Finds Blueprint usages of C++ classes.
  • UBT.nvim
    • Use Build, GenerateClangDataBase, etc., asynchronously from Neovim.
  • UCM.nvim
    • Add or delete classes from Neovim.
  • ULG.nvim
    • View UE logs, LiveCoding, stat fps, etc., from Neovim.
  • USH.nvim
    • Interact with ushell from Neovim.
  • USX.nvim
    • Plugin for highlight settings for tree-sitter-unreal-cpp and tree-sitter-unreal-shader.
  • tree-sitter for Unreal Engine
    • Provides syntax highlighting using tree-sitter, including UCLASS, etc.
  • tree-sitter for Unreal Engine Shader
    • Provides syntax highlighting for Unreal Shaders like .usf, .ush.
  • blink-cmp-unreal
    • A completion source for blink-cmp, providing intelligent suggestions for Unreal Engine C++ using UEP.nvim database and tree-sitter.

πŸ“œ License

MIT License

Copyright (c) 2025 taku25

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

The Neovim suite for Unreal Engine development. Integrates plugins like UEP, UBT, ULG, UCM, and more for a unified experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages