Last week Microsoft announced the release of Python Language Server which is a part of the July release for Python Extension for Visual Studio Code and will be released as a standalone product in the near future. Intellisense, Microsoft’s code analysis, and suggestion tool have been supporting Python since 2011, but this language support can now be extended to other tools using the Microsoft Language Server.
Intellisense and Language Server Demystified
IntelliSense is the general term for a number of features like List Members, Parameter Info, Quick Info, and Complete Word. These features help developers to learn more about the code they are using and to keep track of the parameters. With Intellisense, Microsoft has long featured the completion feature that makes writing code faster and less error-prone.
Many aspects of IntelliSense are language-specific and many of its features are powered by a language server. Adding all these smart features in IntelliSense takes massive efforts and traditionally this effort is repeated for each development tool, as each tool provides different APIs for implementing the same feature. This effort can be significantly reduced with the help of a language server, as they provide these language-specific features to different tools with the help of a standard protocol known as Language Server Protocol (LSP). This way, a single Language Server can be re-used in multiple development tools, which in turn can support multiple languages with minimal effort.
Benefits of the Python Language Server
Python IntelliSense has been supported in Visual Studio since 2011 and is one of the most downloaded extensions, but only limited to Visual Studio developers. The Visual Studio team at Microsoft plan to separate the Python IntelliSense from Visual Studio and make it available as a standalone program using the language server protocol.
Steve Dower, a developer at Microsoft, wrote in his blog that “Having a standalone, cross-platform language server means that we can continue to innovate and improve on our IntelliSense experience for Python developers in both Visual Studio and Visual Studio Code at the same time”. The July release of Visual Studio Codes Python extension includes features such as:
- Syntax errors will appear as the code is typed
- Improved performance for analyzing workspaces and presenting completions
- The ability to detect syntax errors within the entire workspace
- Faster startup times and imports
- Better handling for several language constructs
The standalone release of the Python Language Server will be released in a few months, till then you can check out VS Code release announcement for more information.