• Sign In



  • Categories

    Extension Details



    Readme

    PowerShell brings full PowerShell 7 support to Nova: accurate syntax highlighting, completions, live diagnostics, formatting, tasks, and a debugger.

    Features

    Syntax highlighting and completions

    Editing

    • Syntax highlighting built on Tree-sitter, including PowerShell 7 syntax (? :, ??, ??=, ?.), classes, enums, here-strings, and string interpolation
    • Comment-based help keywords (.SYNOPSIS, .PARAMETER Name, …) highlighted inside <# … #> comments
    • Code folding for blocks, comment-based help, here-strings, and #region / #endregion
    • Symbols sidebar with functions, classes, methods, properties, enums, and regions
    • Snippets for advanced functions, comment-based help, control flow, classes, splatting, and Pester (type function, help, foreach, try, Describe, …)

    Language features

    Powered by PowerShell Editor Services, the engine behind the official VS Code extension (bundled, no setup needed):

    • Completions for commands, parameters, variables, and .NET types
    • Hover help and parameter hints
    • Jump to Definition and Jump to References
    • Live diagnostics from PSScriptAnalyzer
    • Format Document and Format Selection (Editor menu), with optional format on save
    • Rename Symbol for functions and variables in the current file (Editor menu)
    • Show Help for Command: full Get-Help output for the command under the cursor (Editor menu)
    • Run Selection in PowerShell: runs the selected lines (or the current line) and shows the output in a new tab (Editor menu)

    Module manifests

    • Completions for manifest keys (with descriptions) and known values such as CompatiblePSEditions and ProcessorArchitecture; GUID is generated for you. In an empty .psd1, type manifest for a complete skeleton.
    • Checks on save: Test-ModuleManifest problems appear in the Issues sidebar on the key they concern, plus warnings for FunctionsToExport entries that aren't defined and a hint for functions that are defined but not exported. Module files are parsed, never run.
    • New Module Manifest… (Extensions menu) creates a module folder with a manifest and an empty .psm1.

    PSScriptAnalyzer warnings in the editor and Issues sidebar

    Tasks

    Available from the task menu in the toolbar:

    • Run Current Script and Run Current Script with Arguments…
    • Debug Current Script and Debug Current Script with Arguments…
    • Run Pester Tests, and Run Pester Test at Cursor to run just the It, Context, or Describe block the cursor is in

    Errors and failed tests appear in the Issues sidebar with their file and line. For a reusable setup, add a PowerShell Script, PowerShell Debug, or Pester Tests task in Project Settings → Tasks.

    Debugging

    Debugging a script stopped at a breakpoint

    Click the line-number gutter to set a breakpoint, then choose Debug Current Script. You get the call stack, variables, stepping, and a debug console where you can evaluate expressions. Script output appears in the debug console.

    Requirements

    Syntax highlighting, folding, symbols, and snippets work out of the box. Language features, tasks, and debugging need PowerShell 7 or later:

    brew install powershell
    

    The extension finds pwsh automatically. If it's installed somewhere unusual, set its path in the extension preferences.

    To run Pester tests, install Pester 5 or later:

    Install-Module Pester -Scope CurrentUser
    

    If you have the older io.jah.PowerShell extension installed, disable it to avoid two PowerShell syntaxes competing.

    Works on Apple Silicon and should work on Intel Macs (the syntax parser is built for both), though it has only been tested on Apple Silicon.

    Preferences

    In Extensions → Extension Library → PowerShell → Settings:

    • PowerShell Path: leave empty to detect automatically
    • Enable PSScriptAnalyzer and a custom PSScriptAnalyzerSettings.psd1 file (also settable per project)
    • Formatting: format on save, brace style, } else { placement, pipeline indentation, cmdlet casing, and alias expansion

    Known limitations

    • Read-Host and other console input don't work while running or debugging scripts from a task, since tasks have no console input.
    • Rename Symbol only changes the current file.
    • Debugging needs the language server to be running (it is, unless you turn it off in preferences).

    Troubleshooting

    • Extensions → Restart Language Server restarts PowerShell Editor Services.
    • Extensions → Show Language Server Logs opens the log folder.
    • Turn on Log Language Server and Debugger Traffic in the preferences to record detailed logs when reporting a bug.

    Please report issues at github.com/Kainor-LLC/nova-powershell.

    If this extension saves you time, you can buy me a coffee.

    License

    Free for anyone to use, including at work. Source is on GitHub under the MIT License with the Commons Clause, which doesn't allow selling it or products and services based substantially on it. Bundled components from Microsoft and the Tree-sitter grammar keep their own MIT licenses.

    Release Notes

    Version 1.1.0

    • New: Run Pester Test at Cursor task runs only the test block the cursor is in
    • New: comment-based help keywords are highlighted inside <# … #> comments
    • Fixed: the language server could fail to start after a restart or reactivation ("Another instance ... is already running"); stopping is now immediate instead of taking 15 seconds, and starting retries while an old instance finishes
    • Fixed: preferences set before startup are now applied (the first settings message could arrive before the server was ready and be dropped)
    • New: module manifest (.psd1) support: completions for keys and values, checks on save with Test-ModuleManifest and FunctionsToExport verification, and a New Module Manifest… command

    Version 1.0.2

    • New: Run Selection in PowerShell (Editor menu) runs the selected lines or the current line and shows the output
    • Fixed: highlighting error for backtick escapes inside unquoted arguments, like Write-Host foo`nbar
    • Fixed: license page formatting in the Extension Library
    • Fixed: "Another instance of PowerShell Editor Services is already running" error when changing preferences such as PowerShell Path

    Version 1.0.1

    • License changed to MIT with the Commons Clause: still free to use, modify, and contribute to, but not to resell.

    Version 1.0.0

    Initial release.

    • Tree-sitter syntax highlighting, code folding, and symbols, including PowerShell 7 syntax
    • Completions, hover help, parameter hints, Jump to Definition, and Jump to References through PowerShell Editor Services
    • PSScriptAnalyzer diagnostics
    • Format Document, Format Selection, and format on save
    • Rename Symbol and Show Help for Command
    • Snippets for functions, help, control flow, classes, splatting, and Pester
    • Run Current Script, Run with Arguments, and Run Pester Tests tasks, with errors in the Issues sidebar
    • Debugging with breakpoints, stepping, variables, call stack, and a debug console

    License

    "Commons Clause" License Condition v1.0

    The Software is provided to you by the Licensor under the License, as defined
    below, subject to the following condition.

    Without limiting other conditions in the License, the grant of rights under
    the License will not include, and the License does not grant to you, the right
    to Sell the Software.

    For purposes of the foregoing, "Sell" means practicing any or all of the rights
    granted to you under the License to provide to third parties, for a fee or
    other consideration (including without limitation fees for hosting or
    consulting/ support services related to the Software), a product or service
    whose value derives, entirely or substantially, from the functionality of the
    Software. Any license notice or attribution required by the License must also
    include this Commons Clause License Condition notice.

    Software: PowerShell for Nova (kainorllc.PowerShell)
    License: MIT
    Licensor: Kainor LLC

    The Commons Clause condition and the MIT License below cover the code written
    by Kainor LLC in this extension. The third-party components listed after them
    are distributed under their own licenses, without the Commons Clause.

    MIT License

    Copyright (c) 2026 Kainor LLC

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    Third-party software

    Syntaxes/libtree-sitter-powershell.dylib is built from tree-sitter-powershell
    (https://github.com/wharflab/tree-sitter-powershell, a fork of airbus-cert/tree-sitter-powershell):

    MIT License

    Copyright (c) 2023 Airbus CERT

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    Server/ contains PowerShell Editor Services, PSScriptAnalyzer, and PSReadLine
    (MIT, © Microsoft Corporation). Their licenses and third-party notices are
    included alongside them: LICENSE and NOTICE.txt in the Server folder, LICENSE
    and ThirdPartyNotices.txt in the PSScriptAnalyzer version folder, and
    License.txt in the PSReadLine version folder.