|nvim_set_option_value()|) without
a scope, which means they now behave the same way as string options.
• Plugins:
• |:TOhtml| has been rewritten in Lua to support Nvim-specific decorations,
and many options have been removed.
• Treesitter:
• Treesitter highlight groups have been renamed to be more in line with
upstream tree-sitter and Helix to make it easier to share queries. The
full list is documented in |treesitter-highlight-groups|.
• TUI:
• In some cases, the cursor in the Nvim |TUI| used to blink even without
configuring 'guicursor' as mentioned in |cursor-blinking|. This was a bug
that has now been fixed. If your cursor has stopped blinking, add the
following (or similar, adapted to user preference) to your |config| file: >vim
set guicursor+=n-v-c:blinkon500-blinkoff500
<
==============================================================================
NEW FEATURES
The following new features were added.
• API:
• Passing 0 to |nvim_get_chan_info()| gets info about the current channel.
• |nvim_buf_set_extmark()| supports inline virtual text.
• |nvim_win_text_height()| computes the number of screen lines occupied
by a range of text in a given window.
• New RPC client type `msgpack-rpc` is added for |nvim_set_client_info()| to
support fully MessagePack-RPC compliant clients.
• Floating windows can now be hidden by setting `hide` in |nvim_open_win()| or
|nvim_win_set_config()|.
• |nvim_input_mouse()| supports mouse buttons "x1" and "x2".
• Added "force_crlf" option field in |nvim_open_term()|.
• Added |nvim_tabpage_set_win()| to set the current window of a tabpage.
• Mapping APIs now support abbreviations when mode short-name has suffix "a".
• Floating windows can now show footer with new `footer` and `footer_pos`
config fields. Uses |hl-FloatFooter| by default.
• |extmarks| can set a "url" highlight attribute, so the text region can
become a clickable hyperlink (assuming UI support). The TUI renders URLs
using the OSC 8 control sequence, enabling clickable text in supporting
terminals.
• |nvim_open_win()| and |nvim_win_set_config()| now support opening normal
(split) windows, moving floating windows into split windows, and opening
windows in non-current tabpages.
• Flags added to |nvim_buf_set_extmark()|:
• "undo_restore": opt-out extmarks of precise undo tracking.
• "invalidate": automatically hide or delete extmarks.
• "virt_text_repeat_linebreak": repeat virtual text on wrapped lines.
• Extmarks now fully support multi-line ranges, and a single extmark can be
used to highlight a range of arbitrary length. The |nvim_buf_set_extmark()|
API function already allowed you to define such ranges, but highlight
regions were not rendered consistently for a range that covers more than
one line break. This has now been fixed. Signs defined as part of
a multi-line extmark also apply to every line in the range, not just the
first. In addition, |nvim_buf_get_extmarks()| has gained an "overlap"
option to return such ranges even if they started before the specified
position.
• Defaults:
• The `workspace/didChangeWatchedFiles` LSP client capability is now enabled
by default on Mac and Windows. Disabled on Linux since there currently
isn't a viable backend for watching files that scales well for large
directories.
• On Windows 'isfname' does not include ":". Drive letters are handled
correctly without it. (Use |gF| for filepaths suffixed with ":line:col").
• 'comments' includes "fb:•".
• 'shortmess' includes the "C" flag.
• 'grepprg' uses the -H and -I flags for grep by default,
and defaults to using ripgrep if available.
• "]d" and "[d" in Normal mode map to |vim.diagnostic.goto_next()| and
|vim.diagnostic.goto_prev()|, respectively. |]d-default| |[d-default|
• <C-W>d (and <C-W><C-D>) map to |vim.diagnostic.open_float()|
|CTRL-W_d-default|
• |vim.lsp.start()|