1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
*news.txt* Nvim
NVIM REFERENCE MANUAL
Notable changes in Nvim 0.9 from 0.8 *news*
Type |gO| to see the table of contents.
==============================================================================
BREAKING CHANGES *news-breaking*
The following changes may require adaptations in user config or plugins.
• Cscope support is now removed (see |cscope| and |nvim-features-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.
==============================================================================
NEW FEATURES *news-features*
The following new APIs or features were added.
• |vim.inspect_pos()|, |vim.show_pos()| and |:Inspect| allow a user to get or show items
at a given buffer postion. Currently this includes treesitter captures,
semantic tokens, syntax groups and extmarks.
• 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_tokens| for more information.
• |vim.treesitter.show_tree()| 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.
• 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 `help` parser is also work in
progress and not guaranteed to correctly highlight every help file in the
wild.
• |vim.secure.trust()|, |:trust| allows the user to manage files in trust
database.
• |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.secure.read()| reads a file and prompts the user if it should be
trusted and, if so, returns the file's contents.
• 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.
• |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.
==============================================================================
CHANGED FEATURES *news-changes*
The following changes to existing APIs or features add new behavior.
• 'exrc' now supports `.nvim.lua` file.
• 'exrc' is no longer marked deprecated.
==============================================================================
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.
==============================================================================
DEPRECATIONS *news-deprecations*
The following functions are now deprecated and will be removed in the next
release.
vim:tw=78:ts=8:sw=2:et:ft=help:norl:
|