From f01f18cdf4ffc3ce035db5fde2f45493eebb7fd9 Mon Sep 17 00:00:00 2001 From: Dan Strokirk Date: Mon, 13 Mar 2023 14:01:34 +0100 Subject: fix(lsp): remove_workspace_folders fails if client has no workspace_folders #22633 When a client has no workspace_folders, (e.g., copilot), `pairs` code would crash. --- runtime/lua/vim/lsp/buf.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/lua/vim/lsp/buf.lua') diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua index 0e16e8f820..8bf3764f5e 100644 --- a/runtime/lua/vim/lsp/buf.lua +++ b/runtime/lua/vim/lsp/buf.lua @@ -530,7 +530,7 @@ function M.remove_workspace_folder(workspace_folder) { { uri = vim.uri_from_fname(workspace_folder), name = workspace_folder } } ) for _, client in pairs(vim.lsp.get_active_clients({ bufnr = 0 })) do - for idx, folder in pairs(client.workspace_folders) do + for idx, folder in pairs(client.workspace_folders or {}) do if folder.name == workspace_folder then vim.lsp.buf_notify(0, 'workspace/didChangeWorkspaceFolders', params) client.workspace_folders[idx] = nil -- cgit