What's popui
all about?
It's a tiny (currently 584 LoC) UI suite designed to make your NeoVim workflow faster. It currently consists of four components:
ui-overrider
: alternative to NeoVim's defaultvim.ui.select
menuinput-overrider
: alternative to NeoVim's defaultvim.ui.input
promptdiagnostics-navigator
: utility to quickly navigate and jump to LSP diagnostics issues in the current buffermarks-manager
: utility to quickly navigate, jump to or remove (permanently!) uppercase marksreferences-navigator
: utility to quickly navigate and jump to project-wide references to the symbol under the cursor
See it in action below:
Code action menu popup
Variable renaming input popup
Diagnostics navigator
(Displays all diagnostic messages for the current buffer. Press `Cr` to jump to the currently highlighted diagnostic coordinates.)Marks manager
(Displays all uppercase marks. Press `Cr` to navigate to a mark's position, press `x` or `d` to permanently delete a mark.)References navigator
(Displays all found references, Press `Cr` to navigate to the reference's position)Installation
" Using vim-plug
Plug 'hood/popui.nvim'
" Using Vundle
Plugin 'hood/popui.nvim'
Setup
vim.ui.select = require"popui.ui-overrider"
vim.ui.input = require"popui.input-overrider"
vim.api.nvim_set_keymap("n", ",d", ':lua require"popui.diagnostics-navigator"()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", ",m", ':lua require"popui.marks-manager"()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", ",r", ':lua require"popui.references-navigator"()<CR>', { noremap = true, silent = true })
Customize border style
" Available styles: "sharp" | "rounded" | "double"
let g:popui_border_style = "double"
Customize highlight groups
hi PopuiCoordinates guifg=#6A1010 ctermfg=Red
hi PopuiDiagnosticsCodes guifg=#777777 ctermfg=Gray
Dependencies
- No dependencies baby!