diff options
Diffstat (limited to 'runtime/doc/news.txt')
-rw-r--r-- | runtime/doc/news.txt | 293 |
1 files changed, 10 insertions, 283 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index fea8961dd5..e73dd111f1 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -4,7 +4,9 @@ NVIM REFERENCE MANUAL -Notable changes in Nvim 0.9 from 0.8 *news* +Notable changes in Nvim 0.10 from 0.9 *news* + +For changes in Nvim 0.9, see |news-0.9|. Type |gO| to see the table of contents. @@ -13,279 +15,28 @@ BREAKING CHANGES *news-breaking* 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 *news-features* +ADDED FEATURES *news-added* 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 variable named NVIM_APPNAME enables configuring the - directories where Neovim should find its configuration and state files. See - `:help $NVIM_APPNAME` . - -• Added support for running Lua scripts from shell using |-l|. > - nvim -l foo.lua --arg1 --arg2 -< Also works with stdin: > - echo "print(42)" | nvim -l - - -• Added an omnifunc implementation for lua, |vim.lua_omnifunc()| - -• Added a new experimental |lua-loader| that byte-compiles and caches lua files. - To enable the new loader, add the following at the top of your |init.lua|: >lua - vim.loader.enable() - -• Added |lua-version| for parsing and comparing version strings conforming to - the semver specification. - -• When using Nvim inside tmux 3.2 or later, the default clipboard provider - will now copy to the system clipboard. |provider-clipboard| - -• |'showcmdloc'| option to display the 'showcmd' information in the - status line or tab line. A new %S statusline item is available to place - the 'showcmd' text in a custom 'statusline'. Useful for when |'cmdheight'| - is set to 0. - -• |'splitkeep'| option to control the scroll behavior of horizontal splits. - -• |'diffopt'| now includes a `linematch` option to enable a second-stage diff - on individual hunks to provide much more accurate diffs. This option is also - available to |vim.diff()| - - See https://github.com/neovim/neovim/pull/14537. - -• |--remote-ui| option was added to connect to a remote instance and display - in it in a |TUI| in the local terminal. This can be used run a headless nvim - instance in the background and display its UI on demand, which previously - only was possible using an external UI implementation. - -• Added a |vim.lsp.codelens.clear()| function to clear codelenses. - -• Added support for the `willSave` and `willSaveWaitUntil` capabilities to the - LSP client. `willSaveWaitUntil` allows a server to modify a document before it - gets saved. Example use-cases by language servers include removing unused - imports, or formatting the file. - -• Added preliminary support for the `workspace/didChangeWatchedFiles` capability - to the LSP client to notify servers of file changes on disk. The feature is - disabled by default and can be enabled by setting the - `workspace.didChangeWatchedFiles.dynamicRegistration=true` capability. - -• |vim.diagnostic| now supports LSP DiagnosticsTag. - See: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticTag - -• |vim.diagnostic.is_disabled()| checks if diagnostics are disabled in a given - buffer or namespace. - -• Treesitter captures can now be transformed by directives. This will allow - more complicated dynamic language injections. - -• |vim.treesitter.get_node_text()| now accepts a `metadata` option for - writing custom directives using |vim.treesitter.query.add_directive()|. - -• |vim.treesitter.language.add()| replaces `vim.treesitter.language.require_language`. - -• |vim.treesitter.foldexpr()| can be used for 'foldexpr' to use treesitter for folding. - -• Expanded the TSNode API with: - - |TSNode:tree()| - - |TSNode:has_changes()| - - |TSNode:extra()| - - |TSNode:equal()| - - Additionally |TSNode:range()| now takes an optional {include_bytes} argument. - -• Treesitter injection queries now use the format described at - https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection . - Support for the previous format will be removed in a future release. - -• Added |nvim_get_hl()| for getting highlight group definitions in a format - compatible with |nvim_set_hl()|. - -• |vim.filetype.get_option()| to get the default option value for a specific - filetype. This is a wrapper around |nvim_get_option_value()| with caching. - -• `require'bit'` is now always available |lua-bit| +• ... ============================================================================== -CHANGED FEATURES *news-changes* +CHANGED FEATURES *news-changed* The following changes to existing APIs or features 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 *news-removed* The following deprecated functions or APIs were removed. -• `filetype.vim` is removed in favor of |lua-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 *news-deprecations* @@ -293,31 +44,7 @@ DEPRECATIONS *news-deprecations* The following functions are now deprecated and will be removed in the next release. -• |vim.treesitter.language.add()| replaces `vim.treesitter.language.require_language()` - -• |vim.treesitter.get_node_at_pos()| and |vim.treesitter.get_node_at_cursor()| - are both deprecated in favor of |vim.treesitter.get_node()|. - -• `vim.api.nvim_get_hl_by_name()`, `vim.api.nvim_get_hl_by_id()` were deprecated, use |nvim_get_hl()| instead. - -• The following top level Treesitter functions have been moved: - `vim.treesitter.inspect_language()` -> `vim.treesitter.language.inspect()` - `vim.treesitter.get_query_files()` -> `vim.treesitter.query.get_files()` - `vim.treesitter.set_query()` -> `vim.treesitter.query.set()` - `vim.treesitter.query.set_query()` -> `vim.treesitter.query.set()` - `vim.treesitter.get_query()` -> `vim.treesitter.query.get()` - `vim.treesitter.query.get_query()` -> `vim.treesitter.query.get()` - `vim.treesitter.parse_query()` -> `vim.treesitter.query.parse()` - `vim.treesitter.query.parse_query()` -> `vim.treesitter.query.parse()` - `vim.treesitter.add_predicate()` -> `vim.treesitter.query.add_predicate()` - `vim.treesitter.add_directive()` -> `vim.treesitter.query.add_directive()` - `vim.treesitter.list_predicates()` -> `vim.treesitter.query.list_predicates()` - `vim.treesitter.list_directives()` -> `vim.treesitter.query.list_directives()` - `vim.treesitter.query.get_range()` -> `vim.treesitter.get_range()` - `vim.treesitter.query.get_node_text()` -> `vim.treesitter.get_node_text()` - -• |nvim_exec()| is now deprecated in favor of |nvim_exec2()|. +• ... -• Renamed |vim.pretty_print| to |vim.print|. vim:tw=78:ts=8:sw=2:et:ft=help:norl: |