This linter plugin for SublimeLinter provides an interface to PowerShell's PSScriptAnalyzer module. It will be used with files that have the “PowerShell” syntax.
SublimeLinter must be installed in order to use this plugin.
Please use Package Control to install the linter plugin.
Before installing this plugin, you must ensure that:
pwsh
is installed on your system (PowerShell Core).- Module PSScriptAnalyzer is installed. If not, install it from PowerShell:
Install-Module -Name PSScriptAnalyzer
In order for pwsh
to be executed by SublimeLinter, you must ensure that its path is available to SublimeLinter. The docs cover troubleshooting PATH configuration.
If a file named PSScriptAnalyzerSettings.psd1
exists in the user's home directory it's used as PSScriptAnalyzer's settings file when calling Invoke-ScriptAnalyzer
cmdlet. Please refer to PSScriptAnalyzer for details.
Example content of a settings file:
@{
# Select which diagnostic records to show.
# Valid values are: ParseError, Error, Warning, Information
Severity = @('ParseError', 'Error', 'Warning')
ExcludeRules = @(
'PSUseApprovedVerbs'
)
IncludeDefaultRules = $true
}
Path/name of the PSScriptAnalyzer's settings can be customized:
"linters": {
...
"psscriptanalyzer": {
// full path
"settings": "D:\\Scripts\\CustomSettings.psd1"
// environment variables will be expanded
"settings": "%SCRIPTS_DIR%\\CustomSettings.psd1"
// or built-in preset name (beware that linting fails if the name is not a valid preset name)
"settings": "PSGallery"
// default - remove or set to null
"settings": null
}
- SublimeLinter settings: http://sublimelinter.readthedocs.org/en/latest/settings.html
- Linter settings: http://sublimelinter.readthedocs.org/en/latest/linter_settings.html
- Handle the case when a given preset name is not a valid PSScriptAnalyzer preset. Now it just fails to lint.