PowerShell for Visual Studio Code 1.0 announced by Microsoft. Shipping this update to line up with the PowerShell Core 6.0 Beta.1 release to provide the official PowerShell development experience for all supported platforms:

  • Windows 7 through 10 with PowerShell v3 and higher
  • Linux with PowerShell v6 (all PowerShell-supported distribtions)
  • macOS and OS X with PowerShell v6

Feature Overview

We’ve been working hard over the last year and a half to put together a first-class development experience for PowerShell that includes the following features:

  • PowerShell ISE-like interactive development experience with the PowerShell Integrated Console
  • Rich debugging experience including variables view, call stack, watch window, and various breakpoint types
  • Integrated script analysis and code fixes provided by PSScriptAnalyzer
  • Code navigations that allow you to find definitions and references of functions across your script files
  • Highly configurable code formatter based on community best practices
  • New file and project creation using Plaster templates
  • Editor scripting API through the $psEditor object model

You can also watch this YouTube video for an overview of using the PowerShell extension and Visual Studio Code (warning, loud audio at the beginning):

What does 1.0 mean?

As you probably have already discovered, the PowerShell Team has shifted to an open-source development model for the majority of our projects. This has enabled us to move extremely quickly, responding to customer feedback by releasing updates on a regular basis. Our focus now is on delivering value and quality quickly and incrementally rather than spending months polishing a single version for release.

With that in mind, we have a bit more flexibility on what it means to ship a 1.0 release of our tools. In the case of the PowerShell extension, increasing the version to 1.0 indicates a few things:

  • The development workflow of the PowerShell extension is stable enough to deliver a rich, interactive experience across all supported OSes – Windows, Linux, and macOS
  • Our public APIs are stable and will not have breaking changes in future 1.x releases
  • We will support the PowerShell extension and Visual Studio Code via issues reported through our respective GitHub repositories

Originally we were planning to release a series of beta releases similar to those of PowerShell Core before finalizing our 1.0 release. It turns out that the Visual Studio Marketplace currently does not support pre-release version names like 1.0.0-beta.1, so the clearest option was to continue forward with 1.0 so that we can indicate our level of committment and support of the extension.

What’s coming next?

We’ve got a lot of great improvements planned for the PowerShell extension, many of which will be coming online within the next few releases.

  • PowerShell “Project Model” via Plaster – We will be expanding Plaster to provide a rich toolset for developing PowerShell modules in any editor supported by PowerShell Editor Services. More details on this effort will be shared in the near future.
  • PSReadline support – We will add support for PSReadline in the Integrated Console to give the best possible command-line experience within the editor.
  • Expanded $psEditor APIs – We will make the editor even more scriptable with new APIs added in future updates.
  • Localization – English is currently the only supported language but we will eventually be adding
    other languages as requested by our community and partners.
  • User Guide – We are currently producing a complete User Guide for the extension that will help new
    users become productive quickly!
  • Instructional Videos – We will be producing a series of videos explaining how to use the PowerShell extension for script, module, and DSC resource development.

What does this mean for the PowerShell ISE?

The PowerShell ISE has been the official editor for PowerShell throughout most of the history of Windows PowerShell. Now with the advent of the cross-platform PowerShell Core, we need a new official editor that’s available across all supported OS platforms and versions. Visual Studio Code is now that editor and the majority of our effort will be focused there.

However, the PowerShell ISE will remain in Windows supporting Windows PowerShell with no plans to remove it. We will consider investing effort there in the future if there is a high demand for it, but for now we think that we will be able to provide the best possible experience to the PowerShell community through Visual Studio Code.