Skip to content

mjmjm0101/fzf-lua-quickui.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fzf-lua-quickui.nvim

A fzf-lua integration for quickui.nvim.

Exposes your quickui menubar structure as a fuzzy-searchable fzf-lua picker. Search by your own menu names and categories — not by plugin command names.

File      New File
File      Recent > foo.lua
Git       Hunk > Stage        stage hunk under cursor
LSP       Symbol > Rename     rename symbol at cursor

🔍 Why combine quickui.nvim with a search UI?

Search-based workflows are powerful — but they assume you remember what to search for.

quickui.nvim organizes your tools into a structure you can navigate. By combining it with a search UI, you can search over your own categorized actions, not just command names.

This solves the common frustration of "not knowing what to type" and turns search into a complement to structure — not a replacement.

Requirements

Installation

lazy.nvim

{
  "mjmjm0101/fzf-lua-quickui.nvim",
  dependencies = {
    "mjmjm0101/quickui.nvim",
    "ibhagwan/fzf-lua",
  },
  config = function()
    require("fzf-lua-quickui").setup()
  end,
}

packer.nvim

use({
  "mjmjm0101/fzf-lua-quickui.nvim",
  requires = {
    "mjmjm0101/quickui.nvim",
    "ibhagwan/fzf-lua",
  },
  config = function()
    require("fzf-lua-quickui").setup()
  end,
})

vim-plug

Plug 'mjmjm0101/quickui.nvim'
Plug 'ibhagwan/fzf-lua'
Plug 'mjmjm0101/fzf-lua-quickui.nvim'

Then in your Lua config:

require("fzf-lua-quickui").setup()

Configuration

require("fzf-lua-quickui").setup({
  separator = " > ",  -- separator between label segments (default: " > ")
  show_rtxt = true,   -- show rtxt hints in the picker (default: true)
                      -- rtxt is always included in fuzzy search regardless
})

Usage

require("fzf-lua-quickui").open()

Or via command (registered by setup()):

:FzfLua quickui

Bind it to a key:

vim.keymap.set("n", "<leader>/", require("fzf-lua-quickui").open)

fzf-lua window options can be passed directly:

require("fzf-lua-quickui").open({
  prompt  = "Menu❯ ",
  winopts = { height = 0.4, width = 0.6 },
})

Colors

The picker derives ANSI colors from Neovim highlight groups at runtime, so the display adapts to your colorscheme.

Column Highlight group
Type (e.g. File, Git) Identifier
Label Terminal default
rtxt hint Comment

How it works

The picker calls require("quickui").get_entries(), which flattens the menubar registry into a list of { type, label, rtxt, cmd } entries evaluated against the current Neovim context (filetype, cwd). Conditions and filetype filters are applied before the list is returned, so only items valid for the current buffer are shown.

Selecting an entry executes the associated command:

  • String commands are sent via feedkeys.
  • Function commands are called with the context captured at picker-open time, so filetype and cwd reflect the buffer that triggered the picker.

License

MIT

About

Search over structured menus defined by quickui.nvim

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages