mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 02:34:59 -07:00
fix(lsp): disable didChangeWatchedFiles on Linux
Problem: The file watcher backends for Linux have too many limitations and doesn't work reliably. Solution: disable didChangeWatchedFiles on Linux Ref: #27807, #28058, #23291, #26520
This commit is contained in:
parent
ca735c7554
commit
c1a95d9653
@ -435,10 +435,8 @@ The following changes to existing APIs or features add new behavior.
|
||||
• Enabled treesitter highlighting for Lua files.
|
||||
|
||||
• The `workspace/didChangeWatchedFiles` LSP client capability is now enabled
|
||||
by default.
|
||||
• On Mac or Windows, `libuv.fs_watch` is used as the backend.
|
||||
• On Linux, `fswatch` (recommended) is used as the backend if available,
|
||||
otherwise `libuv.fs_event` is used on each subdirectory.
|
||||
by default on Mac and Windows. Disabled on Linux since there currently isn't
|
||||
a viable backend for watching files that scales well for large directories.
|
||||
|
||||
• |LspRequest| autocmd callbacks now contain additional information about the LSP
|
||||
request status update that occurred.
|
||||
|
@ -10,6 +10,8 @@ local function get_value_set(tbl)
|
||||
return value_set
|
||||
end
|
||||
|
||||
local sysname = vim.uv.os_uname().sysname
|
||||
|
||||
-- Protocol for the Microsoft Language Server Protocol (mslsp)
|
||||
local protocol = {}
|
||||
|
||||
@ -835,7 +837,10 @@ function protocol.make_client_capabilities()
|
||||
refreshSupport = true,
|
||||
},
|
||||
didChangeWatchedFiles = {
|
||||
dynamicRegistration = true,
|
||||
-- TODO(lewis6991): do not advertise didChangeWatchedFiles on Linux
|
||||
-- or BSD since all the current backends are too limited.
|
||||
-- Ref: #27807, #28058, #23291, #26520
|
||||
dynamicRegistration = sysname == 'Darwin' or sysname == 'Windows_NT',
|
||||
relativePatternSupport = true,
|
||||
},
|
||||
inlayHint = {
|
||||
|
@ -5521,7 +5521,7 @@ describe('LSP', function()
|
||||
)
|
||||
end
|
||||
|
||||
eq(true, check_registered(nil)) -- start{_client}() defaults to make_client_capabilities().
|
||||
eq(is_os('mac') or is_os('win'), check_registered(nil)) -- start{_client}() defaults to make_client_capabilities().
|
||||
eq(false, check_registered(vim.empty_dict()))
|
||||
eq(
|
||||
false,
|
||||
|
Loading…
Reference in New Issue
Block a user