diff options
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | runtime/doc/news.txt | 221 | ||||
-rw-r--r-- | runtime/nvim.appdata.xml | 1 | ||||
-rw-r--r-- | test/functional/fixtures/api_level_11.mpack | bin | 0 -> 31225 bytes |
4 files changed, 113 insertions, 113 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 262af9ab55..24ef1e9a91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,12 +107,12 @@ set_default_buildtype() set(NVIM_VERSION_MAJOR 0) set(NVIM_VERSION_MINOR 9) set(NVIM_VERSION_PATCH 0) -set(NVIM_VERSION_PRERELEASE "-dev") # for package maintainers +set(NVIM_VERSION_PRERELEASE "") # for package maintainers # API level set(NVIM_API_LEVEL 11) # Bump this after any API change. set(NVIM_API_LEVEL_COMPAT 0) # Adjust this after a _breaking_ API change. -set(NVIM_API_PRERELEASE true) +set(NVIM_API_PRERELEASE false) # Default to -O2 on release builds. if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3") diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 12dc4674af..fea8961dd5 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -1,7 +1,7 @@ *news.txt* Nvim - NVIM REFERENCE MANUAL + NVIM REFERENCE MANUAL Notable changes in Nvim 0.9 from 0.8 *news* @@ -48,71 +48,33 @@ The following changes may require adaptations in user config or plugins. • 'paste' option is now deprecated and 'pastetoggle' is removed. |paste| works automatically in GUI and terminal (TUI) Nvim. Just Paste It.™ -• libiconv and intl are now required build dependencies. - -• Unsaved changes are now preserved rather than discarded when |channel-stdio| - is closed. - • 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`. -• Renamed vim.pretty_print to vim.print. |deprecated| - -• |nvim_exec()| is now deprecated in favor of |nvim_exec2()|. - • `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* The following new APIs or features were added. -• |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. - -• 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. - -• A new environment variable named NVIM_APPNAME enables configuring the - directories where Neovim should find its configuration and state files. See - `:help $NVIM_APPNAME` . - -• |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` - -• EditorConfig support is now builtin. This is enabled by default and happens - automatically. To disable it, users should add >lua - - vim.g.editorconfig = false +• 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() < - (or the Vimscript equivalent) to their |config| file. - -• 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 a |vim.lsp.codelens.clear()| function to clear codelenses. - -• |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, - semantic tokens, syntax groups and extmarks. + 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 @@ -122,40 +84,47 @@ The following new APIs or features were added. 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. -• 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. +• |'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. -• 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() +• |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 < - Note: Highlighted code examples are only available in the Nvim manual, not - in help files taken from Vim. The treesitter `help` parser is also work in - progress and not guaranteed to correctly highlight every help file in the - wild. + (or the Vimscript equivalent) to their |config| file. -• |vim.secure.trust()|, |:trust| allows the user to manage files in trust - database. +• A new environment variable named NVIM_APPNAME enables configuring the + directories where Neovim should find its configuration and state files. See + `:help $NVIM_APPNAME` . -• |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. +• 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 - -• |vim.fs.dir()| now has a `opts` argument with a depth field to allow - recursively searching a directory tree. +• Added an omnifunc implementation for lua, |vim.lua_omnifunc()| -• |vim.gsplit()| supports all features of |vim.split()|. +• 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() -• |vim.secure.read()| reads a file and prompts the user if it should be - trusted and, if so, returns the file's contents. +• 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| @@ -167,34 +136,34 @@ The following new APIs or features were added. • |'splitkeep'| option to control the scroll behavior of horizontal splits. -• |'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. - -• |nvim_select_popupmenu_item()| now supports |cmdline-completion| popup menu. - • |'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. -• |vim.diagnostic.is_disabled()| checks if diagnostics are disabled in a given - buffer or namespace. - • |--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. -• 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. +• Added a |vim.lsp.codelens.clear()| function to clear codelenses. -• |:highlight| now supports an additional attribute "altfont". +• 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. -• |:Man| manpage viewer supports manpage names containing spaces. +• 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. @@ -204,8 +173,6 @@ The following new APIs or features were added. • |vim.treesitter.language.add()| replaces `vim.treesitter.language.require_language`. -• `require'bit'` is now always available |lua-bit| - • |vim.treesitter.foldexpr()| can be used for 'foldexpr' to use treesitter for folding. • Expanded the TSNode API with: @@ -216,32 +183,17 @@ The following new APIs or features were added. Additionally |TSNode:range()| now takes an optional {include_bytes} argument. -• |nvim_list_uis()| reports all |ui-option| fields. - -• 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()| - -• 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. - -• Added an omnifunc implementation for lua, |vim.lua_omnifunc()| - • 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. -• |nvim_get_option_value()| now has a `filetype` option so it can return the - default option for a specific filetype. +• 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. -• Added |nvim_get_hl()| for getting highlight group definitions in a format compatible with |nvim_set_hl()|. - -• |vim.diagnostic| now supports LSP DiagnosticsTag. - See: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticTag +• `require'bit'` is now always available |lua-bit| ============================================================================== CHANGED FEATURES *news-changes* @@ -259,6 +211,13 @@ The following changes to existing APIs or features add new behavior. 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, @@ -269,15 +228,51 @@ The following changes to existing APIs or features add new behavior. 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. -• It is no longer possible to scroll the whole screen when showing messages - longer than 'cmdheight'. |msgsep| is now always enabled even if 'display' - doesn't contain the "msgsep" flag. - • `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.) @@ -321,4 +316,8 @@ release. `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: diff --git a/runtime/nvim.appdata.xml b/runtime/nvim.appdata.xml index 1fe672b80b..29db9d5ee4 100644 --- a/runtime/nvim.appdata.xml +++ b/runtime/nvim.appdata.xml @@ -26,6 +26,7 @@ </screenshots> <releases> + <release date="2023-04-07" version="0.9.0"/> <release date="2023-02-02" version="0.8.3"/> <release date="2022-12-29" version="0.8.2"/> <release date="2022-11-14" version="0.8.1"/> diff --git a/test/functional/fixtures/api_level_11.mpack b/test/functional/fixtures/api_level_11.mpack Binary files differnew file mode 100644 index 0000000000..2399854c42 --- /dev/null +++ b/test/functional/fixtures/api_level_11.mpack |