Home Explore Blog CI



neovim

1st chunk of `runtime/doc/news-0.10.txt`
b3b0d12c99f5b305d31f7eb69a56e16cd939ba779a68bebb0000000100000fdf
*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

Title: Nvim 0.10 Release Notes: Breaking Changes
Summary
This section of the Nvim 0.10 release notes details the breaking changes that may require users to adapt their configurations or plugins. Key changes include API updates (specifically to `nvim_open_win()`), default color scheme changes, editor behavior modifications (window switching, mapping rules, macro recording), changes to sign handling (legacy signs as extmarks), removal of the `:behave` command, event handling changes, and LSP-related changes (parsing, snippet handling, codelens refreshing, and completion item extraction).