Created
June 7, 2009 04:10
-
-
Save sergiopereira/125143 to your computer and use it in GitHub Desktop.
Visual Studio Macros that I often use
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Imports System | |
Imports EnvDTE | |
Imports EnvDTE80 | |
Imports EnvDTE90 | |
Imports System.Diagnostics | |
Imports System.Windows | |
Imports Microsoft.Win32 | |
Public Module HandyTools | |
'Add a button to your toolbar mapped to this macro to kick in presentation mode | |
Sub SwitchToPresentationSettings() | |
'original by Sarah Ford | |
' http://bit.ly/Unjd | |
'save a .settings file with bigger fonts and | |
' avoiding pale or low contrast colors | |
DTE.ExecuteCommand("Tools.ImportandExportSettings", _ | |
"-import:""C:\somepath\Presentation.vssettings""") | |
End Sub | |
'This is the counterpart that puts VS back the way you like it | |
Sub SwitchToNormalSettings() | |
DTE.ExecuteCommand("Tools.ImportandExportSettings", _ | |
"-import:""C:\somepath\normal.vssettings""") | |
End Sub | |
Sub CollapseAllSolutionFolders() | |
' Get the the Solution Explorer tree | |
Dim solutionExplorer As UIHierarchy | |
solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object() | |
' Check if there is any open solution | |
If (solutionExplorer.UIHierarchyItems.Count = 0) Then | |
Return | |
End If | |
' Get the top node (the name of the solution) | |
Dim rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1) | |
rootNode.DTE.SuppressUI = True | |
' Collapse each project node | |
Collapse(rootNode, solutionExplorer) | |
' Select the solution node, or else when you click | |
' on the solution window | |
' scrollbar, it will synchronize the open document | |
' with the tree and pop | |
' out the corresponding node which is probably not what you want. | |
rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect) | |
rootNode.DTE.SuppressUI = False | |
End Sub | |
Private Sub Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy) | |
For Each innerItem As UIHierarchyItem In item.UIHierarchyItems | |
If innerItem.UIHierarchyItems.Count > 0 Then | |
' Re-cursive call | |
Collapse(innerItem, solutionExplorer) | |
' Collapse | |
If innerItem.UIHierarchyItems.Expanded Then | |
innerItem.UIHierarchyItems.Expanded = False | |
If innerItem.UIHierarchyItems.Expanded = True Then | |
' Bug in VS 2005 | |
innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect) | |
solutionExplorer.DoDefaultAction() | |
End If | |
End If | |
End If | |
Next | |
End Sub | |
Sub CollapseAllSolutionFolders() | |
'Original by Edwin Evans | |
' http://www.codeproject.com/KB/macros/collapseall.aspx | |
' Get the the Solution Explorer tree | |
Dim solutionExplorer As UIHierarchy | |
solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object() | |
' Check if there is any open solution | |
If (solutionExplorer.UIHierarchyItems.Count = 0) Then | |
Return | |
End If | |
' Get the top node (the name of the solution) | |
Dim rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1) | |
rootNode.DTE.SuppressUI = True | |
' Collapse each project node | |
Collapse(rootNode, solutionExplorer) | |
' Select the solution node, or else when you click | |
' on the solution window | |
' scrollbar, it will synchronize the open document | |
' with the tree and pop | |
' out the corresponding node which is probably not what you want. | |
rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect) | |
rootNode.DTE.SuppressUI = False | |
End Sub | |
Private Sub Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy) | |
For Each innerItem As UIHierarchyItem In item.UIHierarchyItems | |
If innerItem.UIHierarchyItems.Count > 0 Then | |
' Re-cursive call | |
Collapse(innerItem, solutionExplorer) | |
' Collapse | |
If innerItem.UIHierarchyItems.Expanded Then | |
innerItem.UIHierarchyItems.Expanded = False | |
If innerItem.UIHierarchyItems.Expanded = True Then | |
' Bug in VS 2005 | |
innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect) | |
solutionExplorer.DoDefaultAction() | |
End If | |
End If | |
End If | |
Next | |
End Sub | |
End Module |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment