Home Explore Blog CI



neovim

4th chunk of `runtime/doc/news-0.9.txt`
9f61804d19690962db73b9a9f6acae2635321813d876c2e90000000100000fa4
 add new behavior.

• 'exrc' now supports `.nvim.lua` file.
• 'exrc' is no longer marked deprecated.

• The |TUI| is changed to run in a separate process (previously, a separate
  thread was used). This is not supposed to be a visible change to the user,
  but might be the cause of subtle changes of behavior and bugs.

  Previously, the TUI could be disabled as a build time feature (+tui/-tui),
  resulting in a nvim binary which only could be run headless or embedded
  in an external process. As of this version, TUI is always available.

• Vim's `has('gui_running')` is now supported as a way for plugins to check if
  a GUI (not the |TUI|) is attached to Nvim. |has()|

• |msgsep| is now always enabled even if 'display' doesn't contain the "msgsep"
  flag. It is no longer possible to scroll the whole screen when showing
  messages longer than 'cmdheight'.

• API calls now show more information about where an exception happened.

• The `win_viewport` UI event now contains information about virtual lines,
  meaning that smooth scrolling can now be implemented more consistently.

• The `:= {expr}` syntax can be used to evaluate a Lua expression, as
  a shorter form of `:lua ={expr}`. `:=` and `:[range]=` without argument
  are unchanged. However `:=#` and similar variants using |ex-flags|
  are no longer supported.

• Unsaved changes are now preserved rather than discarded when |channel-stdio|
  is closed.

• |nvim_open_win()| now accepts a relative `mouse` option to open a floating win
  relative to the mouse. Note that the mouse doesn't update frequently without
  setting `vim.o.mousemoveevent = true`

• |nvim_eval_statusline()| supports evaluating the 'statuscolumn' through a
  new `opts` field: `use_statuscol_lnum`.

• |nvim_buf_get_extmarks()| now accepts a -1 `ns_id` to request extmarks from
  all namespaces and adds the namespace id to the details array.
  Other missing properties have been added to the details array and marks can
  be filtered by type.

• |vim.diagnostic.open_float()| (and therefore |vim.diagnostic.config()|) now
  accepts a `suffix` option which, by default, renders LSP error codes.
  Similarly, the `virtual_text` configuration in |vim.diagnostic.config()| now
  has a `suffix` option which does nothing by default.

• |vim.fs.dir()| now has a `opts` argument with a depth field to allow
  recursively searching a directory tree.

• |vim.gsplit()| supports all features of |vim.split()|.

• |:highlight| now supports an additional attribute "altfont".

• |:Man| manpage viewer supports manpage names containing spaces.

• |nvim_select_popupmenu_item()| now supports |cmdline-completion| popup menu.

• |nvim_list_uis()| reports all |ui-option| fields.

• |nvim_get_option_value()| now has a `filetype` option so it can return the
  default option for a specific filetype.

• build: Several improvements were made to make the code generation scripts more
  deterministic, and a `LUA_GEN_PRG` build parameter has been introduced to
  allow for a workaround for some remaining reproducibility problems.

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

The following deprecated functions or APIs were removed.

• `filetype.vim` is removed in favor of |vim.filetype|
  (Note that filetype logic and tests still align with Vim, so additions or
  changes need to be contributed there first.)
  See https://github.com/neovim/neovim/pull/20674.

• 'hkmap', 'hkmapp' and 'aleph' options were removed. Use 'keymap' option instead.

• |LanguageTree:parse()| no longer returns changed regions. Please use the
  `on_changedtree` callbacks instead.

• `vim.highlight.create()`, `vim.highlight.link()` were removed, use |nvim_set_hl()| instead.

• `require'health'` was removed. Use |vim.health| instead.

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

See |deprecated-0.9|.

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

Title: Neovim 0.9: Continued API and Feature Changes
Summary
This section outlines changes and improvements to Neovim 0.9's APIs and features. Includes enhanced exrc support, TUI process separation, GUI attachment checks, message separation, detailed exception info, virtual line info in `win_viewport`, Lua expression evaluation syntax, and unsaved change preservation. New options for `nvim_open_win()`, `nvim_eval_statusline()`, and `nvim_buf_get_extmarks()` are detailed, alongside updates to diagnostic configurations, recursive directory searching, extended `vim.split()` features, highlighting attributes, manpage support, popup menu selection, and UI option reporting. Code generation improvements are noted. Deprecated functions and APIs are removed, see deprecated features list.