Plugin for using the Unreal Engine with neovim. I built it for my workflow, but maybe you'll get some use out of it!
Install with lazy
{
"zaucy/uproject.nvim",
dependencies = {
'nvim-lua/plenary.nvim',
'lewis6991/async.nvim',
"zaucy/perforce.nvim", -- optional (needed submit tool changelist selector)
"j-hui/fidget.nvim", -- optional
},
cmd = { "Uproject" },
opts = {},
-- uproject.nvim does not register any keymaps
-- here are some recommended ones
keys = {
{ "<leader>uu", "<cmd>Uproject show_output<cr>", desc = "Show last output" },
{ "<leader>uo", "<cmd>Uproject open<cr>", desc = "Open Unreal Editor" },
{ "<leader>uO", "<cmd>Uproject build wait open<cr>", desc = "Build and open Unreal Editor" },
{ "<leader>ur", "<cmd>Uproject reload show_output<cr>", desc = "Reload uproject" },
{ "<leader>up", "<cmd>Uproject play log_cmds=Log\\ Log<cr>", desc = "Play game" },
{ "<leader>uP", "<cmd>Uproject play debug log_cmds=Log\\ Log<cr>", desc = "Play game (debug)" },
{ "<leader>ub", "<cmd>Uproject build wait use_last_target<cr>", desc = "Build last" },
{ "<leader>uB", "<cmd>Uproject build wait<cr>", desc = "Build" },
},
}-- reload when directory changes
vim.api.nvim_create_autocmd("DirChanged", {
pattern = { "global" },
callback = function(ev)
require("uproject").uproject_reload(vim.v.event.cwd, {})
end,
})You can easily set up a custom keymap to collapse all normal lines in the uproject output buffer, leaving only the errors and warnings visible. Since uproject.nvim does not map keys for you, you can do this by hooking into the UprojectBufferCreated event:
vim.api.nvim_create_autocmd("User", {
pattern = "UprojectBufferCreated",
callback = function(ev)
vim.keymap.set("n", "E", function()
require("uproject").toggle_error_fold()
end, { buffer = ev.data.bufnr, desc = "Toggle Error/Warning Fold" })
end,
})