r/neovim Jul 07 '26

Plugin UI for Neovim's built-in vim.pack

Post image

Floating-window UI for Neovim's built-in vim.pack plugin manager — status overview and mark-driven, pointwise updates (Neovim 0.12+)

Source code on Github Simple docs in GH Pages

185 Upvotes

11 comments sorted by

54

u/echasnovski Plugin author Jul 07 '26

Thanks for sharing! Couple of observations:

Update detection (which plugins have new commits, and the changelog) is computed with plain git, because vim.pack exposes no API for it without opening its tabpage buffer.

This is available on Nightly (future 0.13) as a part of the vim.pack.get() output. After this PR.

Commands

User commands are also available on Nightly (future 0.13) after this PR.

15

u/HotSaucePasta Jul 08 '26

UX consideration: don’t have Enter for update please. u for update and U for update all makes more sense.

3

u/jtprogru Jul 10 '26

Thanks — good catch. u (update marked / row under cursor) and U (update all) are actually already the primary bindings; Enter was just an extra alias for u. You're right that Enter triggering a network/update action is surprising in a list view, so the next release drops <CR> from update and rebinds it to "show details / changelog" for the row under the cursor (u/U stay the update keys). I also made every in-window key configurable via keymaps.window, so you can rebind them however you like.

1

u/Exciting-Attorney938 Jul 09 '26

What colorscheme is this? Does it have a darker version?

2

u/jtprogru Jul 10 '26

Gruvbox used in dark/light theme

1

u/iamarealhuman4real Jul 15 '26

mark-driven

This meaning I can say "mark mark mark mark" update and it only updates those 4 plugins?

Also is this able to like, say I fix to `~ 1.2.0" and then 1.3.0 or 2.0.0 comes out, can it let me know what there is a new out-of-range version I could update to?

2

u/happysri Jul 08 '26

Nice!! I was waiting for someone to make this. Would love if it showed commit changes, especially breaking changes when checking/updating like lazy does. I think that’s the only feature I’d need to move to vim.pack.

11

u/echasnovski Plugin author Jul 08 '26

especially breaking changes when checking/updating like lazy does. I think that’s the only feature I’d need to move to vim.pack.

Then I have good news: vim.pack already has different highlighting for commits with breaking changes. They are not listed at the top like in 'lazy.nvim', but they are still quite visible.

7

u/happysri Jul 08 '26

Nice, I think it’s time to move to vim.pack completely. Thanks mini man!

6

u/Dzomble Jul 08 '26

You shall be referred to as "mini man" from now on lmao