Is It Time to Ditch PowerShell ISE?

This is a question that I have been asking myself for some time now but have been very much burying my head in the sand. I have no shame in admitting that I love PowerShell ISE, despite it’s many flaws. It’s simple, it’s lightweight, and most importantly for me, it’s easy to use! With the release of “ISE Mode” for VS Code is it time to ditch PowerShell ISE?

Is PowerShell ISE really going?

For some time now there has been the following message on the PowerShell Docs article:

“The PowerShell ISE is no longer in active feature development. As a shipping component of Windows, it continues to be officially supported for security and high-priority servicing fixes. We currently have no plans to remove the ISE from Windows.

There is no support for the ISE in PowerShell v6 and beyond. Users looking for replacement for the ISE should use Visual Studio Code with the PowerShell Extension.”

Okay yes, it says “We currently have no plans to remove the ISE from Windows”. This is reassuring and worrying in equal measure. They currently have no plans to remove it. This makes me think a plan to remove it will surface in the near future and knowing Microsoft they will probably neglect to give us a decent enough warning to prepare ourselves emotionally for this change.

Could Visual Studio Code be the Answer?

In the Microsoft statement above is says, “Users looking for replacement for the ISE should use Visual Studio Code with the PowerShell Extension”. Therefore, I have decided to investigate this and see if this could be a suitable replacement for my beloved ISE.

There has been quite a few articles and blog posts out there on how to get VS Code to behave more like PowerShell ISE, but none of them ever seemed to cut the mustard. Now, however, Microsoft have shipped an “ISE Mode” in the Official PowerShell Extension for VS Code so surely now must be the time to make the leap away from ISE, right?

ISE Mode for VS Code is available in the PowerShell extension since version 2020.3.0. If you are running the correct version, enabling ISE Mode is desperately easy. Simply open the command palette (Ctrl + Shift + P) and run “PowerShell: Enable ISE Mode”.

Doing this will set the following settings:

{
    "debug.openDebug": "neverOpen",
    "editor.tabCompletion": "on",
    "powershell.integratedConsole.focusConsoleOnExecute": false,
    "files.defaultLanguage": "powershell",
    "workbench.colorTheme": "PowerShell ISE",
    "workbench.activityBar.visible": false,
}

Warning
If you had any of these settings already set to other preferences, these will be lost when you disable ISE Mode. This has already been reported on the GitHub so I would hope it is fixed in a future version. In the meantime, I would suggest backing up your Settings.json file so these are not lost.

Enabled PowerShell ISE Mode

As you can see in the screenshot above, the result of the change looks quite promising. As first glance, VS Code now looks almost exactly like PowerShell ISE. Looks are where the similarities end, however, which in my opinion is not enough to start using VS Code. I will also need to get rid of them really useful (but also annoying) editor features like auto-closing brackets.

My Solution

I changed the following settings in addition to Enabling ISE Mode defaults. These helped make VS Code not only look but also behave more like PowerShell ISE:

{
    "editor.codeLens": false,
    "editor.autoClosingBrackets": "never",
    "editor.autoClosingQuotes": "never",
    "editor.renderLineHighlight": "none",
    "editor.renderIndentGuides": false,
    "editor.parameterHints.enabled": false,
    "editor.mouseWheelZoom": true,
    "editor.quickSuggestions": {
        "other": false,
        "comments": false,
        "strings": false
    },
    "terminal.integrated.lineHeight": 1,
    "terminal.integrated.cursorStyle": "line",
    "terminal.integrated.cursorBlinking": true
}

Is It Time to Ditch PowerShell ISE?

While it may take some getting used to, I think moving to VS Code will be beneficial (and most likely mandatory) in the long run. With the additional changes that I made to ISE Mode, moving away from PowerShell ISE is looking far less daunting than ever before. I may eventually even re-enable some of them VS Code features I disabled, but let’s not get carried away.

Credit where its due
Featured Image by Chris Ried on Unsplash

Copyright © 2020 - Martin Day