2010-11-11 4 views
13

J'essaye de mettre en forme automatiquement tous les fichiers dans ma solution dans vs2010. J'ai vu qu'il n'y a pas d'option intégrée pour le faire. J'ai essayé d'écrire une macro pour le faire, mais je suis resté coincé.format automatique tous les fichiers dans la solution dans Visual Studio 2010

Quand j'itère tout ProjectItem dans mes projets, je ne sais pas comment ouvrir les fichiers concevables-en mode code source, ou comment faire la distinction entre les fichiers et les fichiers sourceable icourceable (tels que .png -s ou tel).

Avez-vous des suggestions?

merci.

+1

voir aussi http://stackoverflow.com/questions/3942958/visual-studio-macro-to-format-all-files-in-a-solution –

+0

voir aussi http://stackoverflow.com/ questions/931406/formatage-at-once-all-the-files-in-a-visual-studio-project –

Répondre

8

Eh bien au lieu d'écrire un chèque macro un Code Maid (gratuit sur visualstudiogallery) a ces 2 caractéristiques:

  • Nettoyage d'un seul fichier, tous les éléments sélectionnés ou la totalité de la solution
  • option de nettoyage pour exécuter automatiquement lors de l'enregistrement

Avec un certain nombre d'options pour ce CleanUp ne

4

Je pense que ce qui suit devrait travailler pour vous, il est basé sur l'autre itération de fichier que j'ai fait dans Visual Studio. Si vous souhaitez formater d'autres types de document, modifiez la routine FormatFile pour prendre en charge d'autres extensions de fichier.

Sub IterateFiles() 
    Dim solution As Solution = DTE.Solution 
    For Each prj As Project In solution.Projects 
     IterateProjectFiles(prj.ProjectItems) 
    Next 
End Sub 

Private Sub IterateProjectFiles(ByVal prjItms As ProjectItems) 
    For Each file As ProjectItem In prjItms 
     If file.SubProject IsNot Nothing Then 
      FormatFile(file) 
      IterateProjectFiles(file.ProjectItems) 
     ElseIf file.ProjectItems IsNot Nothing AndAlso file.ProjectItems.Count > 0 Then 
      FormatFile(file) 
      IterateProjectFiles(file.ProjectItems) 
     Else 
      FormatFile(file) 
     End If 
    Next 
End Sub 

Private Sub FormatFile(ByVal file As ProjectItem) 
    DTE.ExecuteCommand("View.SolutionExplorer") 
    If file.Name.EndsWith(".cs") OrElse file.Name.EndsWith(".vb") Then 
     file.Open() 
     file.Document.Activate() 

     DTE.ExecuteCommand("Edit.FormatDocument", "") 

     file.Document.Save() 
     file.Document.Close() 
    End If 
End Sub 
+0

Thx, Travaillé parfaitement pour moi. Le seul changement que je devais faire était de changer mes paramètres pour ouvrir les contrôles/composants en mode code au lieu de la vue du concepteur. –

Questions connexes