News

Visual Studio's Python IntelliSense Goes Standalone, Previews in VS Code Extension

Microsoft is converting the baked-in Python IntelliSense support in Visual Studio into an open source standalone product and previewing it in the new update to the VS Code Python extension.

Visual Studio's IntelliSense code analysis and code completion suggestions have worked with Python since the language's infusion into the IDE in 2011. Now the company has leveraged its Language Server Protocol to make that Python goodness portable in the form of the Python Language Server.

"It is available first today in the July release of the Python Extension for Visual Studio Code, and we will later release it as a standalone component that you can use with any tool that works with the Language Server Protocol," Microsoft's Steve Dower said in a post yesterday.

The Language Server Protocol defines the protocol used between a code editor or IDE and a language server that provides language features like auto complete, go to definition, find all references and so on. Through it, functionality like IntelliSense that was previously provided by complicated static analysis closely tied to specific editors or IDEs is made portable, offered up by a server rather than the editor/IDE. Thus editors/IDEs that support the protocol can get IntelliSense for any programming language it works with.

"Previously, Python IntelliSense in Visual Studio was very specific to that IDE," Dower explained. "We have been developing this support for nearly a decade. It has an impressively deep understanding of the Python language, but only Visual Studio users have been able to enjoy this work. Recently we have been refactoring our implementation to separate it from Visual Studio and make it available as a standalone program using the Language Server Protocol.

"The end result is that we have a black box that takes Python code and provides all the information your editor needs for tooltips, completions, finding definitions and references, global variable renaming and more."

As a preview available in the latest update to the VS Code Python extension, Microsoft yesterday said it provides the following benefits (already available or soon coming in Visual Studio) to VS Code developers:

  • Syntax errors as you type in code
  • Warnings when modules are not found
  • Using Typeshed files to fill in missing completions for modules
  • Improved performance for analyzing your workspace and presenting completions
  • Ability to detect syntax errors on your entire workspace, rather than just the current file
  • Faster startup times
  • Faster imports
  • Better handling for a number of language constructs

Those details were provided in a post announcing the June/July releases of the VS Code Python extension. Microsoft's Brett Cannon also announced the team has closed 156 issues in the new releases, which also incorporate gevent launch configuration for debugging.

"Contributed by Bence Nagy at the PyCon US 2018 sprints, the experimental debugger now supports a gevent launch configuration for code that has been monkey-patched by gevent," Cannon said. "A predefined debugging template named 'Python Experimental: Gevent' is available, as well as adding the setting "gevent": true to any launch configuration."

The Python extension is the most popular offering in the Visual Studio Code Marketplace. It boasts more than 13.9 million installs and has earned a 4.6 (out of 5 max) from 182 developers who reviewed it.

Dower said by making Visual Studio's Python IntelliSense portable and cross-platform, the team can improve it for both Visual Studio and VS Code at the same time. The standalone release of the Python Language Server is expected in the next few months, he said, and will be available under the Apache 2.0 license.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus

Featured

  • Full Stack Hands-On Development with .NET

    In the fast-paced realm of modern software development, proficiency across a full stack of technologies is not just beneficial, it's essential. Microsoft has an entire stack of open source development components in its .NET platform (formerly known as .NET Core) that can be used to build an end-to-end set of applications.

  • .NET-Centric Uno Platform Debuts 'Single Project' for 9 Targets

    "We've reduced the complexity of project files and eliminated the need for explicit NuGet package references, separate project libraries, or 'shared' projects."

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

Subscribe on YouTube