Home Explore Blog CI



neovim

1st chunk of `runtime/doc/news-0.11.txt`
8c144f8fe1a0c213076666fcd5b60da53c6a743ae97ab0460000000100000fdd
*news-0.11.txt*    Nvim


                            NVIM REFERENCE MANUAL


Notable changes since Nvim 0.10                                 *news-0.11*

For changes in the previous release, see |news-0.10|.

                                       Type |gO| to see the table of contents.

==============================================================================
BREAKING CHANGES

These changes may require adaptations in your config or plugins.

API

• `vim.rpcnotify(0)` and `rpcnotify(0)` broadcast to ALL channels. Previously
  they would "multicast" only to subscribed channels (controlled by
  `nvim_subscribe()`). Plugins and clients that want "multicast" behavior must
  now maintain their own list of channels.
  • In the future, |vim.rpcnotify()| may accept a list of channels, if there
    is demand for this use-case.
• "Dictionary" was renamed to "Dict" internally and in the RPC |api-metadata|.
  This is not expected to break clients because there are no known clients
  that actually use the `return_type` field or the parameter type names
  reported by |--api-info| or |nvim_get_api_info()|.
• Renamed `nvim__id_dictionary` (unsupported/experimental API) to
  `nvim__id_dict`.

BUILD

• On Windows, only building with the UCRT runtime is supported.
• Translations are turned off by default. Enable by building Nvim with the
  CMake flag `ENABLE_TRANSLATIONS=ON`.

DIAGNOSTICS

• The "underline" diagnostics handler sorts diagnostics by severity when using
  the "severity_sort" option.
• Diagnostics are filtered by severity before being passed to a diagnostic
  handler |diagnostic-handlers|.
• The "virtual_text" handler is disabled by default. Enable with >lua
    vim.diagnostic.config({ virtual_text = true })
<
EDITOR

• The order in which signs are placed was changed. Higher priority signs will
  now appear left of lower priority signs.
• |hl-CurSearch| now behaves the same as Vim and no longer updates on every
  cursor movement.
• Moving in the buffer list using |:bnext| and similar commands behaves as
  documented and skips help buffers if run from a non-help buffer, otherwise
  it moves to another help buffer.
• Bells from a |terminal| buffer are now silent by default, unless 'belloff'
  option doesn't contain "term" or "all".
• Renamed autocmd group `nvim_swapfile` to `nvim.swapfile`. |default-autocmds|
  If you always want the swapfile dialog, delete the `nvim.swapfile` group:
  `autocmd! nvim.swapfile`.

EVENTS

• |vim.ui_attach()| callbacks for |ui-messages| `msg_show` events are executed in
  |api-fast| context.
• New/enhanced arguments in these existing UI events:
  • `cmdline_hide`: Includes `level` and `abort` arguments, `abort` argument indicating if the cmdline was aborted.
  • `cmdline_show`:
    • Prompts that were previously emitted as `msg_show` events, are now routed
      through `cmdline_show`.
    • `hl_id` argument to highlight the prompt text.
  • `msg_show`:
    • `history` argument indicating if the message was added to the history.
    • new message kinds: "bufwrite", "completion", "list_cmd", "lua_print",
      "search_cmd", "shell_out/err/ret", "undo", "verbose", wildlist".
• |TermRequest| and |TermResponse| |event-data| is now a table. The "sequence"
  field contains the received sequence. |TermRequest| also contains a "cursor"
  field indicating the cursor's position when the sequence was received.

HIGHLIGHTS

• |TermCursorNC| is removed and no longer supported. Unfocused terminals no
  longer have a cursor.

LSP

• |vim.lsp.buf.references()|, |vim.lsp.buf.declaration()|, |vim.lsp.buf.definition()|,
  |vim.lsp.buf.type_definition()|, |vim.lsp.buf.implementation()| and
  |vim.lsp.buf.hover()| now support merging the results of multiple clients
  but no longer trigger the global handlers from `vim.lsp.handlers`
• |vim.lsp.buf.typehierarchy()| now passes the correct params for each
  client request.
• |vim.lsp.handlers.signature_help()| is no longer used.
• |vim.lsp.diagnostic.on_publish_diagnostics()|

Title: Nvim 0.11 Notable Changes
Summary
This section details breaking changes in Nvim 0.11 that may require configuration or plugin adaptations. Key areas affected include API changes in `vim.rpcnotify()`, internal renaming of "Dictionary" to "Dict", and build system updates. Changes also affect diagnostics, editor behavior, UI events, highlights, and LSP client interactions.