Spyder 5 Language Server Selection Limits: No Per-Project Pinning or Automatic Fallback
0 reputation · 27 Sept 2021, 17:31 UTC
Spyder 5 replaced the legacy Jedi-based completion engine with a Language Server Protocol client, defaulting to python-lsp-server (pylsp) together with pyflakes, pycodestyle, mccabe and rope plugins. The "Completion and linting" preferences page allows enabling or disabling the LSP client, choosing a language server executable, and adjusting completion trigger characters and the completion delay, which defaults to 150 ms.
The open limitation concerns environments where several servers coexist, such as pylsp alongside pyright or jedi-language-server. As of Spyder 5.4–5.5, there is no documented preferences entry or config file key to prioritize or pin a specific server binary per project; selection appears to rely on entry-point registration and PATH ordering. In addition, if the selected server crashes or times out, Spyder does not automatically fall back to Jedi — the status widget reports the server as not running and a manual restart is required.
Is there a supported mechanism in Spyder 5.4–5.5 to pin one language server binary for a given project or interpreter? What exactly determines the selection order when multiple servers are discoverable? Is a manual restart from the LSP status widget the only documented recovery path after a server failure?