Servicing release with updated pipeline!
- ✨ 📟 PowerShellEditorServices #2148 - Update to PSReadLine v2.4.0-beta0.
- ✨ 📟 PowerShellEditorServices #2141 - Update to PSScriptAnalyzer v1.22.0.
- ✨ 👷 PowerShellEditorServices #2138 - Fixed sln file. (Thanks @dkattan!)
- #️⃣ 🙏 PowerShellEditorServices #2137 - Fixed TextReader disposal. (Thanks @dkattan!)
- 🐛#️⃣ 🙏 PowerShellEditorServices #2135 - Fix PowerShell 7.2 E2E unit test for last change.
- ✨ 🛫 PowerShellEditorServices #1855 - Add sane defaults to
Start-EditorServices
. - ✨#️⃣ 🙏 PowerShellEditorServices #2122 - Add
UseNullPSHostUI
config so apps hosting PSES can disable it. (Thanks @dkattan!) - 🐛 🧠 PowerShellEditorServices #2115 - Added null check to
GetCompletionsAsync
. (Thanks @dkattan!)
- ✨ 🚂 PowerShellEditorServices #2132 - Remove
PowerShellEditorServices.VSCode
module /ContentViews
feature. - 🐛 🔍 PowerShellEditorServices #2130 - Fix up debugger attach handlers.
- 🐛 📟 vscode-powershell #4854 - Update shell integration script to fix command decorations.
- ✨ 🚨 PowerShellEditorServices #2124 - Test end-to-end with PowerShell Daily.
- ✨ 👷 PowerShellEditorServices #2114 - Add PowerShell 7.4 SDK and
net8.0
framework. - ✨ 🚨 PowerShellEditorServices #2110 - Switch to GitHub Actions for all CI.
- 🐛 🔍 vscode-powershell #4816 - When the built-in
$null
was watched its value was incorrect. - 🐛 🚂 vscode-powershell #4814 - Allow
WorkspacePaths
to be empty if we're not in a workspace.
- 🐛 📟 vscode-powershell #4788 - Run
SetInitialWorkingDirectoryAsync
beforeLoadProfiles
. - 🐛 🙏 vscode-powershell #4784 - Ignore
didOpen
notifications forgit
schemed documents from VS Code. - 🐛 🙏 PowerShellEditorServices #2084 - Add
SortDocumentSymbols
to make the outline hierarchical (again).
- ✨ 📟 PowerShellEditorServices #2087 - Upgrade bundled PSReadLine module to v2.3.4.
- 🐛 🔍 PowerShellEditorServices #2081 - Silence progress output of
Get-DscResource
(take two). - 🐛 🚂 PowerShellEditorServices #2083 - Upgrade OmniSharp to v0.19.9.
- ✨ 📟 PowerShellEditorServices #2080 - Bump to new PSReadLine stable release v2.3.3.
- 🐛 🔍 PowerShellEditorServices #2068 - Wrap import of DSC module with
ProgressPreference = SilentlyContinue
.
- 🐛 💭 vscode-powershell #4735 - Add
None
toPsesLogLevel
enum. - ⚡️ 💭 PowerShellEditorServices #2065 - Remove unused telemetry.
- 🐛 🔍 vscode-powershell #3904 - Fix debugging script blocks that aren't in files.
- 🐛 🚂 vscode-powershell #3971 - Import
PSDesiredStateConfiguration
by name.
- 🐛 🔍 PowerShellEditorServices #2037 - Ignore not finding DSC module.
- ✨ 🚨 vscode-powershell #3484 - Move
ConstrainedLanguageMode
tests to separate task. - ✨ 📟 PowerShellEditorServices #2054 - Update PSReadLine to
v2.3.2-beta2
. - ✨ 🙏 PowerShellEditorServices #2053 - Fix up extension API.
- 🐛 📟 PowerShellEditorServices #2050 - Fix shell integration for PowerShell 5.1 with strict mode.
- ✨ 📟 PowerShellEditorServices #2046 - Bump PSReadLine to beta for extension preview.
- 🐛 📟 PowerShellEditorServices #2031 - Fix the
TranscribeOnly
bug (take three).
- 🐛 💭 vscode-powershell #4582 - Ignore cancellation of completion requests.
- 🐛 📟 vscode-powershell #3991 - Fix the
TranscribeOnly
bug (take two).
- 🐛 📟 vscode-powershell #3991 - Fix disappearing output in PowerShell 5.1.
- 🐛 🔍 PowerShellEditorServices #2020 - Fix repeated failure to load DSC module.
- 🐛 🛫 vscode-powershell #4509 - Set session failure with reason when applicable.
- ✨ 📖 PowerShellEditorServices #2016 - Add guide to configure Neovim. (Thanks @csc027!)
- Documentation update and CI fix.
- 🐛 🙏 vscode-powershell #4443 - Fix declaration detection for variables with type constraints.
- ✨ 🙏 vscode-powershell #3604 - Add document symbols for
#region
. - ✨ 🙏 PowerShellEditorServices #2000 - Code clean-up and fixing end-to-end tests.
- 🐛 🐢 PowerShellEditorServices #1998 - Support module-qualified calls for Pester keywords. (Thanks @fflaten!)
- 🐛 🙏 vscode-powershell #3192 - Fix New-EditorFile adding content in current file. (Thanks @fflaten!)
- ✨ 📁 vscode-powershell #2112 - Add
WorkspaceFolders
and use it when enumerating files. - ✨ 🙏 vscode-powershell #1481 - Count
${Function:My-Function}
as a function reference. - 🐛 🙏 vscode-powershell #1089 - Strip scope from function references.
- 🐛 🙏 PowerShellEditorServices #1989 - Keep only first assignment as declaration.
- ✨ 🐢 PowerShellEditorServices #1988 - Support Run/Debug tests in PSKoans-files. (Thanks @fflaten!)
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:
- Go to Symbol in Workspace
- Go to Symbol in Editor
- Go to Definition
- Go to References / CodeLens
- Outline view
Please try it out and give us feedback! There's plenty of room for more improvement, and this will be much easier going forward.
- ✨ 🙏 PowerShellEditorServices #1984 - Integrating class symbol support.
- 🐛 🚂 vscode-powershell #4343 - Update VS Code shell integration script.
- ✨ 🙏 PowerShellEditorServices #1981 - Make
Set-ScriptExtent
not slow. - 🐛 🙏 PowerShellEditorServices #1959 - Use an empty array instead of
null
.
- 🐛 🔍 vscode-powershell #4174 - Fix several bugs in the debugger.
- #️⃣ 🙏 PowerShellEditorServices #1973 - Update
Microsoft.PowerShell.SDK
with workaround.
- 🐛 🚂 vscode-powershell #4212 - Fix
ShowHelpHandler
by running withRequiresForeground
.
- ✨ 👷 PowerShellEditorServices #1879 - Drop support for end-of-life PowerShell 7.0.
- ✨ 🛫 PowerShellEditorServices #1965 - Send
GitCommitId
overGetVersionHandler
. - 🐛 🛫 PowerShellEditorServices #1964 - Remove unnecessary
PowerShellProcessArchitecture
. - 🐛 🚂 PowerShellEditorServices #1953 - Fix
IsExternalInit
bug, re-enable tests, and update OmniSharp to v0.19.7.
- 🐛 🙏 PowerShellEditorServices #1962 - Revert manual pin of Newtonsoft.Json.
- 🐛 📟 vscode-powershell #4279 - Replace backtick-e with
$([char]0x1b)
.
- ✨ 📟 vscode-powershell #3901 - Enable VS Code's shell integration.
- 🐛 🔍 vscode-powershell #4269 - Escape single quotes when launching a script by path.
- ✨ 🚨 PowerShellEditorServices #1955 - Add PowerShell 7.3 to test matrix.
- #️⃣ 🙏 PowerShellEditorServices #1947 - Manually update
Newtonsoft.Json
. - 🐛 🚂 vscode-powershell #4175 - Bump OmniSharp to
v0.19.6
. - 🐛 🔍 vscode-powershell #4238 - Wrap script paths with single instead of double quotes.
- 🐛 🚂 vscode-powershell #4219 - Fix regression around
OnIdle
handler. - 🐛 🧠 PowerShellEditorServices #1926 - Catch exceptions within completion handler.
- 🐛 👷 vscode-powershell #4218 - Fix release build.
- ✨ 📖 PowerShellEditorServices #1932 - Add example of starting PSES in a script to readme. (Thanks @smartguy1196!)
- #️⃣ 🙏 PowerShellEditorServices #1931 - Fix broken links in readme. (Thanks @smartguy1196!)
- ✨ 🚂 PowerShellEditorServices #1928 - Generalize the execution busy status to all PowerShell tasks.
- ✨ 🕵️ PowerShellEditorServices #1916 - Upgrade PSScriptAnalyzer to 1.21.0. (Thanks @bergmeister!)
- ✨ 🙏 PowerShellEditorServices #1924 - Re-implement indicator when running registered editor commands.
- 🐛 🛫 vscode-powershell #4048 - Created a nested PowerShell for the top-level loop.
- #️⃣ 🙏 PowerShellEditorServices #1917 - Overhaul workspace search for symbol references.
- ✨ 🚨 PowerShellEditorServices #1914 - Add regression tests for F5 and F8 saving to history.
- ✨ 🙏 PowerShellEditorServices #1900 - Add setting to control references code lens.
- 🐛 🕵️ PowerShellEditorServices #1906 - Remove
null
markers to avoidNullReferenceException
.
- 🐛 📁 PowerShellEditorServices #1901 - Fix file close in workspace service for Linux. (Thanks @fflaten!)
- ✨ 🐢 PowerShellEditorServices #1892 - Add symbols for Pester setup and teardown blocks. (Thanks @fflaten!)
- 🐛 🔍 PowerShellEditorServices #1897 - Add artificial stack frame to represent contexts without one.
- 🐛 🔍 PowerShellEditorServices #1894 - Fix stepping while watch expressions or interactive pipeline is running.
- ✨ 🐢 PowerShellEditorServices #1891 - Fix whitespace in Pester symbol and add test. (Thanks @fflaten!)
- 🐛 🙏 PowerShellEditorServices #1887 - Fix symbol highlight when hovering function name. (Thanks @fflaten!)
- Just dependency updates.
- ✨ 🚨 PowerShellEditorServices #1874 - Add end-to-end integration test with Vim.
- 🐛 🕵️ vscode-powershell #4112 - Fix (and test) regression with PSScriptAnalyzer default rules.
- ✨ 🚨 PowerShellEditorServices #1872 - Add regression tests for parse error DiagnosticMarkers. (Thanks @fflaten!)
- ✨ 🚨 PowerShellEditorServices #1870 - Add
DoesNotDuplicateScriptMarkersAsync
regression test. - 🐛 🕵️ PowerShellEditorServices #1869 - Fix duplicate DiagnosticMarkers when reopening a file. (Thanks @fflaten!)
- ✨ 🚨 PowerShellEditorServices #1867 - Add regression test for when
prompt
is undefined. - 🐛 🛫 vscode-powershell #4073 - Fix bug where error in
prompt
function crashed REPL. - #️⃣ 🙏 vscode-powershell #2697 - Use
HostInfo.BundledModulePath
to find PSScriptAnalyzer.
- ✨ 🚨 PowerShellEditorServices #1861 - Add
DebuggerBreaksInUntitledScript
unit test. - ✨ 📟 PowerShellEditorServices #1860 - Rename "Integrated Console" to "Extension Terminal".
- ✨ 🚨 PowerShellEditorServices #1859 - Update and extend CI matrix.
- ✨ 🚨 PowerShellEditorServices #1858 - Add regression test for debugging script with dot-source operator.
- ✨ 🚨 PowerShellEditorServices #1857 - Add regression test for
$PSDebugContext
inprompt
function.
- 🐛 🛫 PowerShellEditorServices #1849 - Add
Directory.Exists()
check toSetInitialWorkingDirectoryAsync()
. - ✨ 🚨 PowerShellEditorServices #1850 - Catch
OperationCanceledException
in both command loops. - ✨ 🚨 PowerShellEditorServices #1793 - Improve CI stability.
- ✨ 🚨 PowerShellEditorServices #1846 - Add end-to-end Pester unit test.
- ✨ 🙏 PowerShellEditorServices #1844 - Update PSReadLine to v2.2.6.
- ✨ 📖 PowerShellEditorServices #1843 - Find/replace of
master
tomain
for branch rename. - 🐛 📟 vscode-powershell #3683 - Add command to PSReadLine history before cancellation.
- 🐛 🔍 PowerShellEditorServices #1839 - Fix logic checking for untitled or raw scripts.
- 🐛 🔍 PowerShellEditorServices #1838 - Don't use
RunContinuationsAsynchronously
for ourTaskCompletionSource
. - 🐛 📟 vscode-powershell #4021 - Fix piping to native commands for Windows PowerShell.
- ✨ 📖 PowerShellEditorServices #1831 - Add readme about
ReadKey
workarounds. - ✨ 🚨 PowerShellEditorServices #1832 - Improve
$PROFILE
variable and profile loading test. - ✨ 🚨 PowerShellEditorServices #1830 - Add regression test for untitled scripts in Windows PowerShell.
- ✨ 🚨 PowerShellEditorServices #1828 - Add regression test for accidentally allowing removal of
$psEditor
.
- ✨ 📟 PowerShellEditorServices #1823 - Utilize the
AddToHistory
delegate from PSRL proxy. - ✨ 🛫 PowerShellEditorServices #1821 - Add regression test for no defined profiles.
- ✨ 👷 PowerShellEditorServices #1820 - Add Emacs regression tests for PSES.
- 🐛 🧠 PowerShellEditorServices #1819 - Remove bad UX of commit characters for paths.
- 🐛 🔍 PowerShellEditorServices #1818 - Exit debugger stop early if cause is PSE.
- ✨ 👷 PowerShellEditorServices #1817 - Fix build script to support Windows on Arm64.
- 🐛 🔍 PowerShellEditorServices #1815 - Set
IsDebuggingRemoteRunspace
sooner for attach. - 🐛 🙏 PowerShellEditorServices #1814 - Fix error when piping
IFilePosition
toConvertTo-ScriptExtent
.
- ✨ 🧠 PowerShellEditorServices #1809 - Additional IntelliSense fixes and ToolTip overhaul.
- 🐛 🛫 PowerShellEditorServices #1807 - Fix startup bug when zero profiles are present.
- 🐛 🔍 vscode-powershell #3965 - Wrap untitled script with newlines.
- 🐛 🔍 vscode-powershell #3980 - Fix execution of debug prompt commands.
- 🐛 📟 PowerShellEditorServices #1802 - Set
EnableProfileLoading
default totrue
. - 🐛 🙏 PowerShellEditorServices #1695 - Re-enable stdio clients by fixing initialization sequence.
- ✨ 🧠 PowerShellEditorServices #1799 - Fix a lot of IntelliSense issues.
- #️⃣ 🙏 vscode-powershell #3962 - Increase stack size for PowerShell 5. (Thanks @nohwnd!)
- 🐛 🔍 vscode-powershell #3950 - Send
sendKeyPress
event across DAP for temporary integrated consoles.
- ✨ 🙏 PowerShellEditorServices #1787 - Bump PSReadLine to
v2.2.5
.
- ✨ 📟 PowerShellEditorServices #1785 - Add
IHostUISupportsMultipleChoiceSelection
implementation. - 🐛 🔍 PowerShellEditorServices #1784 - Do not exit from
DebuggerStop
unless resuming.
- 🐛 🛫 PowerShellEditorServices #1782 - Fix ordering of startup tasks so
psEditor
is defined before profiles are loaded. - 🐛 📟 PowerShellEditorServices #1781 - Bring back
WriteWithPrompt()
. - 🐛 📟 vscode-powershell #3937 - Update to latest PSReadLine beta (with fix for race condition).
- 🐛 🔍 PowerShellEditorServices #1778 - Fix extra prompting and manual debugger commands.
- ✨ 🚂 PowerShellEditorServices #1777 - Consolidate
InterruptCurrentForeground
andMustRunInForeground
. - ✨ 🚂 PowerShellEditorServices #1776 - Don't cancel on disposal of
CancellationScope
.
- 🐛 👷 PowerShellEditorServices #1761 - Bump
net461
tonet462
due to upcoming end of support. - 🐛 💎 vscode-powershell #3928 - Fix formatting handlers and PSScriptAnalyzer loading.
- 🐛 🔍 PowerShellEditorServices #1762 - Fix prompt spam and general debugger reliability improvements.
- ✨ 🙏 PowerShellEditorServices #1479 - Enable IDE0005 (unneccessary using statements) as error.
- 🐛 🙏 PowerShellEditorServices #1754 - With a fix in PSReadLine, we don't have to return a "null" key press.
- #️⃣ 🙏 PowerShellEditorServices #1757 - Enable code analysis and formatting as errors on build.
- ✨ 🚂 PowerShellEditorServices #1755 - Apply automatic fixes (manually).
- 🐛 🔍 PowerShellEditorServices #1736 - Fix attach to process debugging.
- 🐛 🙏 PowerShellEditorServices #1751 - Re-workaround uncancellable
Console.ReadKey
. - 🐛 🕵️ PowerShellEditorServices #1749 - Correctly map
SuggestedCorrection
toMarkerCorrection
. (Thanks @bergmeister!)
- #️⃣ 🙏 PowerShellEditorServices #1746 - Replace
_consoleHostUI
with_underlyingHostUI
.
- ✨ 🧠 vscode-powershell #3364 - Improve completion logic (more icons!).
- 🐛 🛫 PowerShellEditorServices #1576 - Remove
PackageManagement
module update prompt. - 🐛 📟 PowerShellEditorServices #1734 - Finish redirection of
$Host.PrivateData
. - 🐛 📟 PowerShellEditorServices #1639 - Redirect
PSHost.Notify*Application
methods.
- 🐛 🛫 vscode-powershell #2658 - Avoid error when
exclude
entry is a clause. - 🐛 🚂 vscode-powershell #3691 - Fix editor commands to interrupt current prompt.
- ✨ 🔍 PowerShellEditorServices #1724 - Re-enable line breakpoints for untitled scripts.
- ✨ 🙏 PowerShellEditorServices #1709 - Update PSReadLine to 2.2.2.
- 🐛 📟 vscode-powershell #3807 - Reset progress messages at end of REPL.
- 🐛 🕵️ PowerShellEditorServices #1718 - Return a code action for each diagnostic record. (Thanks @bergmeister!)
- 🐛 🔍 vscode-powershell #3832 - Avoid stopping the debugger when canceling other tasks in a debug session.
- 🐛 📟 PowerShellEditorServices #1607 - Redirect
EditorServicesConsolePSHost.PrivateData
to_internalHost
. - 🐛 📟 PowerShellEditorServices #1699 - Handle edge case where
prompt
is undefined. - 🐛 🔍 PowerShellEditorServices #1704 - Avoid recording debugger commands in the history.
- ✨ 🔍 PowerShellEditorServices #1703 - Use
static readonly
for defaultExecutionOptions
. - 🐛 🔍 vscode-powershell #3655 - Fix running untitled scripts with arguments (but break line breakpoints) .
- ✨ 🙏 PowerShellEditorServices #1694 - Add
Thread.Sleep(100)
to throttle REPL when it's non-interactive. (Thanks @colinblaise!)
- 🐛 📟 vscode-powershell #3786 - Print prompt and command when
WriteInputToHost
is true. - 🐛 📟 vscode-powershell #3685 - Display prompt after
F8
finishes. - 🐛 🔍 vscode-powershell #3522 - Synchronize PowerShell debugger and DAP server state.
- ✨ 🔍 PowerShellEditorServices #1680 - Display
DictionaryEntry
as key/value pairs in debugger. (Thanks @JustinGrote!)
- #️⃣ 💎 PowerShellEditorServices #1676 - Use EditorConfig for dotnet build and suppress existing issues. (Thanks @JustinGrote!)
- 🐛 🔍 PowerShellEditorServices #1672 - Handle
debuggerResult
being null inProcessDebuggerResult
. - 🐛 🙏 PowerShellEditorServices #1663 - Fix off-by-one error in validation within
GetOffsetAtPosition
. - 🐛 📟 PowerShellEditorServices #1667 - Fix
Write-Host -NoNewLine
and-*Color
. (Thanks @SeeminglyScience!) - 🐛 🔍 PowerShellEditorServices #1661 - Fix
DebuggerSetsVariablesWithConversion
test. - ✨ 🙏 vscode-powershell #2800 - Enable resolution of an alias to its function definition.
- ✨ 🔍 PowerShellEditorServices #1633 - Display
IEnumerables
andIDictionaries
in debugger prettily (with "Raw View" available). (Thanks @JustinGrote!)
So many more tests have been turned back on!
- ✨ 🙏 PowerShellEditorServices #1658 - Bump PSReadLine module to 2.2.0-beta5.
- 🐛 🚨 PowerShellEditorServices #1444 - Re-enable
ExtensionCommandTests.cs
. - 🐛 🙏 PowerShellEditorServices #1656 - Resurrect support to resolve aliased references.
- 🐛 🚨 PowerShellEditorServices #1445 - Split and clean up
LanguageServiceTests.cs
. - 🐛 🔍 vscode-powershell #3715 - Fix regression with
F5
to use.
instead of&
operator. - ✨ 🚨 vscode-powershell #3677 - Enable
PsesInternalHostTests
(previouslyPowerShellContextTests
).
No changes. We're re-releasing to update signatures with a new certificate.
- 🐛 🚂 vscode-powershell #3718 - Create
$psEditor
as a constant. - #️⃣ 🙏 PowerShellEditorServices #1641 - Added check to see if
PSModulePath
already containedBundledModulePath
. (Thanks @dkattan!) - #️⃣ 🙏 PowerShellEditorServices #1640 - Implemented
-LanguageServiceOnly
switch. (Thanks @dkattan!) - 🐛 🛫 PowerShellEditorServices #1638 - Fix
BundledModulePath
and PSReadLine loading (redux). - 🐛 🔍 PowerShellEditorServices #1635 - Re-enable
DebugServiceTests
suite.
- ✨ 📖 PowerShellEditorServices #1631 - Add Justin Grote as maintainer.
- 🐛 🔍 vscode-powershell #3667 - Improve debugger's variable population mechanism. (Thanks @JustinGrote and @SeeminglyScience!)
- 🐛 👷 PowerShellEditorServices #1628 - Fix build for Apple M1 when running PowerShell 7.2 (arm64).
- 🐛 👷 PowerShellEditorServices #1626 - Remove Windows Server 2016 from CI.
- ✨ 👷 PowerShellEditorServices #1619 - Install a single
dotnet
SDK.
- 🐛 🔍 PowerShellEditorServices #1608 - Improve PowerShell command and argument escaping. (Thanks @JustinGrote!)
- 🐛 📟 PowerShellEditorServices #1603 - Add
LengthInBufferCells
back toEditorServicesConsolePSHostRawUserInterface
. - #️⃣ 🙏 PowerShellEditorServices #1604 - Fix profile loading and
$PROFILE
variable.
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)
- ✨ 👷 PowerShellEditorServices #1589 - Remove
BinClean
dependency from build task. (Thanks @JustinGrote!) - #️⃣ 🙏 PowerShellEditorServices #1585 - Setting to Disable Pester Code Lens. (Thanks @JustinGrote!)
- #️⃣ 🙏 PowerShellEditorServices #1578 - Fix typo in comments. (Thanks @glennsarti!)
- 🐛 📟 PowerShellEditorServices #24977523 - Implement
LengthInBufferCells
to fix ANSI formatting. (Thanks @SeeminglyScience!) - ✨ 🔍 vscode-powershell #3522 - Send
stopDebugger
notification when appropriate. - 🐛 🔍 vscode-powershell #3537 - Fix bug with
ExecuteScriptWithArgsAsync
whenscript
is a command.
- ✨ 🕵️ PowerShellEditorServices #1562 - Pin PSScriptAnalyzer to
1.20.0
, Plaster to1.1.3
and PSReadLine to2.1.0
.
- 🐛 🔍 vscode-powershell #3513 - Fix debugger regression where console needed input to start/continue.
- 🐛 🛫 PowerShellEditorServices #1547 - Fix creation of
InitialSessionState
to useCreateDefault2()
. - ✨ 👷 PowerShellEditorServices #1544 - Explicitly disable implicit namespace imports.
- ✨ 👷 PowerShellEditorServices #1545 - Make
dotnet test
arguments configurable. - 🐛 ⏱️ vscode-powershell #3410 - Add regression test for
System.Windows.Forms
bug. - 🐛 👷 PowerShellEditorServices #1541 - Update C# language version to 10.0 to fix bug with .NET SDK 6 Preview 7.
- 🐛 🚨 PowerShellEditorServices #1442 - Fix tests in
Debugging/DebugServiceTests.cs
and simplify faulty script path logic. - ✨ 🔍 PowerShellEditorServices #1532 - Make
ExecuteCommandAsync
cancellable .
- ✨ 🔍 PowerShellEditorServices #1533 - Enable and fix many .NET Code Analysis warnings.
- ✨ 👷 PowerShellEditorServices #1530 - Update release and CI pipelines.
- ✨ 👷 PowerShellEditorServices #1528 - Automate entire release process.
- ✨ 🛫 PowerShellEditorServices #1527 - Add stack trace to resolve event handler on debug.
- ✨ 🛫 PowerShellEditorServices #1523 - Initialize runspaces with
InitialSessionState
object.
- ✨ 🚨 PowerShellEditorServices #1522 - Run new PSReadLine test on Windows.
- ✨ 📖 PowerShellEditorServices #1519 - Update README.md. (Thanks @vladdoster!)
- ✨ 🙏 PowerShellEditorServices #1493 - Load only bundled
PSReadLine
. - 🐛 👷 PowerShellEditorServices #1513 - Import
InvokePesterStub.ps1
fromvscode-powershell
(with history). - 🐛 🛫 PowerShellEditorServices #1503 - Handle
incomingSettings
andprofileObject
being null. (Thanks @dkattan!)
- 👷🐛 PowerShellEditorServices #1509 Fix signing of files in release.
- 🐛 PowerShellEditorServices #1495 - Prevent some exceptions.
- #️⃣ 🙏 vscode-powershell #3395 - Work around
dotnet publish
bug.
This stable release includes all the changes in the previews since v2.3.0, plus the following:
- ✨👷 PowerShellEditorServices #1491 - Bump OmniSharp to
v0.19.2
. - 🧠🐛 vscode-powershell #715 - Fix unintentional module import. (Thanks @MartinGC94!)
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.
- 🛫🐛 vscode-powershell #3306 - Bump OmniSharp to
v0.19.2-beta0002
. - 💭✨ PowerShellEditorServices #1474 - Add more logging and internal documentation.
- 🚂✨ PowerShellEditorServices #1467 - Make code more explicit.
- 📖🐛 PowerShellEditorServices #1465 - Remove "All Rights Reserved" from copyright notices.
- 👷✨ PowerShellEditorServices #1463 - Enable CodeQL with
codeql-analysis.yml
.
- 🔍🐛 PowerShellEditorServices #1460 - Bump OmniSharp package to
0.19.2-beta0001
. - 👷🐛 PowerShellEditorServices #1455 - Fix version in module definition file.
- 🧠✨ PowerShellEditorServices #1176 - Add '$' as trigger character for completion. (Thanks @MartinGC94!)
- 👷🚨✨ PowerShellEditorServices #1426 - Bump CI images and enable tests on Apple M1.
- ✨ PowerShellEditorServices #1424 - Update to use OmniSharp 0.19.0.
- #️⃣ 🙏 vscode-powershell #3180 - Fix New-EditorFile failing when no Editor window open. (Thanks @corbob!)
- 👷 ✨ No changes, just releasing a stable version.
- 📖 🐛 PowerShellEditorServices #1416 - Fix some markdownlint errors in README.
- 🛫 🐛 PowerShellEditorServices #1415 - Fix configuration processing to ensure that profiles are loaded.
- 👷 ✨ PowerShellEditorServices #1408 - Rewrite release signing pipeline.
- 🚨 ✨ PowerShellEditorServices #1398 - Refactor e2e tests.
- 🚂 ✨ PowerShellEditorServices #1381 - Hook up Telemetry LSP event and add telemetry event when users opt-out/in to features.
- 👷 🐛 PowerShellEditorServices #1397 - More compliant NuGet.config.
- 📺 🐛 vscode-powershell #3071 - Fix #1393: Always use local help to return cmdlet help text. (Thanks @deadlydog!)
- 🚂 ✨ PowerShellEditorServices #1376 - Move to Omnisharp lib 0.18.x.
- 🛫 🐛 vscode-powershell #2965 - Fix error when started in low .NET versions.
- 📖 🐛 PowerShellEditorServices #1364 - Typos in README.md. (Thanks @robotboyfriend!)
- 🧠 ✨ vscode-powershell #2898 - Type and Namespace completions now have tooltips. (Thanks @AspenForester!)
- 🛫 🐛 vscode-powershell #2719 - Fix startup assembly version loading issue in PowerShell 6 and up.
- 🔗 🐛 vscode-powershell #2810 - Fix reference number on Windows due to directory separator difference on Windows.
- PowerShellEditorServices #1343 - Updated Semantic Handler to work with new LSP APIs. (Thanks @justinytchen!)
- PowerShellEditorServices #1337 -
Treat
Member
s asProperties
in Semantic Highlighting for better accuracy.
- 📺✨ PowerShellEditorServices #1328 - Enable handlers for Semantic Highlighting for better highlighting accuracy.
- 👮✨ PowerShellEditorServices #1333 - Expose new rule PSAvoidUsingDoubleQuotesForConstantString added in PSScriptAnalyzer 1.19.1. (Thanks @bergmeister!)
- 📺✨ PowerShellEditorServices #1321 - Needed changes for Notebook UI Support.
- 🛫✨ PowerShellEditorServices #1323 - Add cwd property to settings. (Thanks @jwfx!)
- 🛫🐛 PowerShellEditorServices #1317 - Move tests to PS7 and PS7.1 and fix IsNetCore check.
- 🔗✨ PowerShellEditorServices #1316 - Return null when Hover request is cancelled or no symbol details. (Thanks @ralish!)
- 🛫🐛 vscode-powershell #2763 - TLS 1.2 Support When Installing PackageManagement Module. (Thanks @serkanz!)
- ⚡️🧠 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)
- 🔗 🐛 PowerShellEditorServices #1304 - Use From instead of FromFileSystem fixing CodeLens references.
- 📟 ✨ PowerShellEditorServices #1290 - Allow PSReadLine to work in ConstrainedLanguage mode.
- 🚂✨ PowerShellEditorServices #1301 -
Fix
AddLanguageProtocolLogging
OmniSharp breaking change. - 🚨✨ PowerShellEditorServices #1298 - Remove leftover csproj reference to already removed project in test project PowerShellEditorServices.Test.Host.csproj. (Thanks @bergmeister!)
- 🚂✨ PowerShellEditorServices #1300 -
Address breaking changes in Omnisharp lib and depend on
DocumentUri
more. - 🚂✨ PowerShellEditorServices #1291 -
Depend on
DocumentUri
for handing vscodeUri
's. - 🧠✨ vscode-powershell #2706 -
Support
completionItem/resolve
request for comparison operators to show tooltip information.
- 🛫🐛 PowerShellEditorServices #1288 - Don't update PackageManagement on ConstrainedLanguage mode.
- 🛫🐛 PowerShellEditorServices #1289 - Fix startup on empty workspaces.
- 🛫🐛 PowerShellEditorServices #1285 - Use API on ScriptBlock to generate PSCommand to run in ConstrainedLanguage mode.
- ⚡️🧠 PowerShellEditorServices #1283 - Move to Omnisharp lib 0.17.0 for increased performance.
- ✨👮 PowerShellEditorServices #1280 - Add additional settings for PSScriptAnalyzer 1.19. (Thanks @bergmeister!)
- 🔗 🐛 vscode-powershell #305 - Fix document highlight column.
- 🐛🧠 PowerShellEditorServices #1276 - Handle when no CommandInfo comes back from Get-Command to prevent an Exception showing up in logs.
- 📟 🐛 PowerShellEditorServices #1272 - Allow progress colors to be settable and gettable from the internal host.
- 🛫 ✨ PowerShellEditorServices #1239 - Prompt to update PackageManagement when using an old version.
- 🛫 ✨ PowerShellEditorServices #1269 - Support ConstrainedLanguage mode.
- 📺 ✨ PowerShellEditorServices #1268 - Refactor GetCommandHandler to not use dynamic.
- 🔍 🐛 vscode-powershell #2654 - Fix interpolation in Log points, switch to double quotes. (Thanks @rkeithhill!)
- PowerShellEditorServices #1267 - Update module manifest to match current module.
- 📟 🐛 vscode-powershell #2637 - Leverage internal HostUI to check if VT100 is supported.
- 📟 🐛 vscode-powershell #2637 - Use stable builds of PSReadLine for the PowerShell extension and preview builds for the PowerShell Preview extension.
- 💎 ✨ vscode-powershell #2543 - Allow formatting when ScriptAnalysis setting is set to disabled.
- ⚡️🧠 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
andsearch.exclude
in reference/CodeLens search.
- 🐛📟 PowerShellEditorServices #1258 - No more warning about PowerShellEditorServices module being imported with unapproved verb.
- ✨📟 PowerShellEditorServices #1255 - Move PSReadLine invocation into cmdlets to get closer to supporting ConstrainedLanguage mode. Also removes hard coded PSReadLine assembly version.
- ✨👷 PowerShellEditorServices #1252 - Use PowerShell Daily in CI.
- 🐛⚡️🧠🔗 PowerShellEditorServices #1251 -
Add cancellation to SignatureHelp request and cache results for cmdlets on
Get-Command
andGet-Help
.
- ✨📟 PowerShellEditorServices #1245 - Better PSReadLine version filter check to include 2.1.0+ prereleases.
- 🐛⚡️🧠🔗 PowerShellEditorServices #1248 -
Fix cancellation for completions and add
textDocument/hover
cancellation support.
- 🐛🧠 vscode-powershell #2584 - Refactor GetCommandSynopsisAsync method to make sure cmdlets with module prefixes work.
- 🐛⚡️🧠📚 vscode-powershell #2556 -
Add cancellation for
textDocument/completion
,textDocument/codeAction
,textDocument/folding
. - ✨👮 vscode-powershell #2572 - Only run diagnostics on PowerShell files.
- ⚡️🧠 PowerShellEditorServices #1237 - Optimize when we run GetCommandInfoAsync to use the pipeline less for Intellisense.
- ✨🧠 PowerShellEditorServices #1232 - Only resolve completion items from commands.
- ✨🐢 PowerShellEditorServices #1167 - Run a single test in Pester v5. (Thanks @nohwnd!)
- 🐛🔍 vscode-powershell #2534 - Ensure that errors are written to the console when debugging.
- 🐛🔍 vscode-powershell #2525 -
Don't warn users when using
Clear-Host
in temp sessions. - ✨💎 PowerShellEditorServices #1228 - Add better logging for formatter and refactor it into 1 class.
- 🐛🚂 vscode-powershell #2397 - Use Assembly.LoadFile for dependency loading in WinPS.
- ✨🛫 PowerShellEditorServices #1222 - Make initial logging work in constrained language mode, allowing the desired user-facing error to present.
- 🐛🛫 PowerShellEditorServices #1225 - Sign Clear-Host.ps1.
- 🐛🛫 PowerShellEditorServices #1219 - Ensure log directory is created.
- 🐛👷♀️ PowerShellEditorServices #1223 - Change Ms-vscode.csharp to ms-dotnettools.csharp. (Thanks @devlead!)
- 🐛🔧 PowerShellEditorServices #1220 - Fix typo in settings.
- ✨🔧 PowerShellEditorServices #1218 - Switch to better document selecting for vim extension.
- 🐛🧠 PowerShellEditorServices #1217 - Make session-state lock task-reentrant to fix Untitled file debugging.
- 🐛📟 PowerShellEditorServices #1201 - Fix newlines in error formatting.
- 🐛👮 vscode-PowerShell #2489 - Fix PSScriptAnalyzer not using default rules when no settings file present.
- 🐛📟 vscode-PowerShell #2291 -
Fix
Read-Host
dropping characters. - 🐛📺 vscode-PowerShell #2424 -
Fix
F8
not working repeatedly in an Interactive Debugging session. - 🐛🛫 vscode-PowerShell #2404 - Fix execution policy being set incorrectly at startup on Windows.
- 🐛🧠 vscode-PowerShell #2364 -
Fix intellisense and
F5
not working after debugging. - 🐛🧰 vscode-PowerShell #2495 - Fix PowerShellEditorServices.Commands module commands not working due to types being moved.
- 🐛👮 vscode-PowerShell #2516 - Fix CommentHelp for when a function has other problems with it.
- 🐛📁 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
andTask
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.
- 📺 vscode-powershell #2405 - Add tooltip to completions ParameterValue.
- 🛫 🐛 vscode-powershell #2393 - Probe netfx dir for deps.
- 🚂 ⏱️ 🐛 vscode-powershell #2352 - Fix lock up that occurs when WinForms is executed on the pipeline thread.
- 💭 🐛 vscode-powershell #2402 - Fix temp debugging after it broke bringing in $psEditor.
- 🧠 🐛 vscode-powershell #2324 - Fix unicode character uri bug.
- 🛫 📺 ✨ vscode-powershell #2370 - Make startup banner simpler.
- vscode-powershell #2386 - Fix uncaught exception when SafeToString returns null. (Thanks @jborean93!)
- 🔗 🐛 vscode-powershell #2374 - Simplify logic of determining Reference definition.
- 🛫 🐛 vscode-powershell #2379 - Use -Option AllScope to fix Windows PowerShell error.
- 👷 PowerShellEditorServices #1158 - Sets the distribution channel env var to "PSES" so starts can be distinguished in PS7+ telemetry
- 👷 📟 PowerShellEditorServices #1129 - Update PSReadLine to 2.0.0-rc1 in modules.json.
- 🛫 🐛 ⚡️ vscode-powershell #2292 - Isolate PSES dependencies from PowerShell on load + make PSES a pure binary module.
- ✨ 📟 PowerShellEditorServices #1108 - Clear the terminal via the LSP.
- 🔍 🐛 vscode-powershell #2319 - Run one invocation per SetBreakpoints request. (Thanks @SeeminglyScience!)
- 🐛 PowerShellEditorServices #1114 - Fix Import-EditorCommand -Module. (Thanks @sk82jack!)
- 🐛 🔍 PowerShellEditorServices #1112 - Fix breakpoint setting deadlock.
- 🔗 🐛 vscode-powershell #2306 - Fix references on Windows due to bad WorkspacePath.
- ✨ 👷 PowerShellEditorServices #993 - Add devcontainer support for building in container. (Thanks @bergmeister!)
- 🛫 🐛 vscode-powershell #2311 - Protect against no RootUri (no open workspace).
- 🐛 📟 vscode-powershell #2274 - Fix '@' appearing in console.
- 👮 🐛 vscode-powershell #2288 - Use RootUri.LocalPath for workspace path.
- 🐛 👮 PowerShellEditorServices #1101 -
Add
PSAvoidAssignmentToAutomaticVariable
to the default set of PSSA rules. (Thanks @bergmeister!) - 👮 🔗 🐛 vscode-powershell #2290 - Fix diagnostics not showing in untitled files and now also show CodeLens.
- 🔍 🐛 vscode-powershell #1850 - Fixes no prompt showing up when debugging.
- 🚂 📺 🐛 vscode-powershell #2284 - Fix running indicator by ignoring PSRL aborts.
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.
- 🐛 PowerShellEditorServices #1080 - Remove extra newline in GetComment feature.
- 🐛 PowerShellEditorServices #1079 - Fix duplicate diagnostics caused by DidChange handler.
- 🔧 PowerShellEditorServices #1076 - Graduate PSReadLine feature and add UseLegacyReadLine.
- ⚙️ PowerShellEditorServices #1075 - Lock OmniSharp dependencies to v0.14.0. (Thanks @mholo65!)
- 📟 PowerShellEditorServices #1064 - Add support for terminal error color settings in PS7.
- 🐛 PowerShellEditorServices #1073 - Fix prerelease version discovery and fix omnisharp change.
- 🐛 PowerShellEditorServices #1065 - Fix TEMP debugging.
- 🐛 vscode-powershell #1753 - Override PSRL ReadKey on Windows as well.
- 💭 PowerShellEditorServices #1066 - Rework Omnisharp logging integration to make logging to files work again.
- 👷 PowerShellEditorServices #1055 - Update .Net Core SDK from 2.1.801 to 2.1.802 (latest patch). (Thanks @bergmeister!)
- 🚂 PowerShellEditorServices #1056 - Re-architect PowerShell Editor Services to use the Omnisharp LSP platform.
- 🐛 vscode-powershell #2116 - Fix UNC intellisense backslash.
- 🐛 PowerShellEditorServices #1022 - Catch stream exceptions for some Debug Adapter stability.
- 🔎 PowerShellEditorServices #1021 - Add AutoCorrectAliases setting (PR to be made in VS-Code repo as well) to add support for optionally correcting aliases as well (added in PSSA 1.18.2). (Thanks @bergmeister!).
- 🐛 vscode-powershell #1994 - Fix crash when setBreakpoint from VSCode sends a git:/ URI.
- 🧹 PowerShellEditorServices #988 - Remove consoleecho lib for PowerShell 7.
- 📔 PowerShellEditorServices #986 - Documentation updates. (Thanks @SydneyhSmith!)
- ⚙️ PowerShellEditorServices #981 - Update NewtonSoft.Json dependency from 10.0.3 to 11.02 since PS 6.0 has been deprecated. (Thanks @bergmeister!)
- 🐛 vscode-powershell #2007 - Defend against crash when no PSScriptAnalyzer is found.
- 👷 PowerShellEditorServices #978 - Delete stale WebSocket code.
- ✨ PowerShellEditorServices #951 - Allow passing RunspaceName
- 🚨 PowerShellEditorServices #944 - Add integration testing module with simple tests to verify PSES starts and stops
- 🐛 PowerShellEditorServices #954 - Ensure NamedPipeServerStream is assigned in Windows PowerShell
- ✨ PowerShellEditorServices #952 - Update to PSReadLine 2.0.0-beta4
- ✨ PowerShellEditorServices #877 - Add filtering for CodeLens and References (Thanks @glennsarti!)
- 🐛 vscode-powershell #1933 - Stop crash when workspace doesn't exist
- 👷 PowerShellEditorServices #878 - Remove native named pipes implementation
- 🐛 PowerShellEditorServices #947 - Fix silent failure in VSCode WebViews by using Id for dictionary since multiple pages could have the same title
- 🐛 PowerShellEditorServices #946 - Rename to use async
- 👷 PowerShellEditorServices #943 - Improvements to the log parsing module (Thanks @rkeithhill!)
- 💻 PowerShellEditorServices #921 - Set up CI with Azure Pipelines
- 🐛 PowerShellEditorServices #908 - Fix issue with reference code lens not working with UNC paths (Thanks @rkeithhill!)
- 🐛 vscode-powershell #1571 - Fix faulty netfx check
- 🐛 PowerShellEditorServices #906 - Fix New-EditorFile with no folder or no files open
- ✨ vscode-powershell #1398 - Improve path auto-completion (Thanks @rkeithhill!)
- 🐛 PowerShellEditorServices #910 -
Fix UseCorrectCasing to be actually configurable via
powershell.codeFormatting.useCorrectCasing
(Thanks @bergmeister!) - 👷 PowerShellEditorServices #909 - Use global.json to pin .Net Core SDK version and update it from 2.1.402 to 2.1.602 (Thanks @bergmeister!)
- 👷 PowerShellEditorServices #903 - Move temp folder into repo to avoid state that causes build errors from time to time when rebuilding locally (and packages have updated) (Thanks @bergmeister!)
- 💻 PowerShellEditorServices #904 - Add initial credscan configuation ymls for CI
- 🐛 PowerShellEditorServices #901 - Switch to current lowercase names for powershell and mdlint exts (Thanks @rkeithhill!)
- PowerShellEditorServices #906 - Fix New-EditorFile with no folder or no files open
- PowerShellEditorServices #908 - Fix crash in CodeLens with UNC paths on Windows (Thanks @rkeithhill!)
- PowerShellEditorServices #902 - Improve path auto-completion (Thanks @rkeithhill!)
- PowerShellEditorServices #910 -
Fix UseCorrectCasing to be actually configurable via
powershell.codeFormatting.useCorrectCasing
(Thanks @bergmeister!) - PowerShellEditorServices #909 - Use global.json to pin .Net Core SDK version and update it from 2.1.402 to 2.1.602 (Thanks @bergmeister!)
- PowerShellEditorServices #903 - Move temp folder into repo to avoid state that causes build errors from time to time when rebuilding locally (and packages have updated) (Thanks @bergmeister!)
- PowerShellEditorServices #895 - Add warning to parameter validation set (Thanks @Benny1007!)
- PowerShellEditorServices #897 - Clean up and pop dead runspaces when using 'attach' debugging
- PowerShellEditorServices #888 - Add new ParseError level to ScriptFileMarkerLevel and filter out PSSA parse errors
- PowerShellEditorServices #858 - Fix XUnit warnings that better assertion operators should be used. (Thanks @bergmeister!)
- PowerShellEditorServices #854 - Reinstate test filtering (Thanks @glennsarti!)
- PowerShellEditorServices #866 - Catch NotSupportedException which can be thrown by FileStream constructor (Thanks @rkeithhill!)
- PowerShellEditorServices #868 - Speed up Travis builds by skipping the .NET Core initialization (Thanks @bergmeister!)
- PowerShellEditorServices #869 -
Added
AsNewFile
switch to Out-CurrentFile (Thanks @dfinke!) - PowerShellEditorServices #873 - Return the start line number for Describe block (Thanks @rkeithhill!)
- PowerShellEditorServices #876 - Temporarily disable deemphasized stack frames to fix VSCode issue 1750 (Thanks @rkeithhill!)
- PowerShellEditorServices #871 - Support -CustomPipeName, allowing configuration of custom namedpipes for LSP transport
- PowerShellEditorServices #872 - Fix unable to open files in problems/peek windows issue (Thanks @rkeithhill!)
- PowerShellEditorServices #875 - Add attach to local runspace. (Thanks @adamdriscoll!)
- PowerShellEditorServices #881 -
Use
NamedPipeConnectionInfo
to connect to remote runspaces instead of Enter-PSHostProcess - PowerShellEditorServices #845 - Enable UseCorrectCasing as a default rule (Thanks @bergmeister!)
- PowerShellEditorServices #835 -
Map new
powershell.codeformatting
settings WhitespaceInsideBrace and WhitespaceAroundPipe to PSSA settings hashtable (Thanks @bergmeister!) - PowerShellEditorServices #836 - Add PipelineIndentationStyle configuration mapping (Thanks @bergmeister!)
- PowerShellEditorServices #887 - Cherry pick PR 1750 merge commit to legacy/v1.x, has additional fixes (Thanks @rkeithhill!)
- PowerShellEditorServices #874 -
Use public
InternalHost
from origin runspace (Thanks @SeeminglyScience!) - PowerShellEditorServices #889 - Enhance Get-PsesRpcNotificationMessage/MessageResponseTimes to allow filtering by message name (Thanks @rkeithhill!)
- PowerShellEditorServices #859 - Upgrade PowerShellStandard.Library, PowerShell.SDK, NET.Test.SDK and Serilog NuGet packages to latest released version and enable AppVeyor build on any branch (Thanks @bergmeister!)
- PowerShellEditorServices #862 - Handle arbitrary exceptions when recursing workspace
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!
Due to the above changes, this version of the PowerShell Editor Services only works with Windows PowerShell 5.1 and PowerShell Core 6.
- PowerShellEditorServices #792 - Add Async suffix to async methods (Thanks @dee-see!)
- PowerShellEditorServices #775 - Removed ShowOnlineHelp Message (Thanks @corbob!)
- PowerShellEditorServices #769 - Set Runspaces to use STA when running in Windows PowerShell
- PowerShellEditorServices #741 - Migrate to netstandard2.0 and PSStandard
- PowerShellEditorServices #672 - PSReadLine integration (Thanks @SeeminglyScience!)
- PowerShellEditorServices #811 - Fix token-based folding (thanks @glennsarti!)
- PowerShellEditorServices #823 - Fix case-sensitivity of Pester CodeLens (thanks @bergmeister!)
- PowerShellEditorServices #815 - Fix crash when untitled files opened as PowerShell
- PowerShellEditorServices #826 - Fix crash when duplicate references are present in the same file
- PowerShellEditorServices #808 - Fix startup crash on Windows 7
- PowerShellEditorServices #807 - Fix deadlock occurring while connecting to named pipes
- PowerShellEditorServices #786 - Fix #17: Add go to definition support for dot sourced file paths (Thanks @dee-see!)
- PowerShellEditorServices #767 - Change unhandled messages to warnings instead of errors
- PowerShellEditorServices #765 - Fix PowerShell wildcard escaping in debug paths
- PowerShellEditorServices #778 - Fix multiple occurrences of the same typo (Thanks @dee-see!)
- PowerShellEditorServices #782 - Fix #779: NRE on Dispose in ExecutionTimer (Thanks @dee-see!)
- PowerShellEditorServices #772 - Add build information to releases to document it in logs
- PowerShellEditorServices #774 - New-EditorFile works on non-powershell untitled files
- PowerShellEditorServices #787 - Fix descion/decision typo in visitors (Thanks @dee-see!)
- PowerShellEditorServices #784 - Replace bad StringReader usage with String.Split()
- PowerShellEditorServices #768 - Make pipeline runtime exceptions warnings in log
- PowerShellEditorServices #790 - Add managed thread id to log output to add debugging threading issues (Thanks @rkeithhill!)
- PowerShellEditorServices #794 - Fix Pester CodeLens run/debug by not quoting params/already quoted args (Thanks @rkeithhill!)
- PowerShellEditorServices #785 - Adds ability to use separate pipes for reading and writing (Thanks @ant-druha!)
- PowerShellEditorServices #796 - Code cleanup of the start script and ESHost.cs file (Thanks @rkeithhill!)
- PowerShellEditorServices #795 - Fix file recursion overflow problems when enumerating directories in workspaces
- PowerShellEditorServices #697 - Add functionality to allow a Show-Command-like panel in VS Code (Thanks @corbob!)
- PowerShellEditorServices #777 - Move syntax folding processing to language server (Thanks @glennsarti!)
- PowerShellEditorServices #801 - Fix remoting to local PowerShell instances (e.g. WSL)
- PowerShellEditorServices #797 - Start of a PSES log file analyzer (Thanks @rkeithhill!)
- PowerShellEditorServices #789 - Add support for a "Show Documentation" quick fix menu entry (Thanks @rkeithhill!)
- PowerShellEditorServices #760 - Fix exception when remoting from Windows to non-Windows (Thanks @SeeminglyScience!)
- PowerShellEditorServices #750 - Fix issue where # in path causes the path to resolve incorrectly
- PowerShellEditorServices #721 - Change Get-Help behavior to return local help when online help can't be displayed (Thanks @corbob!)
- PowerShellEditorServices #748 - Fix index out-of-range exception when deleting script files
- PowerShellEditorServices #749 - Fix crash for finding symbols on bad paths
- PowerShellEditorServices #740 - Fix inner help completion
- PowerShellEditorServices #736 - Cache the reflection call done for completions
- PowerShellEditorServices #737 - Remove LINQ usage in language service methods
- PowerShellEditorServices #743 - Remove unnecessary LINQ calls from LanguageServer
- PowerShellEditorServices #728 - Fix formatter crash when script contains parse errors
- PowerShellEditorServices #730 - Fix crash where lines appended to end of script file causes out of bounds exception
- PowerShellEditorServices #732 - Fix CodeLens crash when a file cannot be opened, stop unnecessary file reads in CodeLens
- PowerShellEditorServices #729 - Fix a null dereference when an invalid cast exception has no inner exception
- PowerShellEditorServices #719 - Reduce allocations in the CodeLens providers
- PowerShellEditorServices #725 - Fix null dereference when debugging untitlted filesj
- PowerShellEditorServices #726 - Fix comment-based help snippet
- PowerShell/PowerShellEditorServices #722 - Add VSTS signing step
- PowerShell/PowerShellEditorServices #717 - Increment version for prerelease
- PowerShell/PowerShellEditorServices #715 - Reduce allocations when parsing files (Thanks @mattpwhite!)
- PowerShell/PowerShellEditorServices #712 - workaround to support inmemory:// (#712)
- PowerShell/PowerShellEditorServices #706 - Go To Definition works with different Ast types
- PowerShell/PowerShellEditorServices #707 - fix stdio passing
- PowerShell/PowerShellEditorServices #709 - Stop Diagnostic logging from logging to stdio when the communication protocol is set to stdio
- PowerShell/PowerShellEditorServices #710 - stdio should only launch language service not debug
- PowerShell/PowerShellEditorServices #705 - Fix load order of PSSA modules
- PowerShell/PowerShellEditorServices #704 - Do not enable PSAvoidTrailingWhitespace rule by default as it currenly flags whitespace-only lines as well (Thanks @bergmeister!)
-
PowerShell/PowerShellEditorServices #699 - Replace
New-Guid
with[guid]::NewGuid()
in startup script for PowerShell v3/4 compatibility -
PowerShell/PowerShellEditorServices #698 - Fix usage of
stat
on Linux in startup script
-
PowerShell/PowerShellEditorServices - (Breaking Change) Remove TCP as a transport and secure named-pipe usage
-
Powershell/PowerShellEditorServices #696 - Add RenameProvider capability (Thanks @adamdriscoll!)
-
Powershell/PowerShellEditorServices #667 - Add .gitattributes, .editorconfig and extensions.json (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #668 - Stop the debugger service before we restart it
-
Powershell/PowerShellEditorServices #666 - Change logging to use Serilog
-
Powershell/PowerShellEditorServices #674 - Implement initialized notification handler to get rid of log error (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #675 - Add symbols to modules built in Debug configuration
-
Powershell/PowerShellEditorServices #669 - Add more useful PSSA rules that should be enabled by default (Thanks @bergmeister!)
-
Powershell/PowerShellEditorServices #681 - Initial CODEOWNERS file to auto assign PR reviewers (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices - Include ThirdPartyNotices.txt
-
Powershell/PowerShellEditorServices #685 - Fix PSES crash that happens if you format an empty PS doc (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #677 - Make AnalysisService use the latest version of PSScriptAnalyzer
-
Powershell/PowerShellEditorServices #686 - Fix issue where MS Dynamics CRM (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #687 - Add what to do when there's a vulnerability to docs
-
Powershell/PowerShellEditorServices #693 - Set DocumentRangeFormattingProvider value to false. (Thanks @adamdriscoll!)
-
Powershell/PowerShellEditorServices #691 - Fix error w/Start-EditorServices transcript logging using temp console (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #694 - Change debug launch handler to treat null/empty cwd to not change dir (Thanks @rkeithhill!)
-
Powershell/PowerShellEditorServices #664 - Ignore .idea folder that jetbrains products like to spit out (Rider, IntelliJ, Resharper) (#664)
-
Powershell/PowerShellEditorServices #663 - Close stray processes on exit (#663)
-
PowerShell/PowerShellEditorServices #629 - Allow Tcp/NamedPipe/Stdio listeners to enable other editors to use PowerShell Editor Services. Thanks to yatli 🎉
-
PowerShell/PowerShellEditorServices #632 - Add events for PowerShell execution status (running, completed, etc).
-
PowerShell/PowerShellEditorServices #638 - Refactor pester script detection.
-
PowerShell/PowerShellEditorServices #639 - Add Start-EditorServices script from vscode-powershell repo.
-
PowerShell/PowerShellEditorServices #641 - Fix GetVersionDetails error on non-Windows platforms.
-
PowerShell/PowerShellEditorServices #642 - Add support for running xUnit tests in VS Test Explorer.
-
PowerShell/PowerShellEditorServices #643 - Fix issue using pre-release version of NET Core SDK.
-
PowerShell/PowerShellEditorServices #645 - Implemented a better way to test for in-memory file.
-
PowerShell/PowerShellEditorServices #647 - Change PSES to be buildable as a standalone.
-
PowerShell/PowerShellEditorServices #649 - Get rid of the unneeded exception variable causing a compile warning.
-
PowerShell/PowerShellEditorServices #650 - Add $psEditor.GetEditorContext().CurrentFile.SaveAs("Name") support.
-
PowerShell/PowerShellEditorServices #652 - Make the 'PSESRemoteSessionOpenFile' a support event.
-
PowerShell/PowerShellEditorServices #654 - Add customize output color enhancement. Thanks to KeroroLulu 🎉
-
PowerShell/vscode-powershell #863 - Eliminate duplicate [DBG] prompt.
-
PowerShell/PowerShellEditorServices #626 - Switch to w3c log file timestamp format.
-
PowerShell/vscode-powershell #907 - Track tempIntegratedConsole launch param, do not exit when session ends.
-
PowerShell/vscode-powershell #1159 - Fix PSES crash on debug start when function breakpoint defined.
-
PowerShell/PowerShellEditorServices #586 - Add build.ps1 to follow consistent guidelines.
-
PowerShell/PowerShellEditorServices #414 - Enable piping text to
psedit
to open a new untitled buffer. -
PowerShell/PowerShellEditorServices #413 - Enable piping multiple file paths through
psedit
to open those files. -
PowerShell/vscode-powershell #1185 - Fix
PowerShell: Expand Alias
command in macOS. -
PowerShell/PowerShellEditorServices #612, PowerShell/vscode-powershell - Fix macOS/linux crash with "too many open files".
-
PowerShell/PowerShellEditorServices #528 - Change psedit to Open-EditorFile and alias psedit to it.
-
PowerShell/PowerShellEditorServices #597, PowerShell/vscode-powershell #789 - Fix remote editing in PSCore by fixing *-Content calls in psedit scripts and setting ComputerName default.
-
PowerShell/PowerShellEditorServices #598 - Improve error logging for exec of pscommands.
-
PowerShell/PowerShellEditorServices #594 - Fixed markdown typo to correct the link to the contributing guidelines. Thanks to dee-see!
-
PowerShell/vscode-powershell #987, PowerShell/vscode-powershell #1107, PowerShell/PowerShellEditorServices #554, PowerShell/vscode-powershell #1146, PowerShell/vscode-powershell #1119, PowerShell/vscode-powershell #120 - Fix debugger step through on Unix platforms.
-
PowerShell/PowerShellEditorServices #590 - Add .Save() to FileContext API.
-
PowerShell/PowerShellEditorServices #588 - Fix bad PSScriptAnalyzer settings path crashes PSES.
-
PowerShell/PowerShellEditorServices #582 - Fix Very Large String crashes PS Editor Services.
-
PowerShell/vscode-powershell #1114 - Fix breakpoint on nonexisting file.
-
PowerShell/vscode-powershell #1014 - Fix crash of PSES on startup when workspace folder has [] in path.
-
PowerShell/PowerShellEditorServices #574 - Do not attempt to set breakpoints on files other than .ps1 and .psm1.
-
PowerShell/PowerShellEditorServices #570 - Fixed
Get-Help -ShowWindow
error in the PowerShell Integrated Console. However this fix does not address the issue with the help window appearing behind VSCode. -
PowerShell/PowerShellEditorServices #567 - Fixed off-by-one error in ValidatePosition method.
-
PowerShell/vscode-powershell #1091 - Fixed crash when editing remote file using psedit by catching PSNotSupportedException.
-
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 stop responding 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
- PowerShell/PowerShellEditorServices#529 - Fixed an issue with loading the PowerShellEditorServices module in PowerShell Core 6.0.0-beta3
-
#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.
-
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
-
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 stop responding 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.
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.
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!
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.
-
#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
-
#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
-
#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.
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.
-
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.
- 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 ofGet-Command
andGet-Help
in IntelliSense results
-
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
- 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
, andquit
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.
- 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
These improvements are described in detail in the vscode-powershell changelog for its 0.10.0 release.
- Added new terminal-based integrated console
- Added new code formatting settings with additional rules
- Added Get-Credential, SecureString, and PSCredential support
- 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
These improvements are described in detail in the vscode-powershell changelog for its 0.9.0 release.
- Added PowerShell code formatting integration with PSScriptAnalyzer
- Improved PSScriptAnalyzer execution, now runs asynchronously
- Added Document symbol support for .psd1 files
- 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
- Added
FileContext.Close()
method to close an open file
- Fixed #339: Prompt functions that return something other than string cause the debugger to crash
- 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
- 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
- Enabled setting variable values from the debug adapter protocol
- Added breakpoint hit count support invthe debug service
- Added a new TemplateService for integration with Plaster
- Refactored PSScriptAnalyzer integration to not take direct dependency on the .NET assembly
- 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
- 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
- Fixed PowerShell/vscode-powershell#246: Restore default PSScriptAnalyzer ruleset
- Fixed PowerShell/vscode-powershell#248: Extension fails to load on Windows 7 with PowerShell v3
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.
- 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
- 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"
- Fixed #221: Language server sometimes fails to initialize preventing IntelliSense, etc from working
- Fixed #222: Editor commands are not receiving $host.UI prompt results
- 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!
- 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!
- We've now introduced the
$profile
variable which contains the expected properties that you normally see inpowershell.exe
andpowershell_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.
$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.
- 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
- Added support for command breakpoints
- Added support for conditional breakpoints
- Improved the debug adapter startup sequence to handle new VS Code debugging features
using 'module'
now resolves relative paths correctly, removing a syntax error that previously appeared when relative paths were used- Calling
Read-Host -AsSecureString
orGet-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.
- Fixed #166: PowerShell Editor Services should be usable without PSScriptAnalyzer binaries
- 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
- Fixed #147: Running native console apps causes their stdout to be written in the Host
- 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!)
-
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
andpowerShell/showChoicePrompt
requests.
/logLevel:<level>
: Sets the log output level for the host. Possible values:Verbose
,Normal
,Warning
, orError
./logPath:<path>
: Sets the output path for logs written while the host is running
- 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
- Fixed issue PowerShell/vscode-powershell#49, Debug Console does not receive script output
- First release with official NuGet packages!
- Microsoft.PowerShell.EditorServices - Core .NET library
- Microsoft.PowerShell.EditorServices.Protocol - Protocol and client/server library
- Microsoft.PowerShell.EditorServices.Host - API host process package
- 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
- 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
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