UPDATE 03/03/2016: It's amazing how quickly this went from a simple script to within an hour yesterday becoming a Module and now released on PowerShellGallery and GitHub. Check out the instructions here to install this.
---------------
One feature I am hoping to see in the PowerShell ISE is the state of collapsed sections to be maintained for "recent" files. It is just annoying when you have a very large file that you are regularly working on to have to collapse all the sections you had previously collapsed each time you open it up..... anyway you can vote on that idea here.
If you didn't know there is a keyboard shortcut CTRL+M which will toggle the collapsed sections for the current file. Handy little gem that one. We can also programmatically invoke this method with:
This got me thinking, I can easily write an function that itterates through each open Tab/File and collapses it. Even better I can wrap that up into an add-on for the ISE.
I've added a menu item and also the keyboard shortcut CTRL+SHIFT+M to implement this.
Save the following code into your Profile script and enjoy!
Legal Stuff: As always the contents of this blog is provided “as-is”. The information, opinions and views expressed are those of the author and do not necessarily state or reflect those of any other company with affiliation to the products discussed. This includes any URLs or Tools. The author does not accept any responsibility from the use of the information or tools mentioned within this blog, and recommends adequate evaluation against your own requirements to measure suitability.
---------------
One feature I am hoping to see in the PowerShell ISE is the state of collapsed sections to be maintained for "recent" files. It is just annoying when you have a very large file that you are regularly working on to have to collapse all the sections you had previously collapsed each time you open it up..... anyway you can vote on that idea here.
If you didn't know there is a keyboard shortcut CTRL+M which will toggle the collapsed sections for the current file. Handy little gem that one. We can also programmatically invoke this method with:
$psISE.CurrentFile.Editor.ToggleOutliningExpansion()
This got me thinking, I can easily write an function that itterates through each open Tab/File and collapses it. Even better I can wrap that up into an add-on for the ISE.
I've added a menu item and also the keyboard shortcut CTRL+SHIFT+M to implement this.
Save the following code into your Profile script and enjoy!
#requires -Version 4 <# Script: ISEColapseAllFiles.ps1 Author: Matt Lavery Created: 02/03/2016 Version: 0.0.1 Change History Version Who When What -------------------------------------------------------------------------------------------------- 0.0.1 MLavery 02/03/2016 Initial Coding #> <# .SYNOPSIS Toggles the state of all expandable sections in all open files within the ISE .DESCRIPTION Toggles the state of all expandable sections in all open files within the ISE Works across PowerShell Tabs. Implements the keyboard shortcut CTRL+SHIFT+M and a menu item in the Add-ons menu. #> function Set-ISECollapseAllFiles { [CmdletBinding()] Param() Foreach ($psISETab in $psISE.PowerShellTabs) { Write-Verbose "PS Tab: $($psISETab.DisplayName)"; foreach ($psISEFile in $psISETab.Files) { Write-Verbose "PS File: $($psISEFile.DisplayName)"; $psISEFile.Editor.ToggleOutliningExpansion() } } } # remove the existing menu item if it exists if ($psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.DisplayName.Contains('Toggle Colapse All Files')) { $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Remove(($psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.GetEnumerator() | Where-Object DisplayName -EQ 'Toggle Colapse All Files')); } # add the add-on menu $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add('Toggle Colapse All Files',{Set-ISECollapseAllFiles},"CTRL+SHIFT+M");
Legal Stuff: As always the contents of this blog is provided “as-is”. The information, opinions and views expressed are those of the author and do not necessarily state or reflect those of any other company with affiliation to the products discussed. This includes any URLs or Tools. The author does not accept any responsibility from the use of the information or tools mentioned within this blog, and recommends adequate evaluation against your own requirements to measure suitability.
No comments:
Post a Comment