Skip to content

Releases: liamrlawrence/repossession.nvim

v0.7.3

Choose a tag to compare

@liamrlawrence liamrlawrence released this 25 Jun 18:35

Features

  • RepossessionSwitchPre now fires on quit. Previously the event only fired when switching between sessions. It now also fires on Neovim exit (with new_session = nil in 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 :ls and got written into the new session on the next save. Switching now wipes buffers before loading the incoming session. (0ccca7f)
  • ignore_filetypes buffers are stripped before the session is saved. Buffers whose filetype is listed in ignore_filetypes are 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 full mksession write, dozens per load. Autocmds are now installed after the source, so a restore produces no redundant saves. (d4c2853)

v0.7.2

Choose a tag to compare

@liamrlawrence liamrlawrence released this 16 Jun 13:26

Bug Fixes

  • Renaming the active session no longer leaves a duplicate behind

v0.7.1

Choose a tag to compare

@liamrlawrence liamrlawrence released this 11 Jun 16:03

Features

Session switch events — repossession now fires User autocmd events
around every session switch, so plugins and config can react:

  • RepossessionSwitchPre fires 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.
  • RepossessionSwitchPost fires 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

Choose a tag to compare

@liamrlawrence liamrlawrence released this 09 Jun 21:18

Features

  • add ignore_filetypes to drop unrestorable buffers before load

v0.6.1

Choose a tag to compare

@liamrlawrence liamrlawrence released this 09 Jun 06:11

Improvements

  • Update README
  • Minor change to toggle text

v0.6.0

Choose a tag to compare

@liamrlawrence liamrlawrence released this 08 Jun 22:36

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 Y as well as y.

v0.5.14

Choose a tag to compare

@liamrlawrence liamrlawrence released this 04 Jun 16:00

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 = or nvim ,) 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

Choose a tag to compare

@liamrlawrence liamrlawrence released this 03 Jun 23:44

Bug Fixes

  • Unnamed buffers with unsaved changes now block session switching

v0.5.12

Choose a tag to compare

@liamrlawrence liamrlawrence released this 03 Jun 17:15

Improvements

  • All vim.notify calls now pass the plugin name via the title field rather than prefixing the message body

v0.5.11

Choose a tag to compare

@liamrlawrence liamrlawrence released this 03 Jun 04:26

Bug Fixes

  • Cancelling input during session rename no longer errors