aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/health.lua
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-05-24 19:18:11 +0000
committerJosh Rahm <joshuarahm@gmail.com>2024-05-24 19:18:11 +0000
commitff7ed8f586589d620a806c3758fac4a47a8e7e15 (patch)
tree729bbcb92231538fa61dab6c3d890b025484b7f5 /runtime/lua/vim/lsp/health.lua
parent376914f419eb08fdf4c1a63a77e1f035898a0f10 (diff)
parent28c04948a1c887a1cc0cb64de79fa32631700466 (diff)
downloadrneovim-ff7ed8f586589d620a806c3758fac4a47a8e7e15.tar.gz
rneovim-ff7ed8f586589d620a806c3758fac4a47a8e7e15.tar.bz2
rneovim-ff7ed8f586589d620a806c3758fac4a47a8e7e15.zip
Merge remote-tracking branch 'upstream/master' into mix_20240309
Diffstat (limited to 'runtime/lua/vim/lsp/health.lua')
-rw-r--r--runtime/lua/vim/lsp/health.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/health.lua b/runtime/lua/vim/lsp/health.lua
index 797a1097f9..a79ae76eb9 100644
--- a/runtime/lua/vim/lsp/health.lua
+++ b/runtime/lua/vim/lsp/health.lua
@@ -51,6 +51,29 @@ end
local function check_watcher()
vim.health.start('vim.lsp: File watcher')
+
+ -- Only run the check if file watching has been enabled by a client.
+ local clients = vim.lsp.get_clients()
+ if
+ --- @param client vim.lsp.Client
+ vim.iter(clients):all(function(client)
+ local has_capability = vim.tbl_get(
+ client.capabilities,
+ 'workspace',
+ 'didChangeWatchedFiles',
+ 'dynamicRegistration'
+ )
+ local has_dynamic_capability =
+ client.dynamic_capabilities:get(vim.lsp.protocol.Methods.workspace_didChangeWatchedFiles)
+ return has_capability == nil
+ or has_dynamic_capability == nil
+ or client.workspace_folders == nil
+ end)
+ then
+ report_info('file watching "(workspace/didChangeWatchedFiles)" disabled on all clients')
+ return
+ end
+
local watchfunc = vim.lsp._watchfiles._watchfunc
assert(watchfunc)
local watchfunc_name --- @type string