Menu ui for neovim ( supports nested menus )
simplescreenrecorder-2024-10-05_19.06.12.mp4
{ "nvzone/volt" , lazy=true },
{ "nvzone/menu" , lazy=true },require("menu").open(options, opts) - options is a table or string, if string then it will look at the table from menus* module of this repo
- opts : { mouse = true, border = false }"
- Use
hlto move between windows - Use
qto close the window - Press the keybind defined for menu item or scroll to it and press enter, to execute it
- Keyboard users can run the mapping when inside the menu, mouse users can click.
-- Keyboard usersvim.keymap.set("n", "<C-t>", function()
require("menu").open("default")
end, {})
-- mouse users + nvimtree users!vim.keymap.set({ "n", "v" }, "<RightMouse>", function()
require('menu.utils').delete_old_menus()
vim.cmd.exec'"normal! \\<RightMouse>"'-- clicked buflocalbuf=vim.api.nvim_win_get_buf(vim.fn.getmousepos().winid)
localoptions=vim.bo[buf].ft=="NvimTree" and"nvimtree" or"default"require("menu").open(options, { mouse=true })
end, {})Check example of defaults menu to see know syntax of options table.
If you like NvChad or its plugins and would like to support it via donation


