*news.txt* Nvim NVIM REFERENCE MANUAL 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. ============================================================================== BREAKING CHANGES *news-breaking* The following changes may require adaptations in user config or plugins. • |vim.tbl_islist()| now checks whether a table is actually list-like (i.e., has integer keys without gaps and starting from 1). For the previous behavior (only check for integer keys, allow gaps or not starting with 1), use |vim.tbl_isarray()|. • "#" followed by a digit no longer stands for a function key at the start of the lhs of a mapping. • `:behave` was removed. if you used `:behave mswin`, the following is equivalent: >vim set selection=exclusive set selectmode=mouse,key set mousemodel=popup set keymodel=startsel,stopsel < • When switching windows, |CursorMoved| autocommands trigger when Nvim is back in the main loop rather than immediately. This is more compatible with Vim. • |LspRequest| autocmd was promoted from a |User| autocmd to a first class citizen. ============================================================================== ADDED FEATURES *news-added* The following new APIs or features were added. • Neovim's LSP client now always saves and restores named buffer marks when applying text edits. • Nvim's LSP client now advertises the general.positionEncodings client capability to indicate to servers that it supports utf-8, utf-16, and utf-32 encodings. If the server responds with the positionEncoding capability in its initialization response, Nvim automatically sets the client's `offset_encoding` field. • Dynamic registration of LSP capabilities. An implication of this change is that checking a client's `server_capabilities` is no longer a sufficient indicator to see if a server supports a feature. Instead use `client.supports_method()`. It considers both the dynamic capabilities and static `server_capabilities`. • |vim.iter()| provides a generic iterator interface for tables and Lua iterators |luaref-in|. • Added |vim.keycode()| for translating keycodes in a string. • Added |vim.treesitter.query.omnifunc()| for treesitter query files (set by default). • |'smoothscroll'| option to scroll by screen line rather than by text line when |'wrap'| is set. • |Query:iter_matches()| now has the ability to set the maximum start depth for matches. • Added inline virtual text support to |nvim_buf_set_extmark()|. • 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. ============================================================================== CHANGED FEATURES *news-changed* The following changes to existing APIs or features add new behavior. • |vim.tbl_contains()| now works for general tables and allows specifying a predicate function that is checked for each value. (Use |vim.list_contains()| for checking list-like tables (integer keys without gaps) for literal values.) • |vim.region()| can use a string accepted by |getpos()| as position. • vim.diagnostic.config() now accepts a function for the virtual_text.prefix option, which allows for rendering e.g., diagnostic severities differently. • Defaults: • 'shortmess' includes the "C" flag. • Automatic linting of treesitter query files (see |ft-query-plugin|). Can be disabled via: >lua vim.g.query_lint_on = {} < • Enabled treesitter highlighting for treesitter query files. • The `workspace/didChangeWatchedFiles` LSP client capability is now enabled by default. • |LspRequest| autocmd callbacks now contain additional information about the LSP request status update that occurred. • `:source` without arguments treats a buffer with its 'filetype' set to "lua" as Lua code regardless of its extension. ============================================================================== REMOVED FEATURES *news-removed* The following deprecated functions or APIs were removed. • Vimball support is removed. - :Vimuntar command removed. ============================================================================== DEPRECATIONS *news-deprecations* The following functions are now deprecated and will be removed in a future release. • Checkhealth functions: - |health#report_error|, |vim.health.report_error()| Use |vim.health.error()| instead. - |health#report_info|, |vim.health.report_info()| Use |vim.health.info()| instead. - |health#report_ok|, |vim.health.report_ok()| Use |vim.health.ok()| instead. - |health#report_start|, |vim.health.report_start()| Use |vim.health.start()| instead. - |health#report_warn|, |vim.health.report_warn()| Use |vim.health.warn()| instead. • |API| functions: - |nvim_buf_get_option()| Use |nvim_get_option_value()| instead. - |nvim_buf_set_option()| Use |nvim_set_option_value()| instead. - |nvim_get_option()| Use |nvim_get_option_value()| instead. - |nvim_set_option()| Use |nvim_set_option_value()| instead. - |nvim_win_get_option()| Use |nvim_get_option_value()| instead. - |nvim_win_set_option()| Use |nvim_set_option_value()| instead. • `vim.loop` has been renamed to `vim.uv`. vim:tw=78:ts=8:sw=2:et:ft=help:norl: