Skip to content
/ menu Public

Menu plugin for neovim ( supports nested menus ) made using volt

License

Notifications You must be signed in to change notification settings

nvzone/menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 

Repository files navigation

Menu

Menu ui for neovim ( supports nested menus )

image image image

simplescreenrecorder-2024-10-05_19.06.12.mp4

Install

{ "nvzone/volt" , lazy = true },
{ "nvzone/menu" , lazy = true },

Usage

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

For keyboard users

  • Use h l to move between windows
  • Use q to close the window
  • Press the keybind defined for menu item or scroll to it and press enter, to execute it

Examples

  • Keyboard users can run the mapping when inside the menu, mouse users can click.
-- Keyboard users
vim.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 buf
  local buf = vim.api.nvim_win_get_buf(vim.fn.getmousepos().winid)
  local options = 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.

đź’ť Support

If you like NvChad or its plugins and would like to support it via donation

kofi paypal buymeacoffee patreon