Releases: liamrlawrence/repossession.nvim
Release list
v0.7.3
Features
RepossessionSwitchPrenow fires on quit. Previously the event only fired when switching between sessions. It now also fires on Neovim exit (withnew_session = nilin the event data), so cleanup handlers that close ephemeral UI run before the final save on quit — not just on switch. (a9e7d6b)
Fixes
- Old session buffers no longer linger after a switch. Sourcing a session restored windows and tabs but didn't clear the existing buffer list, so the previous session's buffers stayed in
:lsand got written into the new session on the next save. Switching now wipes buffers before loading the incoming session. (0ccca7f) ignore_filetypesbuffers are stripped before the session is saved. Buffers whose filetype is listed inignore_filetypesare now dropped before the session file is written. That way they're excluded from the persisted session instead of being saved and failing to restore. (0432b88)- Plugged buffer leaks from the sentinel arglist and the picker. The startup sentinel (
=/,) argument and the session-picker floating buffer could leak into the buffer list/arglist; these are now cleaned up. (1bd00f4)
Performance
- Eliminated the autosave storm during session restore. The autosave autocmd was installed before sourcing the session, so replaying the restore fired a
Buf*/Win*/Tab*event for every restored element — each triggering a fullmksessionwrite, dozens per load. Autocmds are now installed after the source, so a restore produces no redundant saves. (d4c2853)
v0.7.2
Bug Fixes
- Renaming the active session no longer leaves a duplicate behind
v0.7.1
Features
Session switch events — repossession now fires User autocmd events
around every session switch, so plugins and config can react:
RepossessionSwitchPrefires before a switch, while the old session is
still active. Handlers run synchronously, and the outgoing session is
saved one final time after they complete — making Pre the place to
close windows and delete buffers that shouldn't be recorded in the
session file.RepossessionSwitchPostfires after the new session has loaded and the
cwd has changed.
Both events carry a data table identifying the sessions involved.
Pre is skipped on the initial startup load; Post fires alone.
See the Events section of the README.
v0.7.0
Features
- add ignore_filetypes to drop unrestorable buffers before load
v0.6.1
Improvements
- Update README
- Minor change to toggle text
v0.6.0
Features
:Repossession last— toggle back to the previously active session.
Suggested keymap:
vim.keymap.set("n", "<leader>rl", "<cmd>Repossession last<cr>", { desc = "Toggle to last session" })Changed
- Picker actions occur while the window is open, rather than closed.
- New sessions don't reopen the picker automatically.
- Delete confirmation accepts
Yas well asy.
v0.5.14
Bug Fixes
-
Fixed a startup conflict with lazy.nvim: whenever lazy opened its floating
install window on startup (a first launch, after adding a new plugin, or any
sync that installs/updates), loading the session with a sentinel argument
(nvim =ornvim ,) could clobber that float by restoring the session's
window layout over it. Session loading now waits for the lazy window to
close first. -
Fixed the git-sentinel startup path (
nvim ,) passing a boolean rather than
the repository root when activating the session, which could cause the
working-directory change to fail.
v0.5.13
Bug Fixes
- Unnamed buffers with unsaved changes now block session switching
v0.5.12
Improvements
- All
vim.notifycalls now pass the plugin name via thetitlefield rather than prefixing the message body
v0.5.11
Bug Fixes
- Cancelling input during session rename no longer errors