Skip to content

Latest commit

 

History

History
2225 lines (1720 loc) · 137 KB

CHANGELOG.md

File metadata and controls

2225 lines (1720 loc) · 137 KB

PowerShell Editor Services Release History

v3.20.1

Friday, May 03, 2024

See more details at the GitHub Release for v3.20.1.

Update third-party notices.

v3.20.0

Tuesday, April 16, 2024

See more details at the GitHub Release for v3.20.0.

Hotfix for incorrect signing certificate, sorry about that!

Also removed Plaster integration as we were unable to correctly sign it since we no longer own it.

v3.19.0

Wednesday, April 03, 2024

See more details at the GitHub Release for v3.19.0.

Overhauled Terminal Shell Integration!

v3.18.1

Tuesday, March 19, 2024

Servicing release with updated pipeline!

v3.18.0

Tuesday, March 5, 2024

v3.17.0

Thursday, January 25, 2024

v3.16.0

Wednesday, January 03, 2024

v3.15.0

Thursday, December 07, 2023

v3.14.0

Tuesday, November 07, 2023

v3.13.0

Tuesday, October 10, 2023

v3.12.0

Thursday, September 28, 2023

v3.11.0

Wednesday, September 13, 2023

v3.10.0

Friday, August 25, 2023

v3.9.0

Wednesday, August 09, 2023

v3.8.7

Tuesday, May 30, 2023

v3.8.6

Tuesday, May 23, 2023

v3.8.5

Friday, May 12, 2023

v3.8.4

Tuesday, April 25, 2023

v3.8.3

Monday, March 27, 2023

  • Documentation update and CI fix.

v3.8.2

Thursday, March 09, 2023

v3.8.1

Monday, February 13, 2023

v3.8.0

Thursday, February 02, 2023

In the PR below we rewrote all the symbol logic. Classes (and their properties and methods) are now proper symbols. Instead of a dozen similar-yet-different Abstract Symbol Tree (AST) PowerShell script visitors handling different parts of each symbol-related request, we have a single visitor that builds a cached dictionary of symbols for each file. This was a massive simplification of the code that also leads to huge performance improvements across all the symbol related features:

Please try it out and give us feedback! There's plenty of room for more improvement, and this will be much easier going forward.

v3.7.3

Wednesday, January 04, 2023

v3.7.2

Tuesday, December 20, 2022

v3.7.1

Monday, December 12, 2022

v3.7.0

Tuesday, December 06, 2022

v3.6.3

Tuesday, November 29, 2022

v3.6.2

Monday, November 21, 2022

v3.6.1

Monday, November 07, 2022

v3.6.0

Tuesday, October 25, 2022

v3.5.4

Friday, September 30, 2022

v3.5.3

Wednesday, September 28, 2022

v3.5.2

Tuesday, September 27, 2022

v3.5.1

Thursday, August 25, 2022

v3.5.0

Thursday, August 18, 2022

v3.4.10

Friday, August 12, 2022

  • Just dependency updates.

v3.4.9

Thursday, August 11, 2022

v3.4.8

Wednesday, August 03, 2022

v3.4.7

Monday, July 25, 2022

v3.4.6

Monday, July 11, 2022

v3.4.5

Wednesday, June 29, 2022

v3.4.4

Wednesday, June 22, 2022

v3.4.3

Monday, June 13, 2022

v3.4.2

Friday, May 20, 2022

v3.4.1

Thursday, May 19, 2022

v3.4.0

Tuesday, May 17, 2022

v3.3.5

Thursday, May 05, 2022

v3.3.4

Tuesday, May 03, 2022

v3.3.3

Monday, May 02, 2022

v3.3.2

Thursday, April 28, 2022

v3.3.1

Wednesday, April 20, 2022

v3.3.0

Monday, April 18, 2022

v3.2.0

Tuesday, April 12, 2022

v3.1.6

Thursday, March 24, 2022

v3.1.5

Thursday, March 10, 2022

v3.1.4

Thursday, February 24, 2022

v3.1.3

Wednesday, February 16, 2022

v3.1.2

Wednesday, February 02, 2022

