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/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
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