<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/nvim/lua/config/pack.lua, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/nvim/lua/config/pack.lua?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/nvim/lua/config/pack.lua?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-20T12:56:08Z</updated>
<entry>
<title>fix(nvim): wrap vim.pack.update in :PackUpdate user command</title>
<updated>2026-05-20T12:56:08Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-20T12:56:08Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=0bdd2fe6a755c8bf6582ad2258921751cd14653e'/>
<id>urn:sha1:0bdd2fe6a755c8bf6582ad2258921751cd14653e</id>
<content type='text'>
nvim_create_user_command passes the callback a table with command
metadata (args, bang, ...). Newer neovim's vim.pack.update validates
its first arg as a list of names — that metadata table fails the
list check with 'names: expected list, got table'. Wrap it.
</content>
</entry>
<entry>
<title>refactor(nvim): keep PackUpdate confirm buffer visible</title>
<updated>2026-05-13T12:43:09Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=fc09c6d0a9616e8bbf43b65020bc8ba638ad13eb'/>
<id>urn:sha1:fc09c6d0a9616e8bbf43b65020bc8ba638ad13eb</id>
<content type='text'>
Auto-writing it defeated the purpose — no feedback on what changed.
Now :PackUpdate and :PackSync show the confirm buffer; user reviews
and :w to apply or :q to cancel. Matches vim.pack's intended UX.
</content>
</entry>
<entry>
<title>refactor(nvim): simplify PackUpdate — vim.pack.update is effectively sync</title>
<updated>2026-05-13T12:43:09Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=e83d5d1ef9476544e8843cc643c48f71c656375c'/>
<id>urn:sha1:e83d5d1ef9476544e8843cc643c48f71c656375c</id>
<content type='text'>
It drives its async git ops with internal vim.wait and makes the confirm
buffer current before returning. No need for a FileType autocmd: just
write the buffer if the filetype matches (guards the 'Nothing to update'
case where no buffer is created).
</content>
</entry>
<entry>
<title>fix(nvim): auto-confirm PackUpdate preview buffer instead of forcing</title>
<updated>2026-05-13T12:43:08Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=9ad73cc8504fb836bde7ded6a6c62669174b4c7c'/>
<id>urn:sha1:9ad73cc8504fb836bde7ded6a6c62669174b4c7c</id>
<content type='text'>
Using force=true hid all feedback. Now we let vim.pack.update open its
confirmation buffer (showing pending changes) and auto-:write it via a
one-shot FileType=nvim-pack autocmd. User sees what updated.
</content>
</entry>
<entry>
<title>feat(nvim): add :PackList to show managed plugins with rev and version</title>
<updated>2026-05-13T12:43:08Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=df6f39907ab219adfe4ce63556e1501eb9b51017'/>
<id>urn:sha1:df6f39907ab219adfe4ce63556e1501eb9b51017</id>
<content type='text'>
Uses vim.pack.get() and prints one line per plugin:
  ● (active) or ○ (orphan), name, short rev, version spec.
</content>
</entry>
<entry>
<title>feat(nvim): add :PackClean, :PackUpdate, :PackSync user commands</title>
<updated>2026-05-13T12:43:08Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=f2e2edad1b088b2fbaba49fb5a334434343fc972'/>
<id>urn:sha1:f2e2edad1b088b2fbaba49fb5a334434343fc972</id>
<content type='text'>
Wraps vim.pack for a more ergonomic workflow:

- :PackClean  - delete plugins no longer declared in vim.pack.add()
                (computed from vim.pack.get() where active == false)
- :PackUpdate - run vim.pack.update(nil, { force = true }); skips
                the confirmation buffer
- :PackSync   - :PackClean followed by :PackUpdate
</content>
</entry>
</feed>
