# vscode-powershell Release History
## v1.8.4
### Friday, August 31, 2018
#### [vscode-powershell](https://github.com/powershell/vscode-powershell)
- [vscode-PowerShell #1489](https://github.com/PowerShell/vscode-PowerShell/pulls/1489) -
Use asynchronous logic for help completions
- [vscode-PowerShell #1477](https://github.com/PowerShell/vscode-PowerShell/pulls/1477) -
Add BitsTransfer & user switch to install latest user profile insiders edition with Install-VSCode.ps1 script (Thanks @tabs-not-spaces!)
- [vscode-PowerShell #1485](https://github.com/PowerShell/vscode-PowerShell/pulls/1485) -
Increase connection timeout
#### [PowerShellEditorServices](https://github.com/powershell/PowerShellEditorServices)
- [PowerShellEditorServices #728](https://github.com/PowerShell/PowerShellEditorServices/pulls/728) -
Fix formatter crash when script contains parse errors
- [PowerShellEditorServices #730](https://github.com/PowerShell/PowerShellEditorServices/pulls/730) -
Fix crash where lines appended to end of script file causes out of bounds exception
- [PowerShellEditorServices #732](https://github.com/PowerShell/PowerShellEditorServices/pulls/732) -
Fix CodeLens crash when a file cannot be opened, stop unnecessary file reads in CodeLens
- [PowerShellEditorServices #729](https://github.com/PowerShell/PowerShellEditorServices/pulls/729) -
Fix a null dereference when an invalid cast exception has no inner exception
- [PowerShellEditorServices #719](https://github.com/PowerShell/PowerShellEditorServices/pulls/719) -
Reduce allocations in the CodeLens providers
- [PowerShellEditorServices #725](https://github.com/PowerShell/PowerShellEditorServices/pulls/725) -
Fix null dereference when debugging untitlted filesj
- [PowerShellEditorServices #726](https://github.com/PowerShell/PowerShellEditorServices/pulls/726) -
Fix comment-based help snippet
## v1.8.3
### Wednesday, August 15, 2018
#### [vscode-powershell](https://github.com/powershell/vscode-powershell)
- [PowerShell/vscode-powershell #1480](https://github.com/PowerShell/vscode-powershell/pull/1480) -
Use PowerShell signing script in VSTS builds
- [PowerShell/vscode-powershell #1460](https://github.com/PowerShell/vscode-powershell/pull/1460) -
Use newer version for preleases
- [PowerShell/vscode-powershell #1475](https://github.com/PowerShell/vscode-powershell/pull/1475) -
Change resourceLangId to editorLangId so right-click works properly with unsaved files (Thanks @corbob!)
- [PowerShell/vscode-powershell #1467](https://github.com/PowerShell/vscode-powershell/pull/1467) -
Remove region folding from non-region areas (Thanks @glennsarti!)
#### [PowerShellEditorServices](https://github.com/powershell/PowerShellEditorServices)
- [PowerShell/PowerShellEditorServices #722](https://github.com/PowerShell/PowerShellEditorServices/pull/722) -
Add VSTS signing step
- [PowerShell/PowerShellEditorServices #717](https://github.com/PowerShell/PowerShellEditorServices/pull/717) -
Increment version for prerelease
- [PowerShell/PowerShellEditorServices #715](https://github.com/PowerShell/PowerShellEditorServices/pull/715) -
Reduce allocations when parsing files (Thanks @mattpwhite!)
## v1.8.2
### Thursday, July 26, 2018
#### [vscode-powershell](https://github.com/powershell/vscode-powershell)
- [PowerShell/vscode-powershell #1438](https://github.com/PowerShell/vscode-powershell/pull/1438) -
Fix detecting contiguous comment blocks and regions (Thanks @glennsarti!)
- [PowerShell/vscode-powershell #1436](https://github.com/PowerShell/vscode-powershell/pull/1436) -
First approach to fix issue with dbg/run start before PSES running (Thanks @rkeithhill!)
#### [PowerShellEditorServices](https://github.com/powershell/PowerShellEditorServices)
- [PowerShell/PowerShellEditorServices #712](https://github.com/PowerShell/PowerShellEditorServices/pull/712) -
workaround to support inmemory://
- [PowerShell/PowerShellEditorServices #706](https://github.com/PowerShell/PowerShellEditorServices/pull/706) -
Go To Definition works with different Ast types
- [PowerShell/PowerShellEditorServices #707](https://github.com/PowerShell/PowerShellEditorServices/pull/707) -
fix stdio passing
- [PowerShell/PowerShellEditorServices #709](https://github.com/PowerShell/PowerShellEditorServices/pull/709) -
Stop Diagnostic logging from logging to stdio when the communication protocol is set to stdio
- [PowerShell/PowerShellEditorServices #710](https://github.com/PowerShell/PowerShellEditorServices/pull/710) -
stdio should only launch language service not debug
- [PowerShell/PowerShellEditorServices #705](https://github.com/PowerShell/PowerShellEditorServices/pull/705) -
Fix load order of PSSA modules
- [PowerShell/PowerShellEditorServices #704](https://github.com/PowerShell/PowerShellEditorServices/pull/704) -
Do not enable PSAvoidTrailingWhitespace rule by default as it currenly flags whitespace-only lines as well (Thanks @bergmeister!)
## v1.8.1
### Wednesday, July 11, 2018
- [PowerShell/vscode-powershell #1418](https://github.com/PowerShell/vscode-powershell/pull/1418) -
Fix code folding in documents using CRLF newlines. (Thanks @glennsarti!)
## v1.8.0
### Tuesday, July 10, 2018
- [PowerShell/vscode-powershell #1238](https://github.com/PowerShell/vscode-powershell/pull/1238) -
Added functionality to install the VSCode context menus. (Thanks @detlefs!)
- [PowerShell/vscode-powershell #1354](https://github.com/PowerShell/vscode-powershell/pull/1354) -
Edit snippet to fix issue #1353 (Thanks @kilasuit!)
- [PowerShell/vscode-powershell #1362](https://github.com/PowerShell/vscode-powershell/pull/1362) -
Updated Pester Problem Matcher (Thanks @awickham10!)
- [PowerShell/vscode-powershell #1359](https://github.com/PowerShell/vscode-powershell/pull/1359) -
(maint) Add visual ruler for line length (Thanks @glennsarti!)
- [PowerShell/vscode-powershell #1344](https://github.com/PowerShell/vscode-powershell/pull/1344) -
Update to TypeScript 2.9.x (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1323](https://github.com/PowerShell/vscode-powershell/pull/1323) -
SpecProcId - interactive var replacement supports only string type (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1327](https://github.com/PowerShell/vscode-powershell/pull/1327) -
Switch to named pipes
- [PowerShell/vscode-powershell #1321](https://github.com/PowerShell/vscode-powershell/pull/1321) -
GitHub issue template tweaks and add PSSA template (Thanks @bergmeister!)
- [PowerShell/vscode-powershell #1320](https://github.com/PowerShell/vscode-powershell/pull/1320) -
Take advantage of multiple issue templates (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1317](https://github.com/PowerShell/vscode-powershell/pull/1317) -
Change SpecifyScriptArgs command to only return string - not string[] (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1318](https://github.com/PowerShell/vscode-powershell/pull/1318) -
Update package veresion in lock file, format package.json file. (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1312](https://github.com/PowerShell/vscode-powershell/pull/1312) -
Updates to Examples PSSA settings file to include more rule config (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1305](https://github.com/PowerShell/vscode-powershell/pull/1305) -
Make SaveAs work for untitled files
- [PowerShell/vscode-powershell #1307](https://github.com/PowerShell/vscode-powershell/pull/1307) -
Added Columns, Improved readability for ToC. (Thanks @st0le!)
- [PowerShell/vscode-powershell #1368](https://github.com/PowerShell/vscode-powershell/pull/1368) -
Add new snippet for #region (#1368) (Thanks @lipkau!)
- [PowerShell/vscode-powershell #1416](https://github.com/PowerShell/vscode-powershell/pull/1416) -
(GH-1413) Resolve promise correctly in Folding feature (Thanks @glennsarti!)
- [PowerShell/vscode-powershell #1412](https://github.com/PowerShell/vscode-powershell/pull/1412) -
Set the extension's log level based on settings value (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1411](https://github.com/PowerShell/vscode-powershell/pull/1411) -
Escape paths w/single quotes before passing to powershell in single-quoted strings (#1411) (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1409](https://github.com/PowerShell/vscode-powershell/pull/1409) -
Rename file to match type name (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1408](https://github.com/PowerShell/vscode-powershell/pull/1408) -
Restore ability to start debug session when script run in PSIC hits breakpoint (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1407](https://github.com/PowerShell/vscode-powershell/pull/1407) -
Scroll the terminal to bottom for F8 executionPartial fix #1257 (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1414](https://github.com/PowerShell/vscode-powershell/pull/1414) -
Update grammar parsing for vscode-textmate v4 module (Thanks @glennsarti!)
- [PowerShell/vscode-powershell #1397](https://github.com/PowerShell/vscode-powershell/pull/1397) -
Allow debugging in interactive session with no dir change (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1402](https://github.com/PowerShell/vscode-powershell/pull/1402) -
Move lint directive after the file-header to fix lint error (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1366](https://github.com/PowerShell/vscode-powershell/pull/1366) -
Add support for side-by-side PS Core preview on Linux/macOS (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1391](https://github.com/PowerShell/vscode-powershell/pull/1391) -
Add PowerShell Online Help lookup to context menu (Thanks @corbob!)
- [PowerShell/vscode-powershell #1396](https://github.com/PowerShell/vscode-powershell/pull/1396) -
Add tslint rule file-header to enforce copyright in TS files (Thanks @rkeithhill!)
- [PowerShell/vscode-powershell #1355](https://github.com/PowerShell/vscode-powershell/pull/1355) -
Add syntax aware folding provider (Thanks @glennsarti!)
- [PowerShell/vscode-powershell #1395](https://github.com/PowerShell/vscode-powershell/pull/1395) -
Update community_snippets.md (Thanks @fullenw1!)
- [PowerShell/vscode-powershell #1382](https://github.com/PowerShell/vscode-powershell/pull/1382) -
Fix markdown syntax (Thanks @lipkau!)
- [PowerShell/vscode-powershell #1369](https://github.com/PowerShell/vscode-powershell/pull/1369) -
Update README.md with kbds and what to do if you find a vulnerability
- [PowerShell/vscode-powershell #1297](https://github.com/PowerShell/vscode-powershell/pull/1297) -
Added some snippets (#1297) (Thanks @SQLDBAWithABeard!)
## 1.7.0
### Wednesday, April 25, 2018
- [PowerShell/vscode-powershell #1285](https://github.com/PowerShell/vscode-powershell/pull/1285) -
Add a community snippet for date-annotated `Write-Verbose` messages.
- [PowerShell/vscode-powershell #1228](https://github.com/PowerShell/vscode-powershell/issues/1228) -
Make comment-based help trigger always be `##` with a new setting `powershell.helpCompletion` to
allow you to select between help comment styles: `BlockComment` (default) or `LineComment`.
You can also specify Disabled to disable this functionality.
- [PowerShell/vscode-powershell #603](https://github.com/PowerShell/vscode-powershell/issues/603) -
Fix PowerShell crashing on machines with IPv6 disabled.
- [PowerShell/vscode-powershell #1243](https://github.com/PowerShell/vscode-powershell/issues/1243) -
Support custom PowerShell executable paths in user configuration which can be selected (via name)
in either user or workspace configuration.
- [PowerShell/vscode-powershell #1264](https://github.com/PowerShell/vscode-powershell/pull/1264) -
Add support for [Visual Studio Live Share](https://code.visualstudio.com/visual-studio-live-share).
- [PowerShell/vscode-powershell #1261](https://github.com/PowerShell/vscode-powershell/pull/1261) -
Add support for `$psEditor.GetEditorContext.CurrentFile.SaveAs("NewFileName.ps1")`.
- [PowerShell/vscode-powershell #1252](https://github.com/PowerShell/vscode-powershell/pull/1252) -
Change the way the extension builds and runs, so that PowerShellEditorServices is self-contained.
- [PowerShell/vscode-powershell #1248](https://github.com/PowerShell/vscode-powershell/pull/1248) -
Replace `$global:IsOSX` with `$global:IsMacOS`.
- [PowerShell/vscode-powershell #1246](https://github.com/PowerShell/vscode-powershell/pull/1246) -
Create [community_snippets.md](https://github.com/PowerShell/vscode-powershell/blob/master/./docs/community_snippets.md) for user created snippets.
- [PowerShell/vscode-powershell #1155](https://github.com/PowerShell/vscode-powershell/issues/1155) -
Fix PSES crashes caused by running "Set PSScriptAnalyzer Rules" on an untitled file.
- [PowerShell/vscode-powershell #1236](https://github.com/PowerShell/vscode-powershell/pull/1236) -
Stop an error occurring when VSCode trims trailing whitespace and sends document update messages.
- [PowerShell/vscode-powershell #996](https://github.com/PowerShell/vscode-powershell/issues/996) -
Fix `Install-PSCode.ps1` crashing due to `$IsLinux` variable in older PowerShell versions.
- [PowerShell/vscode-powershell #1234](https://github.com/PowerShell/vscode-powershell/pull/1234) -
Add snippets for Hashtable and PSCustomObject.
- [PowerShell/vscode-powershell #1233](https://github.com/PowerShell/vscode-powershell/pull/1233) -
Add a keybinding for Show Addtional Commands to Shift-Alt-S.
- [PowerShell/vscode-powershell #1227](https://github.com/PowerShell/vscode-powershell/pull/1227) -
Add an indicator for when PowerShell is running in the status bar.
- [PowerShell/vscode-powershell #1225](https://github.com/PowerShell/vscode-powershell/pull/1225) -
Fix launch config not using temporary integrated console setting.
- [PowerShell/vscode-powershell #1208](https://github.com/PowerShell/vscode-powershell/issues/1208) -
Stop configured temporary windows closing after running Pester tests.
## 1.6.0
### Thursday, February 22, 2018
#### Fixes and Improvements
- [PowerShell/vscode-powershell #907](https://github.com/PowerShell/vscode-powershell/issues/907) -
Persist temp console debug session.
- [PowerShell/vscode-powershell #1198](https://github.com/PowerShell/vscode-powershell/pull/1198) -
Enhance Start-EditorServices.ps1 for better logging and fix bugs.
- [PowerShell/PowerShellEditorServices #413](https://github.com/PowerShell/PowerShellEditorServices/issues/413) -
Allow opening files as not previews to allow Open-EditorFile to open multiple files passed in.
- [PowerShell/vscode-powershell #1177](https://github.com/PowerShell/vscode-powershell/issues/1177) -
Add function-advanced snippet. Thanks to [Benny1007](https://github.com/Benny1007)!
- [PowerShell/vscode-powershell #1179](https://github.com/PowerShell/vscode-powershell/issues/1179) -
Switch onDebug to onDebugResolve:type for better debugging perf.
- [PowerShell/vscode-powershell #1086](https://github.com/PowerShell/vscode-powershell/issues/1086) -
Add tslint to vscode-powershell and address all issues.
- [PowerShell/vscode-powershell #1153](https://github.com/PowerShell/vscode-powershell/issues/1153) -
Add docs for ps remoting in vscode.
- [PowerShell/vscode-powershell #1161](https://github.com/PowerShell/vscode-powershell/pull/1161) -
Check for the expected version of the PowerShell Editor Services module fails because of the wrong function parameters. Thanks to [ant-druha](https://github.com/ant-druha)!
- [PowerShell/vscode-powershell #1141](https://github.com/PowerShell/vscode-powershell/pull/1141) -
Updated install script minified URL. Thanks to [tabs-not-spaces](https://github.com/tabs-not-spaces)!
- [PowerShell/PowerShellEditorServices #258](https://github.com/PowerShell/PowerShellEditorServices/issues/258) -
add .Save() to FileContext API.
- [PowerShell/vscode-powershell #1137](https://github.com/PowerShell/vscode-powershell/pull/1137) -
Added 64bit support & vscode-insiders install support. Thanks to [tabs-not-spaces](https://github.com/tabs-not-spaces)!
- [PowerShell/vscode-powershell #1115](https://github.com/PowerShell/vscode-powershell/issues/1115) -
Fixed "Open in ISE" keyboard shortcut from overwriting basic editing keyboard shortcut.
- [PowerShell/vscode-powershell #1111](https://github.com/PowerShell/vscode-powershell/issues/1111) -
Update examples tasks.json for 2.0.0 schema.
## 1.5.1
### Tuesday, November 14, 2017
- [PowerShell/vscode-powershell #1100](https://github.com/PowerShell/vscode-powershell/issues/1100) -
Fixed CodeLens on Pester test invocation fails with "Error: command 'vscode.startDebug' not found".
- [PowerShell/vscode-powershell #1091](https://github.com/PowerShell/vscode-powershell/issues/1091) -
Fixed crash when editing remote file using psedit.
- [PowerShell/vscode-powershell #1084](https://github.com/PowerShell/vscode-powershell/issues/1084) -
Fixed authenticode signature 'HashMismatch' on Start-EditorServices.ps1.
- [PowerShell/vscode-powershell #1078](https://github.com/PowerShell/vscode-powershell/issues/1078) -
Fixed debug adapter process terminating when setting breakpoint in an Untitled file or in a Git diff window.
- Update download.sh to remove macOS OpenSSL check since PowerShell Core Beta and higher no longer depend on OpenSSL. Thanks to [elovelan](https://github.com/elovelan)!
- Get-Help -ShowWindow will no longer error in the PowerShell Integrated Console. The help window will appear but at the moment, it will appear behind VSCode.
- Fix language server crash when processing a deep directory structure that exceeds max path.
## 1.5.0
### Friday, October 27, 2017
#### Fixes and Improvements
- [PowerShell/vscode-powershell #820](https://github.com/PowerShell/vscode-powershell/issues/820) -
Added new "Upload Bug Report to GitHub" command to make it easy to post an issue to the vscode-powershell GitHub repo. Thanks to [Mark Schill](https://github.com/PowerSchill)!
- [PowerShell/vscode-powershell #910](https://github.com/PowerShell/vscode-powershell/issues/910) -
Set-VSCodeHtmlContentView cmdlet now exposes `JavaScriptPaths` and `StyleSheetPaths` parameters to allow using JavaScript code and CSS stylesheets in VS Code HTML preview views.
- [PowerShell/vscode-powershell #909](https://github.com/PowerShell/vscode-powershell/issues/909) -
Write-VSCodeHtmlContentView's AppendBodyContent now accepts input from the pipeline
- [PowerShell/vscode-powershell #1071](https://github.com/PowerShell/vscode-powershell/pull/1071) -
Updated session menu to find PowerShell Core installs with the new pwsh.exe path
- [PowerShell/vscode-powershell #842](https://github.com/PowerShell/vscode-powershell/issues/842) -
psedit can now open empty files in remote sessions
- [PowerShell/vscode-powershell #1040](https://github.com/PowerShell/vscode-powershell/issues/1040) -
Non-PowerShell files opened in remote sessions using psedit can now be saved back to the remote server
- [PowerShell/vscode-powershell #660](https://github.com/PowerShell/vscode-powershell/issues/660) -
Set/Enable/Disable/Remove-PSBreakpoint commands now cause the VS Code breakpoint UI to be updated while the debugger is active
- [PowerShell/vscode-powershell #625](https://github.com/PowerShell/vscode-powershell/issues/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](https://github.com/PowerShell/vscode-powershell/issues/1004) -
Handle exception case when finding references of a symbol
- [PowerShell/vscode-powershell #942](https://github.com/PowerShell/vscode-powershell/issues/942) -
Temporary debugging session now does not hang when running "PowerShell Interactive Session" debugging configuration
- [PowerShell/vscode-powershell #917](https://github.com/PowerShell/vscode-powershell/issues/917) -
Added PowerShell.InvokeRegisteredEditorCommand command to be used from HTML preview views for invoking editor commands registered in PowerShell. Thanks to [Kamil Kosek](https://github.com/kamilkosek)!
- [PowerShell/vscode-powershell #872](https://github.com/PowerShell/vscode-powershell/issues/872) -
Watch variables with children are now expandable
- [PowerShell/vscode-powershell #1060](https://github.com/PowerShell/vscode-powershell/issues/1060) -
$psEditor.Workspace.NewFile() now works again in VSC 1.18.0 Insiders builds
- [PowerShell/vscode-powershell #1046](https://github.com/PowerShell/vscode-powershell/issues/1046) -
Debugging now works again in VSC 1.18.0 Insiders builds
- [PowerShell/PowerShellEditorServices #342](https://github.com/PowerShell/PowerShellEditorServices/issues/342) -
Unexpected file URI schemes are now handled more reliably
- [PowerShell/PowerShellEditorServices #396](https://github.com/PowerShell/PowerShellEditorServices/issues/396) -
Resolved errors being written to Integrated Console when running native applications while transcription is turned on
- [PowerShell/PowerShellEditorServices #529](https://github.com/PowerShell/PowerShellEditorServices/issues/529) -
Fixed an issue with loading the PowerShellEditorServices module in PowerShell Core 6.0.0-beta3
- [PowerShell/PowerShellEditorServices #533](https://github.com/PowerShell/PowerShellEditorServices/pull/533) -
Added new $psEditor.GetCommand() method for getting all registered editor commands. Thanks to [Kamil Kosek](https://github.com/kamilkosek)!
- [PowerShell/PowerShellEditorServices #535](https://github.com/PowerShell/PowerShellEditorServices/pull/535) -
Type information is now exposed on hover for variables in the Variables view
## 1.4.3
### Wednesday, September 13, 2017
- [#1016](https://github.com/PowerShell/vscode-powershell/issues/1016) -
Fixed a conflict with the "Azure Resource Manager for Visual Studio
Code" extension which prevented the PowerShell extension from loading
successfully.
## 1.4.2
### Tuesday, September 5, 2017
- [#993](https://github.com/PowerShell/vscode-powershell/issues/993) -
`powershell.powerShellExePath` using Sysnative path should be automatically
corrected when using 64-bit Visual Studio Code
- [#1008](https://github.com/PowerShell/vscode-powershell/issues/1008) -
Windows PowerShell versions (x64 and x86) are not enumerated correctly
when using 64-bit Visual Studio Code
- [#1009](https://github.com/PowerShell/vscode-powershell/issues/1009) -
PowerShell version indicator in status bar is missing tooltip
- [#1020](https://github.com/PowerShell/vscode-powershell/issues/1020) -
"Show Session Menu", "Show Integrated Console", and "Restart Current Session"
commands should cause PowerShell extension to be activated
## 1.4.1
### Thursday, June 22, 2017
- [PowerShell/PowerShellEditorServices#529](https://github.com/PowerShell/PowerShellEditorServices/issues/529) -
Fixed an issue with loading the extension with in PowerShell Core 6.0.0-beta3
## 1.4.0
### Wednesday, June 21, 2017
#### New HTML content view commands enabling custom UI tabs
You can now show editor tabs with custom HTML-based UI by using the
new HTML content view commands! This is the first step toward UI
extensions for VS Code written in PowerShell.
Here's an example:
```powershell
$view = New-VSCodeHtmlContentView -Title "My Custom View" -ShowInColumn One
Set-VSCodeHtmlContentView -View $view -Content "
Hello world!
"
Write-VSCodeHtmlContentView $view -Content "I'm adding new content!
"
```
And here's the result:
![HTML view demo](https://user-images.githubusercontent.com/79405/27394133-f96c38cc-565f-11e7-8102-a3727014ea5a.GIF)
Check out the cmdlet help for the following commands to learn more:
- `New-VSCodeHtmlContentView`
- `Show-VSCodeHtmlContentView`
- `Close-VSCodeHtmlContentView`
- `Set-VSCodeHtmlContentView`
- `Write-VSCodeHtmlContentView`
Since this is a first release, we've restricted the use of JavaScript
inside of the HTML. We will add this capability in a future release!
#### Code formatting setting presets for common styles
We've now added code formatting presets for the most common code style
conventions used in the PowerShell community:
- **[OTBS](https://en.wikipedia.org/wiki/Indent_style#Variant:_1TBS_.28OTBS.29)** -
Known as the "One True Brace Style". Causes `else`, `catch`, and other
keywords to be "cuddled", keeping them on the same line as the previous
closing brace:
```powershell
if ($var -eq $true) {
# Do the thing
} else {
# Do something else
}
```
- **[Stroustrup](https://en.wikipedia.org/wiki/Indent_style#Variant:_Stroustrup)** -
Causes beginning curly braces to be placed on the same line as the statement:
```powershell
if ($var -eq $true) {
# Do the thing
}
else {
# Do something else
}
```
- **[Allman](https://en.wikipedia.org/wiki/Indent_style#Allman_style)** - All curly braces are preceded by a newline:
```powershell
if ($var -eq $true)
{
# Do the thing
}
else
{
# Do something else
}
```
- **Custom** - Allows full customization of the code formatting settings.
In addition, code formatting now respects your `editor.insertSpaces` and
`editor.tabSize` settings!
#### Debugging in a temporary PowerShell Integrated Console
We've added the ability to debug your PowerShell code in a temporary
PowerShell Integrated Console so that you have a fresh runspace and
PowerShell process each time you hit F5!
This setting is necessary if you are developing with PowerShell 5
classes or modules using .NET assemblies because .NET types cannot
be reloaded inside of the same PowerShell process. This new setting
saves you from reloading your PowerShell session each time you debug
your code!
You can configure this behavior in two ways:
- Use the `launch.json` configuration parameter `createTemporaryIntegratedConsole`:
```json
{
"type": "PowerShell",
"request": "launch",
"name": "PowerShell Launch Current File in Temporary Console",
"script": "${file}",
"args": [],
"cwd": "${file}",
"createTemporaryIntegratedConsole": true
},
```
- Configure the setting `powershell.debugging.createTemporaryIntegratedConsole`:
```json
"powershell.debugging.createTemporaryIntegratedConsole": true,
```
The default value for these settings is `false`, meaning that the temporary
console behavior is **opt-in**.
Configuring the user or workspace setting will cause all debugging sessions
to be run in a temporary Integrated Console so it's useful if you would prefer
this to be the default behavior. The `launch.json` setting overrides the user
setting so you can always customize the behavior for a specific launch
configuration.
#### NewFile() API and Out-CurrentFile command
You can now create a new untitled file from within the Integrated Console
by using the `$psEditor.Workspace.NewFile()` command! Also, you can send
the formatted output of any PowerShell command to the current file by using
the `Out-CurrentFile` command:
```powershell
Get-Process | Out-CurrentFile
```
Special thanks to [Doug Finke](https://github.com/dfinke) for the contribution!
#### Other fixes and improvements
- [#881](https://github.com/PowerShell/vscode-powershell/pull/881) -
When you select a different PowerShell version in the session menu, your choice
is persisted to the `powershell.powerShellExePath` setting.
- [#891](https://github.com/PowerShell/vscode-powershell/issues/891) -
Pester CodeLenses now run tests without string interpolation of test names
## 1.3.2
### Monday, June 12, 2017
- [PowerShell/vscode-powershell#864](https://github.com/PowerShell/vscode-powershell/issues/864) - Improved the visibility of hyphen characters on the currently edited line in the PowerShell ISE theme (thanks [Stefan Stranger](https://github.com/stefanstranger)!)
- [PowerShell/vscode-powershell#857](https://github.com/PowerShell/vscode-powershell/issues/855) - Typing a new function into a file no longer causes the language server to crash
- [PowerShell/vscode-powershell#855](https://github.com/PowerShell/vscode-powershell/issues/855) - "Format Document" no longer hangs indefinitely
- [PowerShell/vscode-powershell#859](https://github.com/PowerShell/vscode-powershell/issues/859) - Language server no longer hangs when opening a Pester test file containing dot-sourced script references
- [PowerShell/vscode-powershell#856](https://github.com/PowerShell/vscode-powershell/issues/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](https://github.com/PowerShell/vscode-powershell/issues/838) - Right-clicking a debugger variable and selecting "Add to Watch" now has the desired result
- [PowerShell/vscode-powershell#837](https://github.com/PowerShell/vscode-powershell/issues/837) - Debugger call stack now navigates correctly to the user's selected stack frame
- [PowerShell/vscode-powershell#862](https://github.com/PowerShell/vscode-powershell/issues/862) - Terminating errors in the language server now close the Integrated Console immediately and prompt the user to restart the session
- [PowerShell/PowerShellEditorServices#505](https://github.com/PowerShell/PowerShellEditorServices/issues/505) - Added improved cmdlet help in the PowerShellEditorServices.Commands module
- [PowerShell/PowerShellEditorServices#509](https://github.com/PowerShell/PowerShellEditorServices/issues/509) - Importing the PowerShellEditorServices.Commands module no longer causes errors to be written about missing help languages
## 1.3.1
### Friday, June 9, 2017
#### Fixes and improvements
- [#850](https://github.com/PowerShell/vscode-powershell/issues/850) -
Fixed an issue where lower-cased "describe" blocks were not identified by
the CodeLens feature.
- [#851](https://github.com/PowerShell/vscode-powershell/issues/851) -
Fixed an issue where the language server would hang when typing out a describe
block.
- [#852](https://github.com/PowerShell/vscode-powershell/issues/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.
## 1.3.0
### Friday, June 9, 2017
#### CodeLens for running and debugging Pester tests
We've added two new CodeLens actions that show up above Describe blocks in
your Pester tests, "Run tests" and "Debug tests". By clicking one of these
CodeLenses, your tests will be executed in the Integrated Console with
the debugger attached. You can now set breakpoints and quickly debug a portion
of your test script:
![Pester CodeLens](https://user-images.githubusercontent.com/79405/26988706-3c054ed0-4d05-11e7-87f0-5bbf16ee73ef.GIF)
#### CodeLens support for finding references of a function or cmdlet
We've also added CodeLenses for showing the number of references for a function or
cmdlet that is defined in a script. If you click this CodeLens, the references
pane will appear so that you can navigate through all of the references:
![References CodeLens](https://user-images.githubusercontent.com/79405/26989245-384a4866-4d07-11e7-9c1e-076dbd7d6eb4.GIF)
We will add CodeLens support for PowerShell 5+ classes and class methods in a future
update!
#### Document symbol support for Pester tests
We've also added document symbol support for Pester tests so that you can easily
navigate among the Describe, Context, and It blocks in large Pester script files:
![Pester symbols](https://user-images.githubusercontent.com/79405/26989077-91e7a306-4d06-11e7-8e26-916bb78720f8.GIF)
#### New PowerShell ISE theme
We now include a new color theme that tries to provide a faithful interpretation
of the PowerShell ISE's style, including a blue console background! To use this
theme open the Command Palette (Ctrl+Shift+P), run the "Preferences: Color Theme"
command, then select "PowerShell ISE".
![ISE theme](https://user-images.githubusercontent.com/79405/26988805-9769aea6-4d05-11e7-81fc-da79bf1ec3cb.png)
This is a first attempt at making this happen so [give us feedback](https://git.io/v9jnL)
if you think that the colors can be improved! Super huge thanks to
[Matt McNabb](https://twitter.com/mcnabbmh) for putting this together!
#### New cmdlets inside the Integrated Console
Thanks to new PowerShell Editor Services co-maintainer [Patrick Meinecke](https://github.com/SeeminglyScience),
we've gained a new set of useful commands for interacting with the $psEditor APIs
within the Integrated Console:
- [Find-Ast](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Find-Ast.md)
- [Get-Token](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Get-Token.md)
- [ConvertFrom-ScriptExtent](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/ConvertFrom-ScriptExtent.md)
- [ConvertTo-ScriptExtent](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/ConvertTo-ScriptExtent.md)
- [Set-ScriptExtent](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Set-ScriptExtent.md)
- [Join-ScriptExtent](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Join-ScriptExtent.md)
- [Test-ScriptExtent](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Test-ScriptExtent.md)
- [Import-EditorCommand](https://github.com/PowerShell/PowerShellEditorServices/blob/master/module/docs/Import-EditorCommand.md)
This should also resolve the issues some people were seeing when we tried
to load the unsigned temporary script containing `Register-EditorCommand`
on machines with an AllSigned execution policy ([#784](https://github.com/PowerShell/vscode-powershell/blob/master/[https://github.com/PowerShell/vscode-powershell/issues/784])).
#### Fixes and improvements
- [#827](https://github.com/PowerShell/vscode-powershell/issues/827) -
Fixed an issue where an Output panel will appear with an error when you close
the PowerShell Integrated Terminal
## 1.2.1
### Thursday, June 1, 2017
#### Fixes and improvements
- [PowerShell/PowerShellEditorServices#478](https://github.com/PowerShell/PowerShellEditorServices/issues/478) -
Dynamic comment help snippets now generate parameter fields correctly
when `<#` is typed above a `param()` block.
- [#808](https://github.com/PowerShell/vscode-powershell/issues/808) -
An extra `PS>` is no longer being written to the Integrated Console for
some users who have custom prompt functions.
- [#813](https://github.com/PowerShell/vscode-powershell/issues/813) -
Finding references of symbols across the workspace now properly handles
inaccessible folders and file paths
- [#810](https://github.com/PowerShell/vscode-powershell/issues/810) -
`$psEditor.GetEditorContext()` now doesn't throw exceptions when in an
untitled file
- [#807](https://github.com/PowerShell/vscode-powershell/issues/807) -
The users's previously selected PowerShell session type is now retained
when running the "PowerShell: Restart Current Session" command.
- [#821](https://github.com/PowerShell/vscode-powershell/issues/821) -
Note properties on PSObjects are now visible in the debugger's Variables
view
## 1.2.0
### Wednesday, May 31, 2017
#### Dynamic comment-based help snippets now work inside functions ([#763](https://github.com/PowerShell/vscode-powershell/issues/748))
You asked for it, you got it! Dynamic comment-based help snippets now work
inside function definitions, both above the `param()` block and at the end
of the function body:
![Comment help GIF](https://cloud.githubusercontent.com/assets/79405/26637844/6e76cfa6-45d5-11e7-89b8-a2d6a559536b.GIF)
*NOTE: There is an issue where parameter sections don't get generated inside of a function
with a `[CmdletBinding()]` attribute. This is being tracked at [PowerShell/PSScriptAnalyzer#768](https://github.com/PowerShell/PSScriptAnalyzer/issues/768).*
#### Session menu now contains entries for PowerShell Core installations on Windows ([#794](https://github.com/PowerShell/vscode-powershell/issues/794))
It's now much easier to switch between Windows PowerShell and PowerShell Core installs
on Windows. When you run the "PowerShell: Show Session Menu" command or click the
PowerShell version indication in the status bar you'll now see PowerShell Core entries
in the menu:
![Session menu](https://cloud.githubusercontent.com/assets/79405/26637984/d177f5f8-45d5-11e7-9def-705b3fa68953.png)
#### Improved PSScriptAnalyzer marker display and suppression snippets ([#781](https://github.com/PowerShell/vscode-powershell/issues/781)) and ([#783](https://github.com/PowerShell/vscode-powershell/issues/783))
The green squiggle markers you receive from PSScriptAnalyzer now include the
name of the corresponding rule in their description:
![Rule name](https://cloud.githubusercontent.com/assets/79405/26638073/15aaaaae-45d6-11e7-93a0-cf6d5397553e.png)
This is really helpful with the new rule suppression snippets contributed by
[Jos Verlinde](https://github.com/Josverl)! You can access them by typing
`suppress-` and selecting one of the suppression snippet options:
![Suppress rule](https://cloud.githubusercontent.com/assets/79405/26638390/d8c42164-45d6-11e7-8844-a34a314654a5.GIF)
#### New built-in Pester problem matcher ([#798](https://github.com/PowerShell/vscode-powershell/issues/798))
We now include a built-in [problem matcher](https://code.visualstudio.com/Docs/editor/tasks#_defining-a-problem-matcher)
for Pester test output so that you don't need to define one in your `tasks.json`
file any longer! You can reference the built-in problem matcher in your test
tasks by using the name `$pester`:
```json
{
"taskName": "Test",
"suppressTaskName": true,
"isTestCommand": true,
"showOutput": "always",
"args": [ "Invoke-Pester -PesterOption @{IncludeVSCodeMarker=$true}" ],
"problemMatcher": "$pester"
}
```
*NOTE: There is an issue with problem matchers when using the new `2.0.0`
version of VS Code's task runner. Pester errors may show up multiple
times in the Problems panel. This issue is being tracked at
[#797](https://github.com/PowerShell/vscode-powershell/issues/797).*
#### Other fixes and improvements
- [#710](https://github.com/PowerShell/vscode-powershell/issues/710) -
Variable definitions can now be found across the workspace
- [#771](https://github.com/PowerShell/vscode-powershell/issues/771) -
Improved dynamic comment help snippet performance in scripts with many functions
- [#786](https://github.com/PowerShell/vscode-powershell/issues/786) -
Running the "Show Integrated Console" command will now start the extension
if it isn't already started
- [#774](https://github.com/PowerShell/vscode-powershell/issues/774) -
Pressing Enter now causes custom prompt functions to be fully evaluated
- [#770](https://github.com/PowerShell/vscode-powershell/issues/770) -
Fixed issue where custom prompt function might be written twice when
starting the integrated console
- [#767](https://github.com/PowerShell/vscode-powershell/issues/767) -
Fixed placeholder navigation for many built-in snippets
- [#782](https://github.com/PowerShell/vscode-powershell/issues/782) -
Fixed extension host crash when restarting the PowerShell session
- [#737](https://github.com/PowerShell/vscode-powershell/issues/737) -
Fixed hangs and high CPU when restarting or switching between PowerShell sessions
- [#777](https://github.com/PowerShell/vscode-powershell/issues/777) -
Changed "Starting PowerShell" message to clearly indicate that we're in the
PowerShell Integrated Console
## 1.1.0
### Thursday, May 18, 2017
#### New dynamic snippet for adding comment-based help ([#748](https://github.com/PowerShell/vscode-powershell/issues/748))
We've added a really cool new feature that enables you to create comment-based
help blocks with ease! When you've defined a function in a PowerShell script
file, you can now start typing a comment block above the function definition
and it will be completed for you:
![Help Comment GIF](https://cloud.githubusercontent.com/assets/79405/26216440/f31a47c8-3bb8-11e7-9fbc-7e3fb596c0ea.GIF)
This comment block works like a snippet, allowing you to tab through the fields
to quickly add documentation for the parts you care about.
This is a first pass for this feature and we plan to do more with it in the future.
Please feel free to [file feature requests](https://git.io/v9jnL) for anything else
you'd like to see!
#### Breakpoints hit in the Integrated Console now activate the debugger UI ([#619](https://github.com/PowerShell/vscode-powershell/issues/619))
In previous releases it was necessary to start the "PowerShell Interactive Session"
debugging configuration before you could run a command or script from the Integrated
Console and hit breakpoints in the editor UI. We've just removed this limitation!
Now when you set a breakpoint using `Set-PSBreakpoint` and run a script or command in the
Integrated Console, the debugger UI now gets activated:
![Debugger Activate GIF](https://cloud.githubusercontent.com/assets/79405/26217019/d17708f2-3bba-11e7-982f-4d481c2cf533.GIF)
Note that breakpoints set in the Integrated Console [still do not show up](https://github.com/PowerShell/vscode-powershell/issues/660)
in the editor UI; this requires [changes to VS Code](https://github.com/Microsoft/vscode/issues/8642)
that we'll be contributing for their next feature release.
#### Improved output when loading profile scripts ([#663](https://github.com/PowerShell/vscode-powershell/issues/663) and [#689](https://github.com/PowerShell/vscode-powershell/issues/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. This
fix will help us identify the things missing from the Integrated Console which
cause your profile scripts to fail (like the current lack of a [PrivateData object for setting console colors](https://github.com/PowerShell/vscode-powershell/issues/571)).
Please feel free to [file issues](https://git.io/v9jnL) for anything that causes
your profile scripts to throw errors when they get loaded!
#### Other fixes and improvements
- [#751](https://github.com/PowerShell/vscode-powershell/issues/751) -
Removed keybinding for the "Find PowerShell Modules from the Gallery" command
because it conflicts with VS Code's default "Format Selection" keybinding.
- [#739](https://github.com/PowerShell/vscode-powershell/issues/739) -
Fixed wording of PowerShell extension commands to have consistent capitalization.
Thanks to [@AndySchneiderDev](https://github.com/AndySchneiderDev) for the
contribution!
## 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](https://blogs.msdn.microsoft.com/powershell/2017/05/10/announcing-powershell-for-visual-studio-code-1-0/)
on the PowerShell Team Blog.
#### New script argument UI when debugging ([#705](https://github.com/PowerShell/vscode-powershell/issues/705))
You can now set PowerShell debugger configurations to prompt for arguments to be
passed to your script when it is executed. This is configured using the new
`${command:SpecifyScriptArgs}` configuration variable in `launch.json`:
```json
{
"type": "PowerShell",
"request": "launch",
"name": "PowerShell Launch DebugTest.ps1 w/Args Prompt",
"script": "${workspaceRoot}/DebugTest.ps1",
"args": [ "${command:SpecifyScriptArgs}" ],
"cwd": "${file}"
}
```
When you launch this configuration you will see a UI popup asking for arguments:
![image](https://cloud.githubusercontent.com/assets/5177512/25560503/e60e9822-2d12-11e7-9837-29464d077082.png)
You can type your arguments to the script as you would in PowerShell:
```
-Count 5
```
In future executions of this configuration, you will be presented with the arguments
you typed the last time you ran it so that you can easily edit them and test variations!
#### New hash table alignment formatting rule ([#672](https://github.com/PowerShell/vscode-powershell/issues/672))
We've added a new code formatting rule that automatically aligns the equal sign
in assignments of keys in hash tables or DSC configurations. It also works with
nested hash tables! Here's a simple example:
**Before**
```powershell
$formatTest = @{
Apple = 4
Tangerine = @{
Orange = 2
CornflowerBlue = 6
}
Banana = 3
}
```
**After**
```powershell
$formatTest = @{
Apple = 4
Tangerine = @{
Orange = 2
CornflowerBlue = 6
}
Banana = 3
}
```
This formatting rule is enabled by default but can be disabled with the following
setting:
```
"powershell.codeFormatting.alignPropertyValuePairs": false
```
#### Added basic module-wide function references support
In the past, finding the references or definition of a function in `FileA.ps1` only
worked if `FileA.ps1` had an explicit dot-source invocation of `FileB.ps1`. We have
removed this limitation so that you can now find definitions and references of any
function across all the script files in your project folder! This is especially
useful if you write PowerShell modules where all of the source files are dot-sourced
inside of the .psm1 file.
This new implementation is very basic and may give unexpected results, so please [file
an issue on GitHub](https://github.com/PowerShell/vscode-powershell/issues) if you get
a result you did not expect!
#### Other integrated console and debugger improvements
- Fixed [#698](https://github.com/PowerShell/vscode-powershell/issues/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 [#626](https://github.com/PowerShell/vscode-powershell/issues/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 [#618](https://github.com/PowerShell/vscode-powershell/issues/618) -
Pressing enter on an empty command line in the Integrated Console no longer adds the
empty line to the command history.
- Fixed [#617](https://github.com/PowerShell/vscode-powershell/issues/617) -
Stopping the debugger during a prompt for a mandatory script parameter no
longer crashes the language server.
- Fixed [PowerShellEditorServices #428](https://github.com/PowerShell/PowerShellEditorServices/issues/428) -
Debugger no longer hangs when you stop debugging while an input or choice prompt is
active in the integrated console.
## 0.12.2
### Friday, April 7, 2017
- Fixed [#662](https://github.com/PowerShell/vscode-powershell/issues/662) -
Changed usage of `$env:PSMODULEPATH` to `$env:PSModulePath` to conform to
a recent change in PowerShell 6 ([PowerShell/PowerShell#3255](https://github.com/PowerShell/PowerShell/pull/3255))
which makes the casing of `PSModulePath` consistent between Windows and
the *NIX platforms.
**NOTE: This is a breaking change for PowerShell extension users on Linux and macOS**
If you are using PowerShell 6.0.0-alpha.17 or lower you **will** need to upgrade
to 6.0.0-alpha.18.
- Fixed [#645](https://github.com/PowerShell/vscode-powershell/issues/645) -
"Go to Definition" or "Find References" now work in untitled scripts without
crashing the session
- Fixed [#632](https://github.com/PowerShell/vscode-powershell/issues/632) -
Debugger no longer hangs when launched while PowerShell session is still
initializing
- Fixed [#655](https://github.com/PowerShell/vscode-powershell/issues/655) -
Fixed an issue with current working directory being set incorrectly when
debugging untitled script files
- Fixed [PowerShellEditorServices #430](https://github.com/PowerShell/PowerShellEditorServices/issues/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 [PowerShellEditorServices #427](https://github.com/PowerShell/PowerShellEditorServices/issues/427) -
Fixed an occasional crash when requesting editor IntelliSense while running
a script in the debugger
- Fixed [PowerShellEditorServices #416](https://github.com/PowerShell/PowerShellEditorServices/issues/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.1
### Tuesday, April 4, 2017
- Fixed [#648](https://github.com/PowerShell/vscode-powershell/issues/648) -
Resolved an error when launching an untitled script file in a workspace
with no launch.json or in a window without a workspace path
## 0.12.0
### Tuesday, April 4, 2017
#### Debugging untitled files ([#555](https://github.com/PowerShell/vscode-powershell/issues/555))
You can now debug untitled files that are set to the PowerShell language mode. When you
create a new untitled file, use the "Change Language Mode" command (Ctrl+K M)
and choose "PowerShell" from the menu that appears. You can now press F5 to start
debugging the script file without saving it.
In the upcoming 1.11.0 release of Visual Studio Code (or in the current VS Code Insiders
release), you can configure the new `files.defaultLanguage` setting to `powershell` in either
your User or Workspace settings to cause all untitled files to be created with the PowerShell
mode by default. This will allow you to create new PowerShell scripts and debug them
immediately without saving first!
#### New right-click context menu for Run Selection ([#581](https://github.com/PowerShell/vscode-powershell/issues/581))
By user request, we've also added a new "Run Selection" item in the right-click context menu
for PowerShell script files:
![image](https://cloud.githubusercontent.com/assets/79405/24670885/a18513fe-1924-11e7-91d3-dc14c6cbfad9.png)
#### Debugging improvements
- Fixed [#620](https://github.com/PowerShell/vscode-powershell/issues/620) -
PowerShell session now does not crash when a breakpoint is hit outside of
debug mode
- Fixed [#614](https://github.com/PowerShell/vscode-powershell/issues/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.
- Fixed [#641](https://github.com/PowerShell/vscode-powershell/issues/641) -
PowerShell script files with capitalized extensions (.PS1, .PSM1) can now
be launched in the debugger
- Fixed [#616](https://github.com/PowerShell/vscode-powershell/issues/616) -
Debugger now shows column position indicators when debugging pipelines or
nested expressions:
![image](https://cloud.githubusercontent.com/assets/79405/24316990/2157480e-10b0-11e7-8a61-19fde63edfb7.png)
#### Integrated console improvements
- Fixed [PowerShell/PowerShellEditorServices#411](https://github.com/PowerShell/PowerShellEditorServices/issues/411) -
Commands run outside of the integrated console prompt now interrupt the prompt
correctly. This resolves a class of issues that appear when running commands
in the extension like "New Project from Plaster Template" or any `$psEditor`
commands added with the "Register-EditorCommand" function. Running any of
these commands will now cause the current input prompt to be cancelled so that
the command's output will be written correctly.
#### Code formatting improvements
- Fixed [#595](https://github.com/PowerShell/vscode-powershell/issues/595) -
High CPU usage when using formatOnType has now been resolve
- Fixed [#559](https://github.com/PowerShell/vscode-powershell/issues/559) -
The `newLineAfterCloseBrace` behavior has been improved to respect common syntax
usages
- Fixed[PowerShell/PowerShellEditorServices#380](https://github.com/PowerShell/PowerShellEditorServices/issues/380) -
The `whitespaceBeforeOpenBrace` behavior now leaves "magic" functions with the
correct formatting. For example: `(0 .. 10).foreach{$_}` now does not have a
whitespace inserted before the `{`.
#### New Project with Plaster improvements
- Fixed [#643](https://github.com/PowerShell/vscode-powershell/issues/643) -
Running Plaster using the New Project command now interrupts the command prompt
correctly
- Fixed [#504](https://github.com/PowerShell/vscode-powershell/issues/504) -
Confirming default values in Plaster input prompts by pressing Enter now works
correctly
#### Other fixes and improvements
- Added [#639](https://github.com/PowerShell/vscode-powershell/pull/639) and
[#640](https://github.com/PowerShell/vscode-powershell/pull/640) -
Our configuration setting descriptions have been edited for superior clarity
thanks to [June Blender](https://github.com/juneb)!
- Fixed [#611](https://github.com/PowerShell/vscode-powershell/pull/640) -
Example-* snippets are now displaying correctly in IntelliSense results
- Added [#624](https://github.com/PowerShell/vscode-powershell/pull/624) -
When you update the PowerShell extension after this release, you will now see
version update indicators which offer to display the changelog in a preview
tab
## 0.11.0
### Wednesday, March 22, 2017
#### Remotely edited files can now be saved
- Added [#583](https://github.com/PowerShell/vscode-powershell/issues/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.
#### Integrated console improvements
- Fixed [#533](https://github.com/PowerShell/vscode-powershell/issues/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 [542](https://github.com/PowerShell/vscode-powershell/issues/542) -
Get-Credential now hides keystrokes correctly on Linux and macOS.
We also added some new settings ([#580](https://github.com/PowerShell/vscode-powershell/issues/580),
[#588](https://github.com/PowerShell/vscode-powershell/issues/588)) to allow fine-tuning
of the integrated console experience:
- `powershell.startAutomatically` (default: `true`) - If true, causes PowerShell extension
features to start automatically when a PowerShell file is opened. If false, the user must
initiate startup using the 'PowerShell: Restart Current Session' command. IntelliSense,
code navigation, integrated console, code formatting, and other features will not be
enabled until the extension has been started. Most users will want to leave this
setting to `true`, though it was added to save CPU cycles if you often use new VS Code
instances to quickly view PowerShell files.
- `powershell.integratedConsole.showOnStartup` (default: `true`) - If true, causes the
integrated console to be shown automatically when the PowerShell extension is initialized.
- `powershell.integratedConsole.focusConsoleOnExecute` (default: `true`) - If `true`,
causes the integrated console to be focused when a script selection is run or a
script file is debugged.
#### Interactive debugging improvements
- Added [#540](https://github.com/PowerShell/vscode-powershell/issues/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 [#600](https://github.com/PowerShell/vscode-powershell/issues/600) -
Debugger commands like `stepInto`, `continue`, and `quit` are now available
in the integrated console while debugging a script.
- Fixed [#596](https://github.com/PowerShell/vscode-powershell/issues/596) -
VS Code's Debug Console now warns the user when it is used while debugging
a script. All command evaluation now happens through the integrated console
so this message should help alleviate confusion.
#### Other fixes and improvements
- Fixed [#579](https://github.com/PowerShell/vscode-powershell/issues/579) -
Sorting of IntelliSense results is now consistent with the PowerShell ISE
- Fixed [#591](https://github.com/PowerShell/vscode-powershell/issues/591) -
"Editor commands" registered with the `Register-EditorCommand` function are
now sorted alphabetically by their `Name` field, causing commands to be grouped
based on their source module.
- Fixed [#575](https://github.com/PowerShell/vscode-powershell/issues/575) -
The interactive console no longer starts up with errors in the `$Error` variable.
- Fixed [#599](https://github.com/PowerShell/vscode-powershell/issues/599) -
The [SSASCMDLETS module](https://msdn.microsoft.com/en-us/library/hh213141.aspx?f=255&MSPPError=-2147217396)
from SQL Server Analytics Service should now load correctly in the integrated
console.
## 0.10.1
### Thursday, March 16, 2017
#### Fixes and improvements
- Fixed [#566](https://github.com/PowerShell/vscode-powershell/issues/566) -
Enable editor IntelliSense while stopped at a breakpoint
- Fixed [#556](https://github.com/PowerShell/vscode-powershell/issues/556) -
Running and debugging scripts in the integrated console should not steal focus from the editor
- Fixed [#543](https://github.com/PowerShell/vscode-powershell/issues/543) -
Keyboard input using AltGr Ctrl+Alt modifiers does not work
- Fixed [#421](https://github.com/PowerShell/vscode-powershell/issues/421) -
Session startup should give a helpful error message if ConstrainedLanguage mode is turned on
- Fixed [#401](https://github.com/PowerShell/vscode-powershell/issues/401) -
Session startup should indicate if current PowerShell version is unsupported (PSv1 and v2)
- Fixed [#454](https://github.com/PowerShell/vscode-powershell/issues/454) -
ExecutionPolicy set via group policy or registry key should not cause language server to crash
- Fixed [#532](https://github.com/PowerShell/vscode-powershell/issues/532) -
DEVPATH environment variable not being set for interactive console session
- Fixed [PowerShellEditorServices #387](https://github.com/PowerShell/PowerShellEditorServices/issues/387) -
Write-(Warning, Verbose, Debug) are missing message prefixes and foreground colors
- Fixed [PowerShellEditorServices #382](https://github.com/PowerShell/PowerShellEditorServices/issues/382) -
PSHostUserInterface implementation should set SupportsVirtualTerminal to true
## 0.10.0
### Tuesday, March 14, 2017
#### New interactive console experience
We are excited to provide you with the first release of our new interactive
console experience! When you open up a PowerShell script file, you will
be greeted with a new VS Code integrated terminal window called
"PowerShell Integrated Console"
![integrated console screenshot](https://cloud.githubusercontent.com/assets/79405/23910661/b599f2ee-0897-11e7-9426-00af794c10b5.png)
In this console you will have an experience that falls somewhere between
the PowerShell ISE and the PowerShell console host:
- Tab completion of commands and their parameters
- Basic command history, accessed using the up/down arrow keys
- The `psedit` command opens existing files in an editor pane
- Pressing F8 in an editor pane runs the current line or selection in the console
- Native applications like `git` are fully supported
- Script debugging shares the same console session with the editor for
a true ISE-like debugging experience
It even works with your fancy prompt function if configured in your
VS Code profile (`$HOME\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1`):
![custom prompt screenshot](https://cloud.githubusercontent.com/assets/79405/23910654/b1bca66c-0897-11e7-81b1-70eff5b97c21.png)
The integrated console is supported on PowerShell v3 through v6 and works
on Linux and macOS with PowerShell Core. By default you don't have to
configure which PowerShell to run, we will pick an appropriate default
based on your platform. If you'd like to choose a different install
of PowerShell you can always change the `powershell.developer.powerShellExePath`
setting.
Keep in mind that this is the first release for this feature and there are
bound to be issues and missing functionality. Please feel free to file
GitHub issues for any bugs or feature requests!
##### Known Issues and Limitations
- [#535](https://github.com/PowerShell/vscode-powershell/issues/535) PSReadline
is currently **not** supported in the integrated console. We will enable this
in a future release.
- [#534](https://github.com/PowerShell/vscode-powershell/issues/534) Integrated console
prompt is not restarted when you stop the debugging of a local runspace in another
process. This will be addressed soon in a patch update.
- [#533](https://github.com/PowerShell/vscode-powershell/issues/533) Backspace key
does not work in the integrated console on Linux and macOS. The workaround for now
is to use Ctrl+H instead of the Backspace key. This will be addressed
soon in a patch update.
- [#536](https://github.com/PowerShell/vscode-powershell/issues/536) Integrated console
sometimes does not have a scrollbar at startup. The workaround is to resize the width
of the VS Code window slightly and the scrollbar will appear. This will be addressed
soon in a patch update.
#### Get-Credential and PSCredential support
Now that we have the integrated console, we have added support for the `Get-Credential`
cmdlet, `Read-Host -AsSecureString`, and any input prompt of type `SecureString` or `PSCredential`.
When you run any of these cmdlets you will be prompted inside the integrated console:
![credential screenshot](https://cloud.githubusercontent.com/assets/79405/23910668/bac9019c-0897-11e7-80e2-eaf1b9e507f8.png)
#### Code formatting improvements
We now support VS Code's `editor.formatOnType` setting so that your code gets formatted
as you type! Formatting will be triggered when you press Enter or the closing curly
brace character `}`.
Based on your feedback, we've also added new code formatting options, all of which
are turned on by default:
- `powershell.codeFormatting.newLineAfterCloseBrace` - Causes a newline to be inserted
after a closing brace in multi-line expressions like if/else
- `powershell.codeFormatting.whitespaceBeforeOpenBrace` - Causes whitespace to be
inserted before an open brace like `Foreach-Object {`
- `powershell.codeFormatting.whitespaceBeforeOpenParen` - Causes whitespace to be
inserted before an open parentheses like `if (`
- `powershell.codeFormatting.whitespaceAroundOperator` - Causes whitespace to be
inserted around operators like `=` or `+`
- `powershell.codeFormatting.whitespaceAfterSeparator` - Causes whitespace to be
inserted around separator characters like `;` and `,`
- `powershell.codeFormatting.ignoreOneLineBlock` - Single-line expressions, like
small if/else statements, will not be expanded to multiple lines.
We've also made many improvements to the performance and stability of the formatter.
#### Debugging improvements
We've added a new configuration for debugging your Pester tests. By default it
merely runs `Invoke-Pester` at the workspace path, but you can also edit the
configuation to add additional arguments to be passed through.
We've also added support for column breakpoints. Now you can set a breakpoint
directly within a pipeline by placing your cursor at any column on a line and
running the `Debug: Column Breakpoint` command:
![column breakpoint screenshot](https://cloud.githubusercontent.com/assets/79405/23910649/aaef70e4-0897-11e7-93b7-0d729969a1e2.png)
For the latest PowerShell Core release ([6.0.0-alpha.17](https://github.com/PowerShell/PowerShell/releases/tag/v6.0.0-alpha.17)),
we have also added the ability to step into ScriptBlocks that are executed on another
machine using `Invoke-Command -Computer`.
Set a breakpoint on an `Invoke-Command` line and then once it's hit:
![Invoke-Command screenshot](https://cloud.githubusercontent.com/assets/79405/23911032/c01b8ff6-0898-11e7-89e3-02a31d419fc5.png)
Press `F11` and you will step into the ScriptBlock. You can now continue to use
"step in" and trace the ScriptBlock's execution on the remote machine:
![remote script listing screenshot](https://cloud.githubusercontent.com/assets/79405/23918844/ca86cf28-08b1-11e7-8014-c689cdcccf87.png)
Note that you cannot currently set breakpoints in the script listing file as
this code is being executed without an actual script file on the remote machine.
#### Other fixes and improvements
- Fixed [#427](https://github.com/PowerShell/vscode-powershell/issues/427) -
The keybinding for "Expand Alias" command has been changed to Shift+Alt+E
- Fixed [#519](https://github.com/PowerShell/vscode-powershell/issues/519) -
Debugger hangs after continuing when watch expressions are set
- Fixed [#448](https://github.com/PowerShell/vscode-powershell/issues/448) -
Code formatter should keep indentation for multi-line pipelines
- Fixed [#518](https://github.com/PowerShell/vscode-powershell/issues/518) -
Code formatter fails when dollar-paren `$()` expressions are used
- Fixed [#447](https://github.com/PowerShell/vscode-powershell/issues/447) -
Code formatter crashes when run on untitled documents
## 0.9.0
### Thursday, January 19, 2017
#### New PowerShell code formatter
We've added a formatter for PowerShell code which allows you to format an
entire file or a selection within a file. You can access this formatter by
running VS Code's `Format Document` and `Format Selection` commands inside
of a PowerShell file.
You can configure code formatting with the following settings:
- `powershell.codeFormatting.openBraceOnSameLine` - Places open brace on the
same line as its associated statement. Default is `true`.
- `powershell.codeFormatting.newLineAfterOpenBrace` - Ensures that a new line
occurs after an open brace (unless in a pipeline statement on the same line).
Default is `true`
- `editor.tabSize` - Specifies the indentation width for code blocks. This
is a VS Code setting but it is respected by the code formatter.
- `editor.formatOnSave` - If true, automatically formats when they are saved.
This is a VS Code setting and may also affect non-PowerShell files.
Please note that this is only a first pass at PowerShell code formatting, it
may not format your code perfectly in all cases. If you run into any issues,
please [file an issue](https://github.com/PowerShell/vscode-powershell/issues/new)
and give us your feedback!
#### Streamlined debugging experience - launch.json is now optional!
**NOTE: This improvement depends on VS Code 1.9.0 which is due for release
early February!** However, you can try it out right now with the [VS Code Insiders](https://code.visualstudio.com/insiders)
release.
Thanks to a new improvement in VS Code's debugging APIs, we are now able to
launch the PowerShell debugger on a script file without the need for a `launch.json`
file. You can even debug individual PowerShell scripts without opening a
workspace folder! Don't worry, you can still use a `launch.json` file to configure
specific debugging scenarios.
We've also made debugger startup much more reliable. You will no longer see the
dreaded "Debug adapter terminated unexpectedly" message when you try to launch
the debugger while the language server is still starting up.
#### Support for debugging remote and attached runspaces
We now support remote PowerShell sessions via the [`Enter-PSSession`](https://msdn.microsoft.com/en-us/powershell/reference/5.0/microsoft.powershell.core/enter-pssession)
cmdlet. This cmdlet allows you to create a PowerShell session on another machine
so that you can run commands or debug scripts there. The full debugging
experience works with these remote sessions on PowerShell 4 and above, allowing
you to set breakpoints and see remote files be opened locally when those breakpoints
are hit.
For PowerShell 5 and above, we also support attaching to local and remote PowerShell
host processes using the [`Enter-PSHostProcess`](https://msdn.microsoft.com/en-us/powershell/reference/5.0/microsoft.powershell.core/enter-pshostprocess)
and [`Debug-Runspace`](https://msdn.microsoft.com/en-us/powershell/reference/5.0/microsoft.powershell.utility/debug-runspace)
cmdlets. This allows you to jump into another process and then debug a script that
is already running in one of the runspaces in that process. The debugger will break
execution of the running script and then the associated script file will be opened
in the editor so that you can set breakpoints and step through its execution.
We've also added a new `launch.json` configuration for debugging PowerShell host processes:
![Process launch configuration screenshot](https://cloud.githubusercontent.com/assets/79405/22089468/391e8120-dda0-11e6-950c-64f81b364c35.png)
When launched, the default "attach" configuration will prompt you with a list of
PowerShell host processes on the local machine so that you can easily select one
to be debugged:
![Process selection UI screenshot](https://cloud.githubusercontent.com/assets/79405/22081037/c205e516-dd76-11e6-834a-66f4c38e181d.png)
You can also edit the launch configuration to hardcode the launch parameters, even
setting a remote machine to connect to before attaching to the remote process:
```json
{
"type": "PowerShell",
"request": "attach",
"name": "PowerShell Attach to Host Process",
"computerName": "my-remote-machine",
"processId": "12345",
"runspaceId": 1
}
```
Please note that we currently do not yet support initiating remote sessions from Linux
or macOS. This will be supported in an upcoming release.
#### Initial support for remote file opening using `psedit`
Another nice improvement is that we now support the `psedit` command in remote and
attached sessions. This command allows you to open a file in a local or remote session
so that you can set breakpoints in it using the UI before launching it. For now these
remotely-opened files will not be saved back to the remote session when you edit and
save them. We plan to add this capability in the next feature update.
#### New "interactive session" debugging mode
You can now create a new launch configuration which drops you directly into the
debug console so that you can debug your scripts and modules however you wish.
You can call Set-PSBreakpoint to set any type of breakpoint and then invoke your
code through the console to see those breakpoints get hit. This mode can also be
useful for debugging remote sessions.
![Interactive session config screenshot](https://cloud.githubusercontent.com/assets/79405/22089502/5e56b4c6-dda0-11e6-8a51-f24e29ce7988.png)
Please note that this is NOT a replacement for a true interactive console experience.
We've added this debugging configuration to enable a few other debugging scenarios, like
debugging PowerShell modules, while we work on a true interactive console experience using
VS Code's Terminal interface.
#### New document symbol support for PSD1 files
We've extended our document symbol support to `.psd1` files to make it really easy to
navigate through them. When you have a `.psd1` file open, run the `Go to Symbol in File...`
command (Ctrl + Shift + O) and you'll see this popup:
![psd1 symbol screenshot](https://cloud.githubusercontent.com/assets/79405/22094872/85c7d9a2-ddc5-11e6-9bee-5fc8c3dae097.png)
You can type a symbol name or navigate using your arrow keys. Once you select one of the
symbol names, the editor pane will jump directly to that line.
#### Other fixes and improvements
- Added a new `Open Examples Folder` command to easily open the extension's
example script folder.
- Added a new setting `powershell.developer.powerShellExeIsWindowsDevBuild`
which, when true, indicates that the `powerShellExePath` points to a Windows
PowerShell development build.
- Fixed [#395](https://github.com/PowerShell/vscode-powershell/issues/395):
Quick Fix for PSAvoidUsingAliases rule replaces the entire command
- Fixed [#396](https://github.com/PowerShell/vscode-powershell/issues/396):
Extension commands loaded in PowerShell profile are not being registered
- Fixed [#391](https://github.com/PowerShell/vscode-powershell/issues/391):
DSC IntelliSense can cause the language server to crash
- Fixed [#400](https://github.com/PowerShell/vscode-powershell/issues/400):
Language server can crash when selecting PSScriptAnalyzer rules
- Fixed [#408](https://github.com/PowerShell/vscode-powershell/issues/408):
Quick fix requests meant for other extensions crash the language server
- Fixed [#401](https://github.com/PowerShell/vscode-powershell/issues/401):
Extension startup should indicate if the current PowerShell version is unsupported
- Fixed [#314](https://github.com/PowerShell/vscode-powershell/issues/314):
Errors/Warnings still show up in Problems window when file is closed
- Fixed [#388](https://github.com/PowerShell/vscode-powershell/issues/388):
Syntax errors are not reported when powershell.scriptAnalysis.enable is set to false
## 0.8.0
### Friday, December 16, 2016
#### Improved PowerShell session management
It's now much easier to manage the active PowerShell session. We've added a
new item to the status bar to indicate the state of the session and the version
of PowerShell you're using:
![Screenshot of status indicator](https://cloud.githubusercontent.com/assets/79405/21247551/fcf2777c-c2e4-11e6-9659-7349c35adbcd.png)
When this status item is clicked, a new menu appears to give you some session
management options:
![Screenshot of session menu](https://cloud.githubusercontent.com/assets/79405/21247555/009fa64c-c2e5-11e6-8171-76914d3366a0.png)
You can restart the active session, switch between 32-bit and 64-bit PowerShell on
Windows or switch to another PowerShell process (like a 6.0 alpha build) that
you've configured with the `powershell.developer.powerShellExePath`.
We've also improved the overall experience of loading and using the extension:
- It will prompt to restart the PowerShell session if it crashes for any reason
- It will also prompt to restart the session if you change any relevant PowerShell
configuration setting like the aforementioned `powershell.developer.powerShellExePath`.
- You can easily access the logs of the current session by running the command
`Open PowerShell Extension Logs Folder`.
#### Create new modules with Plaster
In this release we've added integration with the [Plaster](https://github.com/PowerShell/Plaster)
module to provide a `Create New Project from Plaster Template` command. This command will
walk you through the experience of selecting a template and filling in all of
the project details:
![Screenshot of Plaster template selection](https://cloud.githubusercontent.com/assets/79405/21247560/087b47a4-c2e5-11e6-86e7-ba3727b5e36d.png)
![Screenshot of Plaster input](https://cloud.githubusercontent.com/assets/79405/21247562/0a79b130-c2e5-11e6-97e9-cfd672803f75.png)
We include one basic project template by default and will add more in the very
near future. However, you won't need to update the PowerShell extension to get these
new templates, they will appear when you install an update to the Plaster module from
the [PowerShell Gallery](https://www.powershellgallery.com/).
Check out [Plaster's documentation](https://github.com/PowerShell/Plaster/tree/master/docs/en-US)
for more details on how it can be used and how you can create your own templates.
#### New "quick fix" actions for PSScriptAnalyzer rules
The PowerShell extension now uses any "suggested corrections" which are returned with
a rule violation in your script file to provide a "quick fix" option for the affected
section of code. For example, when the `PSAvoidUsingCmdletAliases` rule finds the use
of a non-whitelisted alias, you will see a light bulb icon that gives the option to
change to the full name (right click or Ctrl+. on the marker):
![Screenshot of PSScriptAnalyzer quick fix](https://cloud.githubusercontent.com/assets/79405/21247558/05887e86-c2e5-11e6-9c67-e4558a7e2dba.png)
If you'd like to see more quick fixes for PowerShell code, head over to the
[PSScriptAnalyzer](https://github.com/PowerShell/PSScriptAnalyzer) GitHub page and
get involved!
#### Easily enable and disable PSScriptAnalyzer rules
Another improvement related to PSScriptAnalyzer is the ability to change the active
PSScriptAnalyzer rules in the current editing session using a helpful selection menu:
![Screenshot of PSScriptAnalyzer rule selection](https://cloud.githubusercontent.com/assets/79405/21247557/037888b6-c2e5-11e6-816f-6732e13cddb7.png)
You can enable and disable active rules by running the `Select PSScriptAnalyzer Rules`
command. For now this only changes the active session but in a future release we will
modify your PSScriptAnalyzer settings file so that the changes are persisted to future
editing sessions.
#### New "hit count" breakpoints in the debugger
When debugging PowerShell scripts you can now set "hit count" breakpoints which
cause the debugger to stop only after the breakpoint has been encountered a specified
number of times.
![Screenshot of a hit count breakpoint](https://cloud.githubusercontent.com/assets/79405/21247563/0c159202-c2e5-11e6-8c91-36791c4fa804.png)
#### Other fixes and improvements
- We now provide snippets for the `launch.json` configuration file which make it easier
to add new PowerShell debugging configurations for your project.
- In PowerShell `launch.json` configurations, the `program` parameter has now been
renamed to `script`. Configurations still using `program` will continue to work.
- Fixed #353: Cannot start PowerShell debugger on Windows when offline
- Fixed #217: PowerShell output window should be shown when F8 is pressed
- Fixed #292: Check for Homebrew's OpenSSL libraries correctly on macOS
- Fixed #384: PowerShell snippets broken in VS Code 1.8.0
## 0.7.2
### Friday, September 2, 2016
- Fixed #243: Debug adapter process has terminated unexpectedly
- Fixed #264: Add check for OpenSSL on OS X before starting the language service
- Fixed #271: PSScriptAnalyzer settings path isn't being passed along
- Fixed #273: Debugger crashes after multiple runs
- Fixed #274: Extension crashes on Ctrl+Hover
## 0.7.1
### Tuesday, August 23, 2016
- "Auto" variable scope in debugger UI now expands by default
- Fixed #244: Extension fails to load if username contains spaces
- Fixed #246: Restore default PSScriptAnalyzer ruleset
- Fixed #248: Extension fails to load on Windows 7 with PowerShell v3
## 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](https://github.com/PowerShell/PowerShell).
You can find installation and usage instructions at the [PowerShell GitHub repository](https://github.com/PowerShell/PowerShell).
## 0.6.2
### Friday, August 12, 2016
- Fixed #231: In VS Code 1.4.0, IntelliSense has stopped working
- Fixed #193: Typing "n" breaks intellisense
- Fixed #187: Language server sometimes crashes then $ErrorActionPreference = "Stop"
## 0.6.1
### Monday, May 16, 2016
- Fixed #180: Profile loading should be enabled by default
- Fixed #183: Language server sometimes fails to initialize preventing IntelliSense, etc from working
- Fixed #182: Using 'Run Selection' on a line without a selection only runs to the cursor position
- Fixed #184: When running a script in the debugger, $host.Version reports wrong extension version
## 0.6.0
### Thursday, May 12, 2016
#### 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](https://powershell.github.io/PowerShellEditorServices/guide/extensions.html)
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`
- In Visual Studio Code the profile name is `Microsoft.VSCode_profile.ps1`.
- `$host.Name` now returns "Visual Studio Code Host" and `$host.Version` returns
the version of the PowerShell extension that is being used.
#### Other improvements
- IntelliSense for static methods and properties now works correctly. If you
type `::` after a type such as `[System.Guid]` you will now get the correct
completion results. This also works if you press `Ctrl+Space` after the `::`
characters.
- `$env` variables now have IntelliSense complete correctly.
- Added support for new VSCode command `Debug: Start Without Debugging`. Shortcut
for this command is Ctrl+F5.
- Changed the keyboard shortcut for `PowerShell: Expand Alias` from Ctrl+F5 to Ctrl+Alt+e.
- Added support for specifying a PSScriptAnalyzer settings file by
providing a full path in your User Settings for the key `powershell.scriptAnalysis.settingsPath`.
You can also configure the same setting in your project's `.vscode\settings.json`
file to contain a workspace-relative path. If present, this workspace-level setting
overrides the one in your User Settings file. See the extension's `examples\.vscode\settings.json`
file for an example.
- The debug adapter now does not crash when you attempt to add breakpoints
for files that have been moved or don't exist.
- Fixed an issue preventing output from being written in the debugger if you
don't set a breakpoint before running a script.
#### New configuration settings
- `powershell.scriptAnalysis.settingsPath`: Specifies the path to a PowerShell Script Analyzer settings file. Use either an absolute path (to override the default settings for all projects) or use a path relative to your workspace.
## 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.
Hover over the Debug workspace's 'Breakpoints' list header and click the 'Add'
button then type a command name (like `Write-Output`) in the new text box that
appears in the list.
- Added support for conditional breakpoints.
Right click in the breakpoint margin to the left of the code editor and click
'Add conditional breakpoint' then enter a PowerShell expression in the text box
that appears in the editor.
#### Other improvements
- Added a preview of a possible project template for PowerShell Gallery modules in
the `examples` folder. Includes a PSake build script with Pester test, clean,
build, and publish tasks. See the `examples\README.md` file for instructions.
Check it out and give your feedback on GitHub!
- `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.
#### New configuration settings
- `powershell.useX86Host`: If true, causes the 32-bit language service to be used on 64-bit Windows. On 32-bit Windows this setting has no effect.
## 0.4.1
### Wednesday, February 17, 2016
- Updated PSScriptAnalyzer 1.4.0 for improved rule marker extents
- Added example Pester task for running tests in the examples folder
- Fixed #94: Scripts fail to launch in the debugger if the working directory path contains spaces
## 0.4.0
### Tuesday, February 9, 2016
#### Debugging improvements
[@rkeithhill](https://github.com/rkeithhill) spent a lot of time polishing the script debugging experience for this release:
- You can now pass arguments to scripts in the debugger with the `args` parameter in launch.json
- You can also run your script with the 32-bit debugger by changing the `type` parameter in launch.json to "PowerShell x86" (also thanks to [@adamdriscoll](https://github.com/adamdriscoll)!)
- The new default PowerShell debugger configuration now launches the active file in the editor
- You can also set the working directory where the script is run by setting the `cwd` parameter in launch.json to an absolute path. If you need a workspace relative path, use ${workspaceRoot} to create an absolute path e.g. `"${workspaceRoot}/modules/foo.psm1"`.
We recommend deleting any existing `launch.json` file you're using so that a new one will
be generated with the new defaults.
#### 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
- Added choice and input prompt support
- When executing code using the 'Run Selection' command, choice and input prompts appear as VS Code UI popups
- When executing code in the debugger, choice and input prompts appear in the Debug Console
#### New commands
- "Find/Install PowerShell modules from the gallery" (`Ctrl+K Ctrl+F`): Enables you to find and install modules from the PowerShell Gallery (thanks [@dfinke](https://github.com/dfinke)!)
- "Open current file in PowerShell ISE" (`Ctrl+Shift+i`): Opens the current file in the PowerShell ISE (thanks [@janegilring](https://github.com/janegilring)!)
#### Editor improvements
- Path auto-completion lists show just the current directory's contents instead of the full path (which had resulted in clipped text)
- Parameter auto-completion lists are now sorted in the same order as they are in PowerShell ISE where command-specific parameters preceed the common parameters
- Parameter auto-completion lists show the parameter type
- Command auto-completion lists show the resolved command for aliases and the path for executables
- Many improvements to the PowerShell snippets, more clearly separating functional and example snippets (all of the latter are prefixed with `ex-`)
- Added some additional example script files in the `examples` folder
#### New configuration settings
- `powershell.developer.editorServicesLogLevel`: configures the logging verbosity for PowerShell Editor Services. The default log level will now write less logs, improving overall performance
## 0.3.1
### Thursday, December 17, 2015
- Fix issue #49, Debug Console does not receive script output
## 0.3.0
### Tuesday, December 15, 2015
- Major improvements in variables retrieved from the debugging service:
- Global and script scope variables are now accessible
- New "Auto" 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
- Fixed a wide array of completion text replacement bugs
- Improved extension upgrade experience
## 0.2.0
### Monday, November 23, 2015
- (Experimental) Added a new "Run selection" (F8) command which executes the current code selection and displays the output
- Added a new online help command! Press Ctrl+F1 to get help for the symbol under the cursor.
- Enabled PowerShell language features for untitled and in-memory (e.g. in Git diff viewer) PowerShell files
- Added `powershell.scriptAnalysis.enable` configuration variable to allow disabling script analysis for performance (issue #11)
- Fixed issue where user's custom PowerShell snippets did not show up
- 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:
- Syntax highlighting
- Code snippets
- 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