2010-11-11 32 views
13

我試圖自動格式化我的解決方案在vs2010中的所有文件。我已經看到沒有內置選項可以做到這一點。我試圖寫宏來做到這一點,但我已經陷入困境。自動格式解決方案在Visual Studio 2010中的所有文件

當我遍歷在我的項目的任何ProjectItem,我不知道如何在源代碼模式下打開可設計,文件,或如何sourceable文件和icourceable文件(如PNG -s或這樣的區分)。

你有什麼建議嗎?

謝謝。的

+1

也看到http://stackoverflow.com/questions/3942958/visual-studio-macro-to-format-all-files-in-a-solution – 2011-10-11 09:48:00

+0

也看到http://stackoverflow.com/問題/ 931406/formatting-at-once-files-in-a-visual-studio-project – 2011-10-11 09:49:18

回答

8

好,而不是寫宏簽出Code Maid(免費visualstudiogallery)有以下2個特點:

  • 清理一個單一的文件,所有選定項目或整個解決方案
  • 清理選項可自動運行在保存

有了多種選擇什麼的清除,並

4

我認爲下面應該爲你它的工作基於我在Visual Studio中完成的其他迭代文件。如果要格式化其他文檔類型,請更改FormatFile例程以支持其他文件擴展名。

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,爲我完美工作。我必須做的唯一更改是將我的設置更改爲在代碼視圖中打開控件/組件,而不是設計器視圖。 – 2011-04-23 14:35:28

相關問題