*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()|