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.
This commit is contained in:
Dan Strokirk 2023-03-13 14:01:34 +01:00 committed by GitHub
parent 4e99cc1217
commit f01f18cdf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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