Change the setting: python.languageServer
TIL that you can't use microsoft's new python language server on unofficial builds of visual studio code.
VS Code is not Free Software, it's only gratis. Now you know how Microsoft gets paid ;)
Don't forget that Microsoft is in it for the long game: in ten years, they might have pushed away all alternatives (Atom, Sublime, etc.) And then they can tighten their grip.
More on reddit.comLSP for Python?
What are the best linters and language servers for python?
Which Python Language Server do you use?
I've been using coc-python over pyls (from old coc-pyls) for quite a time, pyls was always very sluggish, MPLS is much better.
The only grip with coc-python is that you should not forget to call :CocCommand python.setInterpreter to set the correct environment, it can't detect it automatically by default, but once set once, it's cached. I've been using it with pyenv/miniconda and all working great.
Another sad aspect of the project is that sadly it was not forked with history from original vscode extension, which would be great to help track changes and merge possible upstream features.
More on reddit.comVideos
Basically the title.
Vent ahead
I was trying out VS Code for using the python, but was not able to install Pylance language server. It does not show any error or warning, when you change from the default language server (jedi) it just sits there.
So after digging a little bit I found this.
Not sad just a little disappointed. I mainly use vim with a language server protocol client like coc.nvim but they recently archived coc-python and recommends using coc-pyright. It's alright but the completion is not as good as microsoft's initial language server mpls, can't really complain pyright is a type checker which it does quite well and jedi usually lags a lot on large project and modules.
Edit
This just an internet stranger's vent, if you want a more detailed discussion see this thread from two months ago.
VS Code is not Free Software, it's only gratis. Now you know how Microsoft gets paid ;)
Don't forget that Microsoft is in it for the long game: in ten years, they might have pushed away all alternatives (Atom, Sublime, etc.) And then they can tighten their grip.
microsoft's new python language server
There are two new servers. Pyright is where most of the functionality is, and it's free software. Pylance adds a few more features, is not free software, and is only licensed for Microsoft's Visual Studio Code build.
Between the two the difference in functionality is not really stark. I've used Pylance in the past, I now use Pyright and don't miss anything, so no complaints there. Besides, it's not like I paid anything for them.
All of the different language servers, linters, and formatters available for Python can be very confusing. There is significant overlap between tools and it's hard to know what is what- this is my attempt to sort through it all.
Below is what I have been able to figure out, corrections and additions added as I see them from the comments.
Ruff is a fast linter / code formatter. It has overtaken Black and Flake8 as the best / most popular linter although not as thourough as Pylint. Rust.
JEDI is a static analysis tool that supports autocompletion, goto, and refactoring. It works with several langauge servers. Similar functionality to Pyright. Python.
Pyright is a language server maintained by Microsoft. It supports type checking (primary function), goto, autocomplete, similar to JEDI. It is written in TypeScript. Pylance is a Microsoft product that builds on Pyright and adds additional feataures to VS Code. TypeScript.
Basedpyright is a fork of Pyright to add Pylance functionality to Pyright for non-Microsoft editors. Mostly TypeScript with Python additions.
MyPy is one of the original static type checkers (2012, but still actively maintained). Python.
PyLSP/Python LSP Server is a language server implementation that interfaces with other libraries like JEDI to provide various LSP functionality. Python.
Pylint is a static code analyser and very thorough (and slow) linter. It can be used alongside other analysis tools like Ruff or Black, and mypy or pyright. Python.
In addition to the above, some commercial IDEs like PyCharm use their own proprietary linters and type checkers.
I use the Helix editor and by default it will use Ruff, JEDI, and pylsp together. I was confused why it used more than one language server/library, which was the motivation for looking into all of this.