Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

popui.nvim

NeoVim UI sweetness.

What's popui all about?

It's a tiny (currently 910 LoC) UI suite designed to make your NeoVim workflow faster. It currently consists of six components:

  • ui-overrider: alternative to NeoVim's default vim.ui.select menu
  • input-overrider: alternative to NeoVim's default vim.ui.input prompt
  • buffers-manager: utility to quickly switch to, split-open or close open buffers
  • 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

Buffers manager

(Displays all open buffers. The first nine are bound to a number, shown on the left of their name.)
Key Action
Cr open the highlighted buffer
C-v open the highlighted buffer in a split to the right
C-s (or C-x) open the highlighted buffer in a split below
x or d close the highlighted buffer (refused if it has unsaved changes)
<number> open that buffer straight away, without navigating the list
v<number> open that buffer in a split to the right
s<number> open that buffer in a split below
┌───────────────────────────────┐
│1  lua/popui/core.lua          │
│2  lua/popui/marks-manager.lua │
│3  README.md                   │
│4  [No Name]                   │
└───────────────────────────────┘

Buffers with unsaved changes are marked with [+].

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", ",b", ':lua require"popui.buffers-manager"()<CR>', { noremap = true, silent = true })
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!

Contributors

Languages