• Stars
    star
    140
  • Rank 261,473 (Top 6 %)
  • Language
    Lua
  • Created about 3 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NeoVim UI sweetness.

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 default vim.ui.select menu
  • input-overrider: alternative to NeoVim's default vim.ui.input prompt
  • diagnostics-navigator: utility to quickly navigate and jump to LSP diagnostics issues in the current buffer
  • marks-manager: utility to quickly navigate, jump to or remove (permanently!) uppercase marks
  • references-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

Snapshot #1

Variable renaming input popup

Snapshot #2

Diagnostics navigator

(Displays all diagnostic messages for the current buffer. Press `Cr` to jump to the currently highlighted diagnostic coordinates.)

Snapshot #3

Marks manager

(Displays all uppercase marks. Press `Cr` to navigate to a mark's position, press `x` or `d` to permanently delete a mark.)

Snapshot #4

References navigator

(Displays all found references, Press `Cr` to navigate to the reference's position)

Snapshot #5

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!