Home Explore Blog CI



neovim

1st chunk of `runtime/doc/news-0.9.txt`
5d05d0ad26cac3be3ef0837cf375e53e717676138f71ddd70000000100000fca
*news-0.9.txt*    Nvim


                            NVIM REFERENCE MANUAL


Notable changes since Nvim 0.8                                       *news-0.9*

                                       Type |gO| to see the table of contents.

==============================================================================
BREAKING CHANGES

The following changes may require adaptations in user config or plugins.

• Cscope support is now removed (see |cscope| and |nvim-removed|):
  - Commands removed:
    - `:cscope`
    - `:lcscope`
    - `:scscope`
    - `:cstag`
  - Options removed:
    - `cscopepathcomp`
    - `cscopeprg`
    - `cscopequickfix`
    - `cscoperelative`
    - `cscopetag`
    - `cscopetagorder`
    - `cscopeverbose`
  - Eval functions removed:
    - `cscope_connection()`

  Note: support for |ctags| remains with no plans to remove.

  See https://github.com/neovim/neovim/pull/20545 for more information.

• `:hardcopy` is now removed (see |hardcopy| and |nvim-removed|):
  - Commands removed:
    - `:hardcopy`
  - Options removed:
    - `printdevice`
    - `printencoding`
    - `printexpr`
    - `printfont`
    - `printheader`
    - `printmbcharset`

• 'paste' option is now deprecated and 'pastetoggle' is removed. |paste| works
  automatically in GUI and terminal (TUI) Nvim.  Just Paste It.™

• Changes to |vim.treesitter.get_node_text()|:
  - It now returns `string`, as opposed to `string|string[]|nil`.
  - The `concat` option has been removed as it was not consistently applied.
  - Invalid ranges now cause an error instead of returning `nil`.

• `help` treesitter parser was renamed to `vimdoc`. The only user-visible
  change is that language-specific highlight groups need to be renamed from
  `@foo.help` to `@foo.vimdoc`.

• The default value of 'commentstring' is now empty instead of "/*%s*/".

• libiconv and intl are now required build dependencies.

==============================================================================
NEW FEATURES

The following new APIs or features were added.

• Treesitter syntax highlighting for `help` files now supports highlighted
  code examples. To enable, create a `.config/nvim/ftplugin/help.lua` with
  the contents >lua
    vim.treesitter.start()
<
  Note: Highlighted code examples are only available in the Nvim manual, not
  in help files taken from Vim. The treesitter `vimdoc` parser is also work in
  progress and not guaranteed to correctly highlight every help file in the
  wild.

• Added support for semantic token highlighting to the LSP client. This
  functionality is enabled by default when a client that supports this feature
  is attached to a buffer. Opt-out can be performed by deleting the
  `semanticTokensProvider` from the LSP client's {server_capabilities} in the
  `LspAttach` callback.

  See |lsp-semantic-highlight| for more information.

• |vim.inspect_pos()|, |vim.show_pos()| and |:Inspect| allow a user to get or show items
  at a given buffer position. Currently this includes treesitter captures,
  LSP semantic tokens, syntax groups and extmarks.

• |vim.treesitter.inspect_tree()| and |:InspectTree| opens a split window
  showing a text representation of the nodes in a language tree for the current
  buffer.

• 'statuscolumn' option to customize the area to the side of a window,
  normally containing the fold, sign and number columns. This new option follows
  the 'statusline' syntax and can be used to transform the line numbers, create
  mouse click callbacks for |signs|, introduce a custom margin or separator etc.

• |vim.secure.trust()|, |:trust| allows the user to manage files in trust database.
  |vim.secure.read()| reads a file and prompts the user if it should be
  trusted and, if so, returns the file's contents.  Used by 'exrc'

• EditorConfig support is now builtin. This is enabled by default and happens
  automatically. To disable it, users should add >lua

    vim.g.editorconfig = false
<
  (or the Vimscript equivalent) to their |config| file.

• A new environment

Title: Neovim 0.9: Breaking Changes and New Features
Summary
This section of the Neovim reference manual outlines notable changes since version 0.8, focusing on breaking changes that may require user adaptation, such as the removal of Cscope and `:hardcopy` support, deprecation of the 'paste' option, and changes to `vim.treesitter.get_node_text()`. It also highlights new features, including Treesitter syntax highlighting for `help` files with code examples, support for semantic token highlighting in the LSP client, functions for inspecting buffer positions and language trees, the 'statuscolumn' option for customizing the window side area, trust management for files via `vim.secure`, and built-in EditorConfig support.