v3.1.1

Monday, January 24, 2022

v3.1.0

Monday, January 10, 2022

So many more tests have been turned back on!

v2.5.3

Wednesday, December 22, 2021

No changes. We're re-releasing to update signatures with a new certificate.

v3.0.3

Monday, December 20, 2021

v3.0.2

Monday, November 22, 2021

v3.0.1

Wednesday, November 03, 2021

v3.0.0

Thursday, October 28, 2021

This preview release includes a complete overhaul of the core PowerShell engine of PowerShell Editor Services. This represents over a year's work, tracked in PSES #1295 and implemented in PSES #1459, and is our answer to many, many issues opened by users over the last few years. We're hoping you'll see a marked improvement in the reliability, performance and footprint of the extension as a result.

Previously the Integrated Console was run by setting threadpool tasks on a shared main runspace, and where LSP servicing was done with PowerShell idle events. This lead to overhead, threading issues and a complex implementation intended to work around the asymmetry between PowerShell as a synchronous, single-threaded runtime and a language server as an asynchronous, multi-threaded service.

Now, PowerShell Editor Services maintains its own dedicated pipeline thread, which is able to service requests similar to JavaScript's event loop, meaning we can run everything synchronously on the correct thread. We also get more efficiency because we can directly call PowerShell APIs and code written in C# from this thread, without the overhead of a PowerShell pipeline.

This change has overhauled how we service LSP requests, how the Integrated Console works, how PSReadLine is integrated, how debugging is implemented, how remoting is handled, and a long tail of other features in PowerShell Editor Services.

Also, in making it, while 6,000 lines of code were added, we removed 12,000, for a more maintainable, more efficient and easier to understand extension backend.

