As someone who recently set up something similar in Emacs with eglot I had to ditch Python-LSP-server.
It was so incredibly slow to respond, even on a M2 Max MBP, that it lowered my productivity by orders of magnitudes (and made Emacs laggy).
Maybe I did something wrong? I don’t know.
What I do know is that I tried pyright instead as a different LSP-server for Python and I haven’t looked back.
It’s a night and day difference. It’s snappy and everything works as expected, with venvs and mypy too.
kstrauser•3h ago
I agree. I really wanted to like python-lsp-server (aka pylsp), but I felt it's kind of a mess getting everything set up and configured. Loathe as I was to configure a server running in Node to help my editor with Python code, it's far and away the best option I've found so far.
I do hope "ruff server" will do for Python LSPs what ruff did for linting and formatting.
nerdponx•2h ago
I haven't tried the Ruff server yet, but Jedi Language Server is usably fast, and does a good enough job.
kstrauser•2h ago
Jedi's very nice for refactoring and auto-completion! I get more value from linting and type checking, though, and Jedi doesn't handle those. Pairing it with something like pyright is a great combination if your editor lets you connect to multiple servers.
kristjansson•2h ago
It's not ready yet, but https://pyrefly.org/ might be a good competitor/complement in the future
tiltowait•39m ago
Looks promising! It doesn't work with my poetry environment, but I like what I see so far. Definitely something to watch.
Not particularly relevant to the core article, but just a dumb thought re: the LSP/LS annoyance mentioned in the intro.
I think maybe some of it stems from 'ls' the command. If I saw something called py-ls instead of py-lsp, I may think it's a python based ls command. "Name Collision" as it were.
josteink•4h ago
It was so incredibly slow to respond, even on a M2 Max MBP, that it lowered my productivity by orders of magnitudes (and made Emacs laggy).
Maybe I did something wrong? I don’t know.
What I do know is that I tried pyright instead as a different LSP-server for Python and I haven’t looked back.
It’s a night and day difference. It’s snappy and everything works as expected, with venvs and mypy too.
kstrauser•3h ago
I do hope "ruff server" will do for Python LSPs what ruff did for linting and formatting.
nerdponx•2h ago
kstrauser•2h ago
kristjansson•2h ago
tiltowait•39m ago
arccy•3h ago
Hasnep•55m ago