telescope-quickui.nvim
April 8, 2026 ยท View on GitHub
A Telescope extension for quickui.nvim.
Exposes your quickui menubar structure as a fuzzy-searchable Telescope 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
- Neovim 0.10+
- quickui.nvim
- telescope.nvim
Installation
lazy.nvim
{
"mjmjm0101/telescope-quickui.nvim",
dependencies = {
"mjmjm0101/quickui.nvim",
"nvim-telescope/telescope.nvim",
},
config = function()
require("telescope").load_extension("quickui")
end,
}
packer.nvim
use({
"mjmjm0101/telescope-quickui.nvim",
requires = {
"mjmjm0101/quickui.nvim",
"nvim-telescope/telescope.nvim",
},
config = function()
require("telescope").load_extension("quickui")
end,
})
vim-plug
Plug 'mjmjm0101/quickui.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'mjmjm0101/telescope-quickui.nvim'
Then in your Lua config:
require("telescope").load_extension("quickui")
Configuration
Pass options through Telescope's extensions table in your telescope.setup() call:
require("telescope").setup({
extensions = {
quickui = {
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("telescope").extensions.quickui.open()
Or via command:
:Telescope quickui
Bind it to a key:
vim.keymap.set("n", "<leader>/", require("telescope").extensions.quickui.open)
Telescope picker options can be passed directly:
require("telescope").extensions.quickui.open({
layout_strategy = "cursor",
})
To apply a theme, use Telescope's theme helpers:
local themes = require("telescope.themes")
require("telescope").extensions.quickui.open(themes.get_ivy())
Highlight Groups
The picker uses the following Telescope highlight groups. Override them to customize the appearance.
| Group | Column | Default link |
|---|---|---|
TelescopeResultsIdentifier | Type (e.g. File, Git) | Identifier |
TelescopeResultsNormal | Label | TelescopeNormal |
TelescopeResultsComment | 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
filetypeandcwdreflect the buffer that triggered the picker.
License
MIT