Home Explore Blog CI



neovim

6th chunk of `runtime/doc/news-0.11.txt`
b39e2532c29edec13bbde821d400fb7b339d654494f426e60000000100000fe9
 de-duplicated (new requests cancel
  inflight requests). This greatly improves performance with slow LSP servers.
• 10x speedup for |vim.treesitter.foldexpr()| (when no parser exists for the
  buffer).
• Strong |treesitter-query| caching makes repeat  |vim.treesitter.query.get()|
  and |vim.treesitter.query.parse()| calls significantly faster for large
  queries.
• Treesitter highlighting is now asynchronous. To force synchronous parsing,
  use `vim.g._ts_force_sync_parsing = true`.
• Treesitter folding is now calculated asynchronously.
• |LanguageTree:parse()| now only runs the injection query on the provided
  range (as long as the language does not have a combined injection),
  significantly improving |treesitter-highlight| performance.
• Treesitter injection query iteration is now asynchronous, making edits in
  large buffers with combined injections much quicker.
• 10x reduction in blocking time when attaching an LSP to a large buffer.

PLUGINS

• EditorConfig
  • spelling_language property is now supported.
• 'inccommand' incremental preview can run on 'nomodifiable' buffers and
  restores their 'modifiable' state
• Commenting
  • 'commentstring' values can now be specified in a Treesitter capture's
    `bo.commentstring` metadata field, providing finer grained support for
    languages like `JSX`.

STARTUP

• |-es| ("script mode") disables shada by default.
• Nvim will fail if the |--listen| or |$NVIM_LISTEN_ADDRESS| address is
  invalid, instead of silently skipping an invalid address.

TERMINAL

• The |terminal| now understands the OSC 52 escape sequence to write to the
  system clipboard (copy). Querying with OSC 52 (paste) is not supported.
• |hl-StatusLineTerm| and |hl-StatusLineTermNC| define highlights for the
  status line in |terminal| windows.
• The terminal buffer now supports reflow (wrapped lines adapt when the buffer
  is resized horizontally). Note: Lines that are not visible and kept in
  'scrollback' are not reflown.
• The |terminal| now supports OSC 8 escape sequences and will display
  hyperlinks in supporting host terminals.
• The |terminal| now uses the actual cursor, rather than a "virtual" cursor.
  This means that escape codes sent by applications running in a terminal
  buffer can change the cursor shape and visibility. However, it also
  means that the |TermCursorNC| highlight group is no longer supported: an
  unfocused terminal window will have no cursor at all (so there is nothing to
  highlight).
• |jobstart()| gained the "term" flag.
• The |terminal| will send theme update notifications when 'background' is
  changed and DEC mode 2031 is enabled.
• The |terminal| has experimental support for the Kitty keyboard protocol
  (sometimes called "CSI u" key encoding). Only the "Disambiguate escape
  codes" mode is currently supported.
• The |terminal| emits a |TermRequest| autocommand event when the child process
  emits an APC control sequence.
• |TermRequest| has a "cursor" field in its |event-data| indicating the
  cursor position when the sequence was received.

TREESITTER

• |LanguageTree:node_for_range()| gets anonymous and named nodes for a range
• |vim.treesitter.get_node()| now takes an option `include_anonymous`, default
  false, which allows it to return anonymous nodes as well as named nodes.
• |treesitter-directive-trim!| can trim all whitespace (not just empty lines)
  from both sides of a node.
• |vim.treesitter.get_captures_at_pos()| now returns the `id` of each capture
• New |TSNode:child_with_descendant()|, which efficiently gets the node's
  child that contains a given node as descendant.
• |LanguageTree:parse()| optionally supports asynchronous invocation, which is
  activated by passing the `on_parse` callback parameter.
• |vim.treesitter.query.set()| can now inherit and/or extend runtime file
  queries in addition to overriding.
• |LanguageTree:is_valid()| now accepts a range parameter to narrow the scope
  of the validity check.
• |:InspectTree| now shows which nodes are missing.

Title: Nvim 0.11: Plugins, Startup, Terminal and Treesitter Enhancements
Summary
This section details enhancements in Nvim 0.11 across plugins, startup behavior, terminal features, and Treesitter integration. EditorConfig now supports the spelling_language property. The 'inccommand' previews can run on 'nomodifiable' buffers. 'commentstring' values can be specified in a Treesitter capture's metadata. Nvim now fails if the listen address is invalid. The terminal understands OSC 52, supports reflow, and displays hyperlinks. Treesitter improvements include new functions and options for node selection, trimming, capture identification, and asynchronous parsing.