Skip to main content

Save All/Format All Documents in Visual Studio


Sub FormatAll()
 
 For Each proj As Project In DTE.Solution.Projects
  
  FormatFileRecur(proj.ProjectItems())
 
 Next

End Sub

Sub FormatFileRecur(ByVal projectItems As EnvDTE.ProjectItems)
 
 For Each pi As EnvDTE.ProjectItem In projectItems
  
  If pi.Collection Is projectItems Then
   
   Dim pi2 As EnvDTE.ProjectItems = pi.ProjectItems
   
   Try
    
    If pi.Name.EndsWith(".cs") Then
     
     If Not (pi.Name.EndsWith("Designer.cs")) Then
       
      If Not pi.IsOpen Then pi.Open(Constants.vsViewKindCode)
      
     pi.Document.Activate()
      
     DTE.ExecuteCommand("Edit.FormatDocument")
      
     If Not pi.Document.Saved Then pi.Document.Save()
      
     pi.Document.Close()
     
     End If
    
    End If
   
   Catch ex As Exception
    
    'Ignore this error - some project items cannot be opened.           
   
   End Try
   
   If pi2 IsNot Nothing Then
    
    FormatFileRecur(pi2)
   
   End If
  
  End If
 
 Next

End Sub

Comments

Popular posts from this blog

Wave Undo

To implement Undo, the simplest way is to use a MemoryStream object in your WaveDisplayForm (MDI Child) and simply serialize the Wave (which should be marked as [Serializable] to the stream and hold on to the stream object. private MemoryStream _undoStream = new MemoryStream(); private bool _canUndo = false; public void SaveForUndo() {      BinaryFormatter bf = new BinaryFormatter();      bf.Serialize(_undoStream, wave);      _undoStream.Flush();      // This rewinds the stream so that when it is used for deserialization, it's ready to use,     // otherwise, the deserialization will start deserializing from the end of the stream and would fail.      _undoStream.Position = 0;      _canUndo = true; }   public void Undo() {      BinaryFormatter bf = new BinaryFormatter();      ...