Home Explore Blog CI



neovim

7th chunk of `runtime/doc/news-0.10.txt`
3d36290b115458c54edbed5aa2166044e97e782bbba8f5bf0000000100000b2d

  • Bundled parser and queries (highlight, folds) for Markdown (used for LSP
    hover).
  • |:InspectTree| shows root nodes.
  • |:InspectTree| now supports |folding|.
  • |:InspectTree| shows node ranges in 0-based instead of 1-based indexing.
  • |vim.treesitter.foldexpr()| now recognizes folds captured using a
    quantified query pattern.
  • |vim.treesitter.query.omnifunc()| provides completion in treesitter query
    files (set by default).
  • |vim.treesitter.query.edit()| provides live editing of treesitter queries.
  • |Query:iter_matches()| now has the ability to set the maximum start depth
    for matches.
  • `@injection.language` now has smarter resolution and will fall back to
    language aliases (e.g., filetype or custom shorthands) registered via
    |vim.treesitter.language.register()| and/or attempt lower case variants of
    the text.
  • `@injection.filename` will try to match the node text via
    |vim.filetype.match()| and treat the result as a language name in the same
    way as `@injection.language`.
  • The `#set!` directive supports `injection.self` and `injection.parent` for
    injecting either the current node's language or the parent
    |LanguageTree|'s language, respectively.
  • The `#set!` directive can set the "url" property of a node to have the
    node emit a hyperlink. Hyperlinks are UI specific: in the TUI, the OSC 8
    control sequence is used.
  • Improved error messages for query parsing.

• TUI:
  • Builtin TUI can now recognize "super" (|<D-|) and "meta" (|<T-|) modifiers
    in a terminal emulator that supports |tui-csiu|.
  • The |TermResponse| event can be used with |v:termresponse| to read escape
    sequence responses from the host terminal.
  • A clipboard provider which uses OSC 52 to copy the selection to the system
    clipboard is now bundled by default and will be automatically enabled under
    certain conditions. |clipboard-osc52|
  • 'termsync' option asks the host terminal to buffer screen updates until
    the redraw cycle is complete. Requires support from the host terminal.

• UI:
  • Enhanced support for rendering multibyte characters using composing
    characters: the maximum limit was increased from 1+6 codepoints to
    31 bytes, which is guaranteed to fit all chars from before but often more.
    • NOTE: the regexp engine still has a hard-coded limit of considering
      6 composing chars only.


==============================================================================
CHANGED FEATURES

These existing features changed their behavior.

• API:
  • |nvim_buf_call()| and |nvim_win_call()| now preserve any return value (NB:
    not multiple return values)

• Editor:
  • |gx| now uses |vim.ui.open()| and not netrw. To customize, you can redefine
    `vim.ui.open` or remap `gx`. To continue

Title: Nvim 0.10 Release Notes: Treesitter, TUI, UI and Changed Features
Summary
Nvim 0.10 updates Treesitter with bundled Markdown support, enhanced `:InspectTree` features, fold expression recognition, query completion/editing, match iteration control, injection language resolution, and hyperlink support via `#set!` directive, along with improved query parsing error messages. The TUI now recognizes "super" and "meta" modifiers, supports reading escape sequence responses from the host terminal using `TermResponse`, bundles an OSC 52 clipboard provider, and introduces the 'termsync' option. The UI improves multibyte character rendering with an increased codepoint limit. Changed features include `nvim_buf_call()` and `nvim_win_call()` preserving return values, and `gx` using `vim.ui.open()` instead of netrw.