Releases: PowerShell/PowerShellEditorServices
v1.5.0
Fixes and Improvements
-
PowerShell/vscode-powershell #910 - Set-VSCodeHtmlContentView cmdlet now exposes
JavaScriptPaths
andStyleSheetPaths
parameters to allow using JavaScript code and CSS stylesheets in VS Code HTML preview views. -
PowerShell/vscode-powershell #909 - Write-VSCodeHtmlContentView's AppendBodyContent now accepts input from the pipeline
-
PowerShell/vscode-powershell #842 - psedit can now open empty files in remote sessions
-
PowerShell/vscode-powershell #1040 - Non-PowerShell files opened in remote sessions using psedit can now be saved back to the remote server
-
PowerShell/vscode-powershell #625 - Breakpoints are now cleared from the session when the debugger starts so that stale breakpoints from previous sessions are not hit
-
PowerShell/vscode-powershell #1004 - Handle exception case when finding references of a symbol
-
PowerShell/vscode-powershell #942 - Temporary debugging session now does not hang when running "PowerShell Interactive Session" debugging configuration in VS Code
-
PowerShell/vscode-powershell #872 - Watch variables with children are now expandable
-
PowerShell/PowerShellEditorServices #342 - Unexpected file URI schemes are now handled more reliably
-
PowerShell/PowerShellEditorServices #396 - Resolved errors being written to Integrated Console when running native applications while transcription is turned on
-
PowerShell/PowerShellEditorServices #529 -
Fixed an issue with loading the PowerShellEditorServices module in PowerShell Core 6.0.0-beta3 -
PowerShell/PowerShellEditorServices #533 - Added new $psEditor.GetCommand() method for getting all registered editor commands. Thanks to Kamil Kosek!
-
PowerShell/PowerShellEditorServices #535 - Type information is now exposed on hover for variables in the Variables view
v1.4.1
- PowerShell/PowerShellEditorServices#529 -
Fixed an issue with loading the PowerShellEditorServices module in PowerShell Core 6.0.0-beta3
v1.4.0
-
#517 - Added new
$psEditor.Workspace.NewFile()
API for creating a new untitled file in the host editor. Thanks Doug Finke! -
#520 - Added a new PowerShellEditorServices.VSCode module to contain functionality that will only appear in Visual Studio Code.
-
#523 - Added APIs and cmdlets for creating custom HTML content views in VS Code. See the *-VSCodeHtmlContentView cmdlets for more information.
-
#516 - Code formatting using PSScriptAnalyzer has now been moved server-side to use the standard textDocument/formatting and textDocument/rangeFormatting message types
-
#521 - Code formatting now accepts 3 code formatting presets, "Stroustrup", "Allman", and "OTBS" which correspond to the most common PowerShell formatting styles.
-
#518 - Added
-DebugServiceOnly
parameter toStart-EditorServicesHost
which enables launching an Editor Services session purely for debugging PowerShell code. -
#519 - Added a Diagnostic logging level for the most verbose logging output which isn't always necessary for investigating issues. The logging of JSON message bodies has been moved to this logging level.
v1.3.2
-
PowerShell/vscode-powershell#857 - Typing a new function into a file no longer causes the language server to crash
-
PowerShell/vscode-powershell#855 - "Format Document" no longer hangs indefinitely
-
PowerShell/vscode-powershell#859 - Language server no longer hangs when opening a Pester test file containing dot-sourced script references
-
PowerShell/vscode-powershell#856 - CodeLenses for function definitions no longer count the definition itself as a reference and shows "0 references" when there are no uses of that function
-
PowerShell/vscode-powershell#838 - Right-clicking a debugger variable and selecting "Add to Watch" now has the desired result
-
PowerShell/vscode-powershell#837 - Debugger call stack now navigates correctly to the user's selected stack frame
-
PowerShell/vscode-powershell#862 - Terminating errors in the language server now close the Integrated Console immediately and prompt the user to restart the session
-
PowerShell/PowerShellEditorServices#505 - Added improved cmdlet help in the PowerShellEditorServices.Commands module
-
PowerShell/PowerShellEditorServices#509 - Importing the PowerShellEditorServices.Commands module no longer causes errors to be written about missing help languages
v1.3.1
Fixes and improvements
-
PowerShell/vscode-powershell#850 - Fixed an issue where lower-cased "describe" blocks were not identified by the CodeLens feature.
-
PowerShell/vscode-powershell#851 - Fixed an issue where the language server would hang when typing out a describe block.
-
PowerShell/vscode-powershell#852 - Fixed an issue where Pester test names would not be detected correctly when other arguments like -Tags were being used on a Describe block.
v1.3.0
Notice of new internal redesign (#484, #488, #489)
This release marks the start of a major redesign of the core PowerShell Editor Services APIs, PSHost implementation, and service model. Most of these changes will be transparent to the language and debugging services so there shouldn't be any major breaking changes.
The goal is to quickly design and validate a new extensibility model that allows IFeatureProvider implementations to extend focused feature components which could be a part of PowerShell Editor Services or another extension module. As we progress, certain features may move out of the core Editor Services module into satellite modules. This will allow our functionality to be much more flexible and provide extensions with the same set of capabilities that built-in features have.
We are moving toward a 2.0 release of the core PowerShell Editor Services APIs over the next few months once this new design has been validated and stabilized. We'll produce updated API documentation as we move closer to 2.0.
New document symbol and CodeLens features (#490, #497, #498)
As part of our new extensibility model work, we've added two new components which follow the new "feature and provider" model which we'll be moving all other features to soon.
The IDocumentSymbols feature component provides a list of symbols for a given document. It relies on the results provided by a collection of IDocumentSymbolProvider implementations which can come from any module. We've added the following built-in IDocumentSymbolProvider implementations:
- ScriptDocumentSymbolProvider: Provides symbols for function and command definitions in .ps1 and .psm1 files
- PsdDocumentSymbolProvider: Provides symbols for keys in .psd1 files
- PesterDocumentSymbolProvider: Provides symbols for Describe, Context, and It blocks in Pester test scripts
We took a similar approach to developing an ICodeLenses feature component which retrieves a list of CodeLenses which get displayed in files to provide visible actions embedded into the code. We used this design to add the following built-in ICodeLensProvider implementations:
- ReferencesCodeLensProvider: Shows CodeLenses like "3 references" to indicate the number of references to a given function or command
- PesterCodeLensProvider: Shows "Run tests" and "Debug tests" CodeLenses on Pester Describe blocks in test script files allowing the user to easily run and debug those tests
Note that the ICodeLensProvider and IDocumentSymbolProvider interfaces are not fully stable yet but we encourage you to try using them so that you can give us your feedback!
Added a new PowerShellEditorServices.Commands module (#487, #496)
We've added a new Commands module that gets loaded inside of PowerShell Editor Services to provide useful functionality when the $psEditor API is available.
Thanks to our new co-maintainer Patrick Meinecke, we've gained a new set of useful commands for interacting with the $psEditor APIs within the Integrated Console:
- Find-Ast
- Get-Token
- ConvertFrom-ScriptExtent
- ConvertTo-ScriptExtent
- Set-ScriptExtent
- Join-ScriptExtent
- Test-ScriptExtent
- Import-EditorCommand
Microsoft.PowerShell.EditorServices API removals (#492)
We've removed the following classes and interfaces which were previously considered public APIs in the core Editor Services assembly:
- ConsoleService and IConsoleHost: We now centralize our host interface implementations under the standard PSHostUserInterface design.
- IPromptHandlerContext: We no longer have the concept of "prompt handler contexts." Each PSHostUserInterface implementation now has one way of displaying console-based prompts to the user. New editor window prompting APIs will be added for the times when a UI is needed.
- Logger: now replaced by a new non-static ILogger instance which can be requested by extensions through the IComponentRegistry.
v1.2.1
Fixes and improvements
-
#478 - Dynamic comment help snippets now generate parameter fields correctly when
<#
is typed above aparam()
block. -
PowerShell/vscode-powershell#808 - An extra
PS>
is no longer being written to the Integrated Console for some users who have custom prompt functions. -
PowerShell/vscode-powershell#813 - Finding references of symbols across the workspace now properly handles inaccessible folders and file paths
-
PowerShell/vscode-powershell#821 - Note properties on PSObjects are now visible in the debugger's Variables view
v1.2.0
Fixes and improvements
-
#462 - Fixed crash when getting signature help for functions and scripts using invalid parameter attributes
-
PowerShell/vscode-powershell#763 - Dynamic comment-based help snippets now work inside functions
-
PowerShell/vscode-powershell#710 - Variable definitions can now be found across the workspace
-
PowerShell/vscode-powershell#771 - Improved dynamic comment help snippet performance in scripts with many functions
-
PowerShell/vscode-powershell#774 - Pressing Enter now causes custom prompt functions to be fully evaluated
-
PowerShell/vscode-powershell#770 - Fixed issue where custom prompt function might be written twice when starting the integrated console
v1.1.0
Fixes and improvements
-
#452 - Added the
powerShell/getCommentHelp
request type for requesting a snippet-style text edit to add comment-based help to a function defined at a particular location. -
#455 - Added the
powerShell/startDebugger
notification type to notify the editor that it should activate its debugger because a breakpoint has been hit in the session while no debugger client was attached. -
#663 and #689 - We now write the errors and Write-Output calls that occur while loading profile scripts so that it's easier to diagnose issues with your profile scripts.
v1.0.0
We are excited to announce that we've reached version 1.0! For more information, please see the official announcement on the PowerShell Team Blog.
Fixes and improvements
-
Upgraded our Language Server Protocol support to protocol version 3.
-
Added basic module-wide function references support which searches all of the PowerShell script files within the current workspace for references and definitions.
-
Fixed vscode-powershell #698 - When debugging scripts in the integrated console, the cursor position should now be stable after stepping through your code! Please let us know if you see any other cases where this issue appears.
-
Fixed vscode-powershell #626 - Fixed an issue where debugging a script in one VS Code window would cause that script's output to be written to a different VS Code window in the same process.
-
Fixed vscode-powershell #618 - Pressing enter on an empty command line in the Integrated Console no longer adds the empty line to the command history.
-
Fixed vscode-powershell #617 - Stopping the debugger during a prompt for a mandatory script parameter no longer crashes the language server.
-
Fixed #428 - Debugger no longer hangs when you stop debugging while an input or choice prompt is active in the integrated console.