自动格式化visual studio 2010中解决方案中的所有文件

时间:2010-11-11 07:58:12

标签: visual-studio visual-studio-2010 macros

我正在尝试在vs2010中自动格式化我的解决方案中的所有文件。我已经看到没有内置选项可以做到这一点。我试着写宏来做,但我已经坚持了。

当我在项目中迭代任何ProjectItem时,我不知道如何在源代码模式下打开可设计文件,或者如何区分可源文件和可源文件(例如 png -s或者等等。)

你有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:8)

好而不是编写一个宏检查Code Maid(在visualstudiogallery上免费)有这两个功能:

  • 清理单个文件,所有选定项目或整个解决方案
  • 清理选项,以便在保存时自动运行

有许多关于CleanUp的选项

答案 1 :(得分: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