Hi team, thanks for the great project on python language server.
I just realized that m_workspace__did_change_workspace_folders doesn't migrate documents in root workspace in case both root_workspace_removed and workspace_added are true. This is because root workspace (I assume this is self.workspace ) is updated here with newly created workspace above with empty docs, then looped here. This causes new root workspace with empty docs (previous docs are missing) and causes subsequent request to have a KeyError as the screenshot below.

This happens, because for certain language client, it sends an initial workspace/didChangeWorkspaceFolders event, like the most famous language client vscode-languageserver at this line. The request that causes an error is below:
{
"jsonrpc": "2.0",
"method": "workspace/didChangeWorkspaceFolders",
"params": {
"event": {
"added": [
{
"uri": "file:///Users/kkosuke/Dropbox/playground/project/lsp/python",
"name": "file:///Users/kkosuke/Dropbox/playground/project/lsp/python"
}
],
"removed": [
{
"uri": "file:///Users/kkosuke/Dropbox/playground/project/lsp/python",
"name": "file:///Users/kkosuke/Dropbox/playground/project/lsp/python"
}
]
}
}
}
If my understanding is correct, I think I can create a PR to fix this quickly, so please let me know if it's a bug to be fixed (otherwise, please let me know the intention behind the current logic!). Thanks!
Hi team, thanks for the great project on python language server.
I just realized that

m_workspace__did_change_workspace_foldersdoesn't migrate documents in root workspace in case bothroot_workspace_removedandworkspace_addedare true. This is because root workspace (I assume this isself.workspace) is updated here with newly created workspace above with empty docs, then looped here. This causes new root workspace with empty docs (previous docs are missing) and causes subsequent request to have aKeyErroras the screenshot below.This happens, because for certain language client, it sends an initial
workspace/didChangeWorkspaceFoldersevent, like the most famous language clientvscode-languageserverat this line. The request that causes an error is below:If my understanding is correct, I think I can create a PR to fix this quickly, so please let me know if it's a bug to be fixed (otherwise, please let me know the intention behind the current logic!). Thanks!