Skip to content

zaucy/uproject.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 

Repository files navigation

uproject.nvim

Plugin for using the Unreal Engine with neovim. I built it for my workflow, but maybe you'll get some use out of it!

⚠️ only works on Windows at this time

Install

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

Automatically refresh compile_commands

-- reload when directory changes
vim.api.nvim_create_autocmd("DirChanged", {
	pattern = { "global" },
	callback = function(ev)
		require("uproject").uproject_reload(vim.v.event.cwd, {})
	end,
})

Toggle Error Folds in Output Buffer

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

About

Unreal project support for neovim

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Contributors

Languages