Neovim 0.12.5 is out. It is a maintenance release, so most of the
diff is fixes. One change matters: :restart now saves and restores your session, so you can actually pick up where
you left off.
#
Restart and restore your session
This is the change most people will feel. :restart without a bang now saves your session on shutdown and restores it on
startup, so your buffers, windows, and layout come back exactly as they
were. :restart! keeps the old
behaviour and restarts against an empty session.
Behaviour change
:restart used to ignore your
session. If you script restarts (for example in a keymap or a plugin),
check that you did not rely on the empty session. Reach for :restart! to keep the old semantics.
Related, v:startreason is now
set by :restart, so your
config can tell a restart apart from a normal launch and skip heavy
setup on the way back in.
#
LSP reuses the right client
The reuse_client predicate on
a config (see :help vim.lsp.config) now receives the target buffer. That matters in monorepos where
you want client-per-directory. You can finally make the decision
with the actual buffer in hand instead of guessing from the current
working directory.
#
Shada keeps more state
Two small persistence fixes round out the release: cleared registers
and cleared search patterns are now persisted to the shada file.
After a restart you no longer get ghost entries in :reg or a search prompt that still offers patterns you explicitly cleared.
What is shada?
shada (shared data) is Neovim's state file, the successor to Vim's .viminfo. It persists the jumplist, registers, search history, and marks
across sessions, so they survive a restart.
#
Stability fixes
The rest is the usual patch-release jumble: floating window
positioning and tabpage cleanup, a statuscolumn wrapping bug, unbounded tree-sitter fold ranges, and a couple of window-closing
crashes were all fixed. Tree-sitter was bumped to v0.26.13 and wasmtime
to v36.0.14.
#
Where to get the details
Run :help news inside Neovim
for the release notes. For the full per-fix list, the 0.12.5 release on GitHub links to the complete changelog.