aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--runtime/doc/news.txt221
-rw-r--r--runtime/nvim.appdata.xml1
-rw-r--r--test/functional/fixtures/api_level_11.mpackbin0 -> 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
new file mode 100644
index 0000000000..2399854c42
--- /dev/null
+++ b/test/functional/fixtures/api_level_11.mpack
Binary files differ