While most of our testing has been re-enabled (and we're working on adding more), there are bound to be issues with this new implementation. Please give this a try and let us know if you run into anything.

We also want to thank @SeeminglyScience for his help and knowledge as we've made this migration.

Finally, a crude breakdown of the work from the commits:

  • An initial dedicated pipeline thread consumer implementation
  • Implement the console REPL
  • Implement PSRL idle handling
  • Implement completions
  • Move to invoking PSRL as a C# delegate
  • Implement cancellation and Ctrl+C
  • Make F8 work again
  • Ensure execution policy is set correctly
  • Implement $PROFILE support
  • Make nested prompts work
  • Implement REPL debugging
  • Implement remote debugging in the REPL
  • Hook up the debugging UI
  • Implement a new concurrent priority queue for PowerShell tasks
  • Reimplement the REPL synchronously rather than on its own thread
  • Really get debugging working...
  • Implement DSC breakpoint support
  • Reimplement legacy readline support
  • Ensure stdio is still supported as an LSP transport
  • Remove PowerShellContextService and other defunct code
  • Get integration tests working again (and improve diagnosis of PSES failures)
  • Get unit testing working again (except debug service tests)

v2.5.2

Monday, October 18, 2021

v2.5.1

Tuesday, September 07, 2021

v2.5.0

Monday, August 30, 2021

v2.4.9

Monday, August 23, 2021

v2.4.8

Thursday, August 19, 2021

v2.4.7

Tuesday, August 03, 2021

v2.4.6

Tuesday, July 13, 2021

v2.4.5

Wednesday, June 23, 2021

v2.4.4

Wednesday, June 16, 2021

v2.4.3

Wednesday, May 26, 2021

This stable release includes all the changes in the previews since v2.3.0, plus the following:

The most significant change is the update to OmniSharp v0.19.2, from the previous version v0.18.3, released in November 2020. OmniSharp is the underlying Language Server Protocol and Debug Adapter Protocol server library, and as such is our biggest dependency. This update brings us to the LSP 3.16 and DAP 1.48.x specifications, enabling us to start incorporating all the latest LSP changes, and it includes numerous bug fixes and enhancements resulting in a faster and more stable server and extension experience.

v2.4.2-preview.1

Friday, May 21, 2021

v2.4.1-preview.1

Monday, April 26, 2021

v2.4.0-preview.1

Friday, April 02, 2021

v2.3.0

Wednesday, February 24, 2021

  • 👷 ✨ No changes, just releasing a stable version.

v2.3.0-preview.4

Tuesday, February 23, 2021

v2.3.0-preview.3

Friday, February 19, 2021

v2.3.0-preview.2

Wednesday, September 16, 2020

v2.3.0-preview.1

Thursday, July 30, 2020

v2.2.0

Thursday, June 11, 2020

  • ⚡️🧠 Better performance of overall.
  • ✨🛫 Support for ConstrainedLanguage mode.
  • 🐛 Many squashed bugs
  • ✨👮 Updated PSScriptAnalyzer to 1.19.0. - More formatting settings! (Thanks @bergmeister!)
  • 📟 ✨ Updated PSReadLine to 2.0.2. (From now on, the stable extension will have the latest stable version of PSReadLine and the PowerShell Preview extension will have the latest preview of PSReadLine)

v2.2.0-preview.4

Monday, June 08, 2020

v2.2.0-preview.3

Monday, June 01, 2020

v2.2.0-preview.2

Wednesday, May 13, 2020

v2.2.0-preview.1

Tuesday, April 28, 2020

v2.1.0

Thursday, April 15, 2020

Notable features and fixes

  • ⚡️🧠 Better performance of overall but especially IntelliSense.
  • 🐛📟 Errors show up properly on screen in PowerShell Integrated Console.
  • ✨🐢 Run a single test in Pester v5 by setting "powershell.pester.useLegacyCodeLens": false.
  • 🐛🔧 Ignore files specified in files.exclude and search.exclude in reference/CodeLens search.

v2.1.0-preview.6

Monday, April 13, 2020

v2.1.0-preview.5

Thursday, April 09, 2020

  • ✨📟 PowerShellEditorServices #1255 - Move PSReadLine invocation into cmdlets to get closer to supporting ConstrainedLanguage mode. Also removes hard coded PSReadLine assembly version.

v2.1.0-preview.4

Wednesday, April 08, 2020

v2.1.0-preview.3

Tuesday, March 31, 2020

v2.1.0-preview.2

Thursday, March 26, 2020

v2.1.0-preview.1

Thursday, March 12, 2020

v2.0.0

Thursday, March 5, 2020

v2.0.0-preview.9

Thursday, February 20, 2020

  • 🐛📁 vscode-PowerShell #2421 - Fix WorkspacePath so that references work with non-ASCII characters.
  • 🐛📟 vscode-PowerShell #2372 - Fix prompt behavior when debugging.
  • 🐛🛫 PowerShellEditorServices #1171 - Fix race condition where running multiple profiles caused errors.
  • 🐛📟 vscode-PowerShell #2420 - Fix an issue where pasting to a Get-Credential prompt in some Windows versions caused a crash.
  • 🐛📟 vscode-PowerShell #1790 - Fix an inconsistency where Read-Host -Prompt 'prompt' would return $null rather than empty string when given no input.
  • 🐛🔗 PowerShellEditorServices #1177 - Fix an issue where untitled files did not work with CodeLens.
  • ⚡️⏱️ PowerShellEditorServices #1172 - Improve async/await and Task usage to reduce concurrency overhead and improve performance.
  • 🐛📟 PowerShellEditorServices #1178 - Improve PSReadLine experience where no new line is rendered in the console.
  • ✨🔍 PowerShellEditorServices #1119 - Enable new debugging APIs added in PowerShell 7, improving performance and fixing issues where the debugger would stop responding or be unable to update breakpoints while scripts were running.
  • 👷📟 PowerShellEditorServices #1187 - Upgrade built-in PSReadLine to 2.0.0 GA.
  • 🐛👮 PowerShellEditorServices #1179 - Improve integration with PSScriptAnalyzer, improving performance, fixing an error when PSScriptAnalyzer is not available, fix CodeActions not appearing on Windows, fix an issue where the PSModulePath is reset by PSScriptAnalyzer opening new runspaces.
  • 🚂 PowerShellEditorServices #1183 - Close over public APIs not intended for external use and replace with new, async-friendly APIs.

v2.0.0-preview.8

Monday, January 13, 2020

v2.0.0-preview.7

Wednesday, December 11, 2019

v2.0.0-preview.6

Friday, November 1, 2019

Special Note

In this release of the preview extension, we've merged significant architectural work into PowerShell Editor Services. After several months of work, PSES now uses the Omnisharp LSP library to handle Language Server Protocol interaction instead of rolling its own, allowing PSES to concentrate on being a good PowerShell backend. We hope you'll see increased performance and stability in this release. As always, please let us know if you find any issues.

v2.0.0-preview.5

Monday, September 23, 2019

v2.0.0-preview.4

Wednesday, May 22, 2019

v2.0.0-preview.3

Wednesday, April 10, 2019

v2.0.0-preview.2

Friday, March 29, 2019

v2.0.0-preview.1

Wednesday, January 23, 2019

Preview builds of PowerShell Editor Services are now available

What the first preview contains

The v2.0.0-preview.1 version of the extension is built on .NET Standard (enabling support for both Windows PowerShell and PowerShell Core from one assembly)

It also contains PSReadLine support in the integrated console for Windows behind a feature flag. PSReadLine provides a consistent and rich interactive experience, including syntax coloring and multi-line editing and history, in the PowerShell console, in Cloud Shell, and now in VSCode terminal. For more information on the benefits of PSReadLine, check out their documentation.

To enable PSReadLine support in the Preview version on Windows, please add the following flag to your Start-EditorServices.ps1 call:

-FeatureFlags @('PSReadLine')

HUGE thanks to @SeeminglyScience for all his amazing work getting PSReadLine working in PowerShell Editor Services!

Breaking Changes

Due to the above changes, this version of the PowerShell Editor Services only works with Windows PowerShell 5.1 and PowerShell Core 6.

v1.10.2

Tuesday, December 18, 2018

v1.10.1

Friday, December 7, 2018

v1.10.0

Monday, December 3, 2018

v1.9.0

Thursday, September 27, 2018

v1.8.4

Friday, August 31, 2018

v1.8.3

Wednesday, August 15, 2018

Fixes and Improvements

v1.8.2

Thursday, July 26, 2018

Fixes and Improvements

v1.8.1

Wednesday, July 11, 2018

Fixes and Improvements

v1.8.0

Tuesday, July 10, 2018

Fixes and Improvements

1.7.0

Wednesday, April 25, 2018

Fixes and Improvements

1.6.0

Thursday, February 22, 2018

Fixes and Improvements

1.5.1

Tuesday, November 14, 2017

1.5.0

Friday, October 27, 2017

Fixes and Improvements

1.4.1

Thursday, June 22, 2017

1.4.0

Wednesday, June 21, 2017

  • #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 to Start-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.

1.3.2

Monday, June 12, 2017

1.3.1

Friday, June 9, 2017

Fixes and improvements

1.3.0

Friday, June 9, 2017

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:

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.

1.2.1

Thursday, June 1, 2017

Fixes and improvements

  • #478 - Dynamic comment help snippets now generate parameter fields correctly when <# is typed above a param() 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

1.2.0

Wednesday, May 31, 2017

Fixes and improvements

1.1.0

Thursday, May 18, 2017

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.

1.0.0

Wednesday, May 10, 2017

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.

0.12.1

Friday, April 7, 2017

  • Fixed vscode-powershell #645 - "Go to Definition" or "Find References" now work in untitled scripts without crashing the session
  • Fixed vscode-powershell #632 - Debugger no longer hangs when launched while PowerShell session is still initializing
  • Fixed #430 - Resolved occasional IntelliSense slowness by preventing the implicit loading of the PowerShellGet and PackageManagement modules. This change will be reverted once a bug in PackageManagement is fixed.
  • Fixed #427 - Fixed an occasional crash when requesting editor IntelliSense while running a script in the debugger
  • Fixed #416 - Cleaned up errors that would appear in the $Errors variable from the use of Get-Command and Get-Help in IntelliSense results

0.12.0

Tuesday, April 4, 2017

Fixes and improvements

  • Added #408 - Enabled debugging of untitled script files

  • Added #405 - Script column number is now reported in the top stack frame when the debugger stops to aid in displaying a column indicator in Visual Studio Code

  • Fixed #411 - Commands executed internally now interrupt the integrated console's command prompt

  • Fixed #409 - PowerShell session now does not crash when a breakpoint is hit outside of debug mode

  • Fixed #614 - Auto variables are now populating correctly in the debugger. NOTE: There is a known issue where all of a script's variables begin to show up in the Auto list after running a script for the first time. This is caused by a change in 0.11.0 where we now dot-source all debugged scripts. We will provide an option for this behavior in the future

0.11.0

Wednesday, March 22, 2017

Fixes and improvements

  • Added PowerShell/vscode-powershell#583 - When you open files in a remote PowerShell session with the psedit command, their updated contents are now saved back to the remote machine when you save them in the editor.
  • Added PowerShell/vscode-powershell#540 - The scripts that you debug are now dot-sourced into the integrated console's session, allowing you to experiment with the results of your last execution.
  • Added PowerShell/vscode-powershell#600 - Debugger commands like stepInto, continue, and quit are now available in the integrated console while debugging a script.
  • Fixed PowerShell/vscode-powershell#533 - The backspace key now works in the integrated console on Linux and macOS. This fix also resolves a few usability problems with the integrated console on all supported OSes.
  • Fixed PowerShell/vscode-powershell#542 - Get-Credential now hides keystrokes correctly on Linux and macOS.
  • Fixed PowerShell/vscode-powershell#579 - Sorting of IntelliSense results is now consistent with the PowerShell ISE
  • Fixed PowerShell/vscode-powershell#575 - The interactive console no longer starts up with errors in the $Error variable.

0.10.1

Thursday, March 16, 2017

Fixes and improvements

  • Fixed #387 - Write-(Warning, Verbose, Debug) are missing message prefixes and foreground colors
  • Fixed #382 - PSHostUserInterface implementation should set SupportsVirtualTerminal to true
  • Fixed #192 - System-wide ExecutionPolicy of Bypass causes host process crash

0.10.0

Tuesday, March 14, 2017

These improvements are described in detail in the vscode-powershell changelog for its 0.10.0 release.

Language feature improvements

  • Added new terminal-based integrated console
  • Added new code formatting settings with additional rules
  • Added Get-Credential, SecureString, and PSCredential support

Debugging improvements

  • Connected primary debugging experience with integrated console
  • Added column number breakpoints
  • Added support for step-in debugging of remote ScriptBlocks with PowerShell Core 6.0.0-alpha.17

0.9.0

Thursday, January 19, 2017

These improvements are described in detail in the vscode-powershell changelog for its 0.9.0 release.

Language feature improvements

  • Added PowerShell code formatting integration with PSScriptAnalyzer
  • Improved PSScriptAnalyzer execution, now runs asynchronously
  • Added Document symbol support for .psd1 files

Debugging improvements

  • Remote session and debugging support via Enter-PSSession (PowerShell v4+)
  • "Attach to process/runspace" debugging support via Enter-PSHostProcess and Debug-Runspace (PowerShell v5+)
  • Initial psedit command support for loading files from remote sessions
  • Added language server protocol request for gathering PowerShell host processes for debugging
  • Many minor improvements to the debugging experience

$psEditor API improvements

  • Added FileContext.Close() method to close an open file

Other fixes and improvements

  • Fixed #339: Prompt functions that return something other than string cause the debugger to crash

0.8.0

Friday, December 16, 2016

Language feature improvements

  • Added support for "suggested corrections" from PSScriptAnalyzer
  • Added support for getting and setting the active list of PSScriptAnalyzer rules in the editing session
  • Enabled the user of PSScriptAnalyzer in the language service on PowerShell versions 3 and 4
  • Added PSHostUserInterface support for IHostUISupportsMultipleChoiceSelection

$psEditor API improvements

  • Added $psEditor.Workspace
  • Added $psEditor.Window.Show[Error, Warning, Information]Message methods for showing messages in the editor UI
  • Added $psEditor.Workspace.Path to provide access to the workspace path
  • Added $psEditor.Workspace.GetRelativePath to resolve an absolute path to a workspace-relative path
  • Added FileContext.WorkspacePath to get the workspace-relative path of the file

Debugging improvements

  • Enabled setting variable values from the debug adapter protocol
  • Added breakpoint hit count support invthe debug service

Other improvements

  • Added a new TemplateService for integration with Plaster
  • Refactored PSScriptAnalyzer integration to not take direct dependency on the .NET assembly

Bug fixes

  • Fixed #138: Debugger output was not being written for short scripts
  • Fixed #242: Remove timeout for PSHostUserInterface prompts
  • Fixed #237: Set session's current directory to the workspace path
  • Fixed #312: File preview Uris crash the language server
  • Fixed #291: Dot-source reference detection should ignore ScriptBlocks

0.7.2

Friday, September 2, 2016

  • Fixed #284: PowerShellContext.AbortException crashes when called more than once
  • Fixed #285: PSScriptAnalyzer settings are not being passed to Invoke-ScriptAnalyzer
  • Fixed #287: Language service crashes when invalid path chars are used in dot-sourced script reference

0.7.1

Tuesday, August 23, 2016

0.7.0

Thursday, August 18, 2016

Introducing support for Linux and macOS!

This release marks the beginning of our support for Linux and macOS via the new cross-platform release of PowerShell.

NuGet packages will be provided in the upcoming 0.7.1 release.

Other improvements

  • Introduced a new TCP channel to provide a commonly-available communication channel across multiple editors and platforms
  • PowerShell Script Analyzer integration has been shifted from direct use via DLL to consuming the PowerShell module and cmdlets
  • Updated code to account for platform differences across Windows and Linux/macOS
  • Improved stability of the language service when being used in Sublime Text

0.6.2

Tuesday, August 9, 2016

  • Fixed #264: Variable and parameter IntelliSense broken in VS Code 1.4.0
  • Fixed #240: Completion item with regex metachars can cause editor host to crash
  • Fixed #232: Language server sometimes crashes then $ErrorActionPreference = "Stop"

0.6.1

Monday, May 16, 2016

  • Fixed #221: Language server sometimes fails to initialize preventing IntelliSense, etc from working
  • Fixed #222: Editor commands are not receiving $host.UI prompt results

0.6.0

Thursday, May 12, 2016

Introduced a new documentation site

  • We have launched a new documentation site for this project on GitHub Pages. This documentation provides both a user guide and .NET API documentation pages that are generated directly from our code documentation. Check it out and let us know what you think!

Added a new cross-editor extensibility model

  • We've added a new extensibility model which allows you to write PowerShell code to add new functionality to Visual Studio Code and other editors with a single API. If you've used $psISE in the PowerShell ISE, you'll feel right at home with $psEditor. Check out the documentation for more details!

Support for user and system-wide profiles

  • We've now introduced the $profile variable which contains the expected properties that you normally see in powershell.exe and powershell_ise.exe:
    • AllUsersAllHosts
    • AllUsersCurrentHost
    • CurrentUserAllHosts
    • CurrentUserCurrentHost
  • Each editor integration can specify what their host-specific profile filename should be. If no profile name has been specified a default of PowerShellEditorServices_profile.ps1 is used.
  • Profiles are not loaded by default when PowerShell Editor Services is used. This behavior may change in the future based on user feedback.
  • Editor integrations can also specify their name and version for the $host.Name and $host.Version properties so that script authors have a better idea of where their code is being used.

Other improvements

  • $env variables now have IntelliSense complete correctly (#206).
  • The debug adapter now does not crash when you attempt to add breakpoints for files that have been moved or don't exist (#195).
  • Fixed an issue preventing output from being written in the debugger if you don't set a breakpoint before running a script.
  • Debug adapter now doesn't crash when rendering an object for the variables view if ToString throws an exception.

0.5.0

Thursday, March 10, 2016

Support for PowerShell v3 and v4

  • Support for PowerShell v3 and v4 is now complete! Note that for this release, Script Analyzer support has been disabled for PS v3 and v4 until we implement a better strategy for integrating it as a module dependency

Debugging improvements

  • Added support for command breakpoints
  • Added support for conditional breakpoints
  • Improved the debug adapter startup sequence to handle new VS Code debugging features

Other improvements

  • using 'module' now resolves relative paths correctly, removing a syntax error that previously appeared when relative paths were used
  • Calling Read-Host -AsSecureString or Get-Credential from the console now shows an appropriate "not supported" error message instead of crashing the language service. Support for these commands will be added in a later release.

0.4.3

Monday, February 29, 2016

  • Fixed #166: PowerShell Editor Services should be usable without PSScriptAnalyzer binaries

0.4.2

Wednesday, February 17, 2016

  • Fixed #127: Update to PSScriptAnalyzer 1.4.0
  • Fixed #149: Scripts fail to launch in the debugger if working directory path contains spaces
  • Fixed #153: Script Analyzer integration is not working in 0.4.1 release
  • Fixed #159: LanguageServer.Shutdown method hangs while waiting for remaining buffered output to flush

0.4.1

Tuesday, February 9, 2016

  • Fixed #147: Running native console apps causes their stdout to be written in the Host

0.4.0

Monday, February 8, 2016

Debugging improvements

  • A new Microsoft.PowerShell.EditorServices.Host.x86.exe executable has been added to enable 32-bit PowerShell sessions on 64-bit machines (thanks @adamdriscoll!)
  • You can now pass arguments to scripts in the debugger with the LaunchRequest.Args parameter (thanks @rkeithhill!)
  • You can also set the working directory where the script is run by setting the LaunchRequest.Cwd parameter to an absolute path (thanks @rkeithhill!)

Console improvements

  • Improved PowerShell console output formatting and performance

    • The console prompt is now displayed after a command is executed
    • Command execution errors are now displayed correctly in more cases
    • Console output now wraps at 120 characters instead of 80 characters
    • Console output is now buffered to reduce the number of OutputEvent messages sent from the host to the editor
  • Added choice and input prompt support. Prompts can be shown either through the console or natively in the editor via the powerShell/showInputPrompt and powerShell/showChoicePrompt requests.

New host command line parameters

  • /logLevel:<level>: Sets the log output level for the host. Possible values: Verbose, Normal, Warning, or Error.
  • /logPath:<path>: Sets the output path for logs written while the host is running

Other improvements

  • Initial work has been done to ensure support for PowerShell v3 and v4 APIs by compiling against the PowerShell reference assemblies that are published on NuGet. (thanks @adamdriscoll!)
  • Initial WebSocket channel support (thanks @adamdriscoll!)
  • Removed Nito.AsyncEx dependency

0.3.1

Thursday, December 17, 2015

0.3.0

Tuesday, December 15, 2015

  • First release with official NuGet packages!
  • Introduced a new client/server API in the Protocol project which makes it much easier to write a client or server for the language and debugging services
  • Introduced a new channel model which makes it much easier to add and consume new protocol channel implementations
  • Major improvements in variables retrieved from the debugging service:
    • Global and script scope variables are now accessible
    • New "Autos" scope which shows only the variables defined within the current scope
    • Greatly improved representation of variable values, especially for dictionaries and objects that implement the ToString() method
  • Added new "Expand Alias" command which resolves command aliases used in a file or selection and updates the source text with the resolved command names
  • Reduced default Script Analyzer rules to a minimal list
  • Improved startup/shutdown behavior and logging
  • Fixed a wide array of completion text replacement bugs

0.2.0

Monday, November 23, 2015

  • Added Online Help command
  • Enabled PowerShell language features for untitled and in-memory (e.g. in Git diff viewer) PowerShell files
  • Fixed high CPU usage when completing or hovering over an application path

0.1.0

Wednesday, November 18, 2015

Initial release with the following features:

  • IntelliSense for cmdlets and more
  • Rule-based analysis provided by PowerShell Script Analyzer
  • Go to Definition of cmdlets and variables
  • Find References of cmdlets and variables
  • Document and workspace symbol discovery
  • Local script debugging and basic interactive console support