Home Explore Blog CI



neovim

3rd chunk of `runtime/doc/news-0.10.txt`
aa29cfa9ec7514c244eff7107c2f5fa7ed669b46448a96870000000100000ff3
 |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()|

Title: Nvim 0.10 Release Notes: New Features (API, Defaults)
Summary
This section details new features in Nvim 0.10, starting with API enhancements: retrieving channel info, setting inline virtual text, computing text height, a new RPC client type, hiding floating windows, new mouse buttons, "force_crlf" option, setting tabpage windows, abbreviation support in mappings, floating window footers, URL highlight attributes for extmarks, opening normal/split windows, and new flags for `nvim_buf_set_extmark()`. Extmark support extends to multi-line ranges. Defaults changes include enabling `workspace/didChangeWatchedFiles` on Mac/Windows, 'isfname' adjustments, additions to 'comments'/'shortmess', 'grepprg' updates, default diagnostic navigation mappings, and changes to |vim.lsp.start()|.