Home Blog PSScriptAnalyzer Integration and more
 

PSScriptAnalyzer Integration and more

We just released version 2.3.0.46 as a public beta. This version has a number of exciting new features. If you’d like to test-drive it, please download here:

ISESteroids 2.6.3.6 (Prerelease)
ISESteroids 2.6.3.6 (Prerelease)
ISESteroids.zip
Version: 2.6.3.6
26.0 MiB
356 Downloads
Details...

This version is available via PowerShell Gallery as well. So on PowerShell 5, you can install via

Install-Module ISESteroids -Scope CurrentUser

and update via

Update-Module ISESteroids

Better Advanced Search

When you press CTRL+SHIFT+F, this opens the Advanced File Finder. Due to popular request, when you search for files and double-click a result file, you now see a preview of the lines containing a match.

When you double-click a line, it will show centered in the script pane.

AdvancedFind

PSScriptAnalyzer Integration

Do you know PSScriptAnalyzer? It’s a great open-source project. PSScriptAnalyzer is a rule-based engine designed to find flaws in your code. Since it is hosted on the PowerShell gallery, you currently need PowerShell 5 to be able to use it.

ISESteroids now completely embraces PSScriptAnalyzer. All you need to do is open the menu “Expert Level”, choose “Real Time Code Review”, and then enable “Use ScriptAnalyzer Rules”.

psscriptanalyzer1

If you have PSScriptAnalyzer installed already, you are all set. If not, ISESteroids asks you to download and install PSScriptAnalyzer from the PSGallery. It even offers to run the required Install-Module command for you.

Please note: in this release, when ISESteroids prompts you to install PSScriptAnalyzer, you will have to restart ISESteroids once the module is installed. This is a bug that will be fixed soon. Without a restart, ISESteroids will not recognize the newly installed module.

ISESteroids provides real-time checks, so while you type your code, ISESteroids invokes the PSScriptAnalyzer engine in the background, and places green squiggle lines when a rule gets violated. Hover over the squiggle line to find out which rule was triggered, and why.

Real-Time Rule Result

One easy example would be variables that you never use. Simply add a statement like

$a = 1

into an empty script, and you should see a PSScriptAnalyzer rule trigger.

Please note that PSScriptAnalyzer is a work in progress. Some rules may be more useful than others. For example, when you use uninitialized variables, you get a rule warning. This also applies to automatic variables like $host, causing false alarms.

Please note also that the menu item “Manage Rules” is not yet implemented. It will allow you to enable and disable individual rules.

CompatAware Enhancements

CompatAware was greatly improved and now extends compatibility checks. Previously, only commands and some language keywords were checked. Now, CompatAware also takes into consideration ordered hashtables, automatic variables, and attributes with no value.

The compatibility report was fixed for a number of scenarios where there was no output.

ScriptFixer Improvements

When you run the script fixer across a .psm1 file, it no longer adds a #requires statement (as this may conflict with .psd1 metadata).

Also, when you have breakpoints set in any open script, the script fixer will no longer display a message that scripts could not be changed in debug mode.

What about Git Support?

Will come soon! We are currently working on a couple of concepts, trying to get it right.

We like to hear from you!

Please use the support forum to report back issues and additional suggestions.