Home Explore Blog CI



neovim

8th chunk of `runtime/doc/news-0.11.txt`
b30d8f750b20d91752c92087a86a28dcc018fa43859d04540000000100000f13
 prefixed with "ui" instead of "?".
• The TUI will re-query the terminal's background color when a theme update
  notification is received and Nvim will update 'background' accordingly.

UI

• |:detach| the current UI, let the Nvim server continue running as a background
  process. Works with the builtin TUI, and all GUIs.
• |vim.ui.open()| (by default bound to |gx|) accepts an `opt.cmd` parameter
  which controls the tool used to open the given path or URL. If you want to
  globally set this, you can override vim.ui.open using the same approach
  described at |vim.paste()|.
• `vim.ui.open()` now supports
  [lemonade](https://github.com/lemonade-command/lemonade) as an option for
  opening urls/files. This is handy if you are in an ssh connection and use
  `lemonade`.
• The |ins-completion-menu| now supports cascading highlight styles.
  |hl-PmenuSel| and |hl-PmenuMatch| both inherit from |hl-Pmenu|, and
  |hl-PmenuMatchSel| inherits highlights from both |hl-PmenuSel| and
  |hl-PmenuMatch|.
• |vim.diagnostic.setqflist()| updates an existing quickfix list with the
  given title if found
• |ui-messages| content chunks now also contain the highlight group ID.
• |:checkhealth| can display in a floating window, controlled by the
  |g:health| variable.

VIMSCRIPT

• |getchar()| and |getcharstr()| have optional {opts} |Dict| argument to control:
  cursor behavior, return type, and whether to simplify the returned key.

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

These existing features changed their behavior.

• 'scrollbind' now works properly with buffers that contain virtual lines.

  Scrollbind works by aligning to a target top line of each window in a tab
  page. Previously this was done by calculating the difference between the old
  top line and the target top line, and scrolling by that amount. Now the
  top lines are calculated using screen line numbers which take virtual lines
  into account.

• The implementation of grapheme clusters (or combining chars |mbyte-combining|)
  was upgraded to closely follow extended grapheme clusters as defined by UAX#29
  in the unicode standard. Noteworthily, this enables proper display of many
  more emoji characters than before, including those encoded with multiple
  emoji codepoints combined with ZWJ (zero width joiner) codepoints.

  This also applies to :terminal output, where width of cells will be calculated
  using the upgraded implementation.

• Custom highlights in 'rulerformat', 'statuscolumn', 'statusline', 'tabline',
  'winbar', and the sign/number column are stacked with their respective
  highlight groups, as opposed to |hl-Normal|.
  This is also reflected in the `highlights` from |nvim_eval_statusline()|,
  with a new `groups` field containing an array of stacked highlight groups.

• |vim.on_key()| callbacks won't be invoked recursively when a callback itself
  consumes input.

• "q" in man pages now uses |CTRL-W_q| instead of |CTRL-W_c| to close the
  current window, and it no longer throws |E444| when there is only one window
  on the screen. Global variable `vim.g.pager` is removed.

• Default 'titlestring' is now implemented with 'statusline' "%" format items.
  This means the default, empty value is essentially an alias to:
  `%t%(\ %M%)%(\ \(%{expand(\"%:~:h\")}\)%)%a\ -\ Nvim`. This is only an
  implementation simplification, not a behavior change.

==============================================================================
REMOVED FEATURES

These deprecated features were removed.

• option `severity_limit` for `vim.lsp.diagnostic` (use `min=severity`
  instead |vim.diagnostic.severity|).

==============================================================================
DEPRECATIONS

See |deprecated-0.11|.

 vim:tw=78:ts=8:sw=2:et:ft=help:norl:

Title: Nvim 0.11: UI Updates, Vimsript Changes, and Feature Modifications
Summary
This section summarizes UI updates, Vimsript changes, modifications to existing features, removed features, and deprecations in Nvim 0.11. UI enhancements include diagnostic list updates, highlight group IDs in UI messages, and a floating window for `:checkhealth`. Vimsript changes concern optional arguments for `getchar()` and `getcharstr()`. Modified features include improvements to 'scrollbind', grapheme cluster handling, custom highlight stacking, `vim.on_key()` callback behavior, man page window closing, and default 'titlestring' implementation. The `severity_limit` option for `vim.lsp.diagnostic` has been removed, and there are several deprecations detailed in |deprecated-0.11|.