在Visual Studio 2010中自动格式化解决方案中的所有文件

13

我正在尝试自动格式化vs2010解决方案中的所有文件。我发现没有内置选项可以这样做。我尝试编写宏来实现,但遇到了问题。

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

您有什么建议吗?

谢谢。


1
请参见https://dev59.com/v1HTa4cB1Zd3GeqPPCrN - Tim Abell
请参考以下链接:https://dev59.com/PXNA5IYBdhLWcg3wgeOk - Tim Abell
2个回答

8

如果您需要编写宏,请考虑使用Code Maid(在visualstudiogallery上免费下载),该工具提供以下两个功能:

  • 清理单个文件、所有选定项或整个解决方案
  • 自动保存时可选择运行清理操作

您可以根据需要选择CleanUp的多种选项。


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

谢谢,对我来说完美地解决了问题。唯一需要更改的是将我的设置更改为在代码视图中打开控件/组件,而不是设计视图。 - Hasani Blackwell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接