====== Visual Studio Macros ====== ===== Reformat ASPX ===== Sub ReformatAspx() Dim tags() As String = { _ "tr", "/tr", "td", "/td", "th", "/th", "tbody", "/tbody", "thead", "/thead", "table", "/table", "form", "/form", "link", _ "div", "/div", "img", "head", "/head", "body", "/body", "html", "/html", _ "uc1:", "ccc:", "asp:literal", _ "asp:textbox", "asp:requiredfieldvalidator", "asp:customvalidator", "asp:button", "asp:radiobutton", "ccc:fieldlabel" _ } DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument DTE.Find.MatchCase = False DTE.Find.MatchWholeWord = False DTE.Find.MatchInHiddenText = False DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone DTE.Find.Action = vsFindAction.vsFindActionReplaceAll For Each tag As String In tags DTE.Find.FindWhat = "<" + tag DTE.Find.ReplaceWith = vbNewLine + "<" + tag DTE.Find.Execute() Next tag DTE.ExecuteCommand("Edit.FormatDocument") DTE.Find.FindWhat = vbNewLine + vbNewLine DTE.Find.ReplaceWith = vbNewLine DTE.Find.Execute() DTE.Find.Execute() DTE.Find.Execute() DTE.Find.Execute() End Sub ===== Super Mega Reset ===== Sub SuperMegaReset() Dim objProcess As System.Diagnostics.Process Dim objProject As Project Dim PropObj As [Property] Dim fullPath As String Dim missedDirectories As String Dim deleteDirs() = New String() {"bin", "obj"} Dim deleteDir As String DTE.StatusBar.Text = "Killing ASP.NET worker process" For Each objProcess In System.Diagnostics.Process.GetProcessesByName("aspnet_wp") objProcess.Kill() Next For Each objProject In DTE.Solution.Projects If Not IsNothing(objProject.Properties) Then For Each PropObj In objProject.Properties DTE.StatusBar.Text = "[" & objProject.Name & "] " & PropObj.Name If PropObj.Name = "FullPath" Then For Each deleteDir In deleteDirs fullPath = PropObj.Value & deleteDir If System.IO.Directory.Exists(fullPath) Then Try DTE.StatusBar.Text = "Deleting " & fullPath System.IO.Directory.Delete(fullPath, True) Catch ex As System.IO.IOException missedDirectories = missedDirectories & Microsoft.VisualBasic.ControlChars.CrLf & Microsoft.VisualBasic.ControlChars.CrLf _ & "[" & objProject.Name & "] " & fullPath & Microsoft.VisualBasic.ControlChars.CrLf _ & " (" & ex.Message & ")" End Try End If Next End If Next End If Next DTE.StatusBar.Text = "Rebuilding" 'Rebuild the entire Solution DTE.ExecuteCommand("Build.RebuildSolution") If missedDirectories <> "" Then MsgBox("The following directories were not deleted:" & missedDirectories) End If End Sub ===== Text to C# String Assignment ===== Sub TextToCSharpStringAssignment() DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn) DTE.ActiveDocument.Selection.EndOfLine(True) DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentSelection DTE.Find.MatchCase = False DTE.Find.MatchWholeWord = False DTE.Find.MatchInHiddenText = False DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone DTE.Find.Action = vsFindAction.vsFindActionReplaceAll DTE.Find.FindWhat = vbTab DTE.Find.ReplaceWith = "\t" DTE.Find.Execute() DTE.Find.FindWhat = """" DTE.Find.ReplaceWith = "\""" DTE.Find.Execute() DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn) DTE.ActiveDocument.Selection.Indent() DTE.ActiveDocument.Selection.Indent() DTE.ActiveDocument.Selection.Text = """" DTE.ActiveDocument.Selection.EndOfLine() DTE.ActiveDocument.Selection.Text = "\n"" +" DTE.ActiveDocument.Selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn) DTE.ActiveDocument.Selection.LineDown() End Sub ===== Kill ASP.Net Worker Process ===== Sub KillAspNetWorkerProcess() Dim objProcess As System.Diagnostics.Process DTE.StatusBar.Text = "Gathering system process information." For Each objProcess In System.Diagnostics.Process.GetProcessesByName("aspnet_wp") If Not objProcess.HasExited Then Try DTE.StatusBar.Text = "Killing process " + objProcess.Id.ToString() objProcess.Kill() Catch ex As System.Threading.ThreadAbortException ' Just ignore it. End Try End If Next DTE.StatusBar.Text = "ASP.Net worker process killed." End Sub {{tag>reference code_snippet archived}}