*news-0.10.txt* Nvim
NVIM REFERENCE MANUAL
Notable changes since Nvim 0.9 *news-0.10*
For changes in the previous release, see |news-0.9|.
Type |gO| to see the table of contents.
==============================================================================
BREAKING CHANGES
These changes may require adaptations in your config or plugins.
• API:
• |nvim_open_win()| now blocks all autocommands when `noautocmd` is set,
rather than just those from setting the `buffer` to display in the window.
• Defaults:
• Default color scheme has been updated to be "Nvim branded" and accessible.
Use `:colorscheme vim` to revert to the old legacy color scheme.
• These Nvim specific highlight groups are now defined in a meaningfully
different way and might need an update:
• |hl-FloatBorder| is linked to |hl-NormalFloat| instead of |hl-WinSeparator|.
• |hl-NormalFloat| is not linked to |hl-Pmenu|.
• |hl-WinBar| has different background.
• |hl-WinBarNC| is similar to |hl-WinBar| but not bold.
• |hl-WinSeparator| is linked to |hl-Normal| instead of |hl-VertSplit|.
• This also might result into some color schemes looking differently due
to them relying on implicit assumptions about how highlight groups are
defined by default. To account for this, define all attributes of
highlight groups explicitly. Alternatively, use `:colorscheme vim` or
`:source $VIMRUNTIME/colors/vim.lua` to restore previous definitions.
• 'termguicolors' is enabled by default when Nvim is able to determine that
the host terminal emulator supports 24-bit color.
• Editor:
• When switching windows, |CursorMoved| autocommands trigger when Nvim is
back on the main loop rather than immediately. This is more compatible
with Vim.
• "#" followed by a digit no longer stands for a function key at the start
of the lhs of a mapping.
• |shm-q| now fully hides macro recording message instead of only shortening it.
• Signs placed through the legacy |sign-commands| are now stored and
displayed as |extmarks| internally. Along with the following changes:
• A sign placed twice in the same group with the same identifier will be
moved.
• Legacy signs are always deleted along with the line it is placed on.
• Legacy and extmark signs will show up in both |:sign-place-list| and
|nvim_buf_get_extmarks()|.
• Legacy and extmark signs are displayed and listed with the same priority:
line number -> priority -> sign id -> recently placed
• `:behave` was removed.
• If you used `:behave xterm`, the following is equivalent: >vim
set mousemodel=extend
<
• If you used `:behave mswin`, the following is equivalent: >vim
set selection=exclusive
set selectmode=mouse,key
set mousemodel=popup
set keymodel=startsel,stopsel
<
• Events:
• Returning any truthy value from a callback passed to
|nvim_create_autocmd()| (rather than just `true`) will delete the
autocommand.
• LSP:
• |LanguageTree:parse()| will no longer parse injections by default and now
requires an explicit range argument to be passed. If injections are
required, provide an explicit range via `parser:parse({ start_row, end_row })`.
• |vim.lsp.util.parse_snippet()| will now strictly follow the snippet
grammar defined by LSP, and hence previously parsed snippets might now be
considered invalid input.
• |vim.lsp.codelens.refresh()| now takes an `opts` argument. With this
change, the default behavior of just refreshing the current buffer has
been replaced by refreshing all buffers.
• |vim.lsp.util.extract_completion_items()| will no longer return reliable
results, since it does not apply `itemDefaults` when its input is
a `CompletionList`. Moreover, since support for LSP
`completionList.itemDefaults` was added, some