我正在尝试自动格式化vs2010解决方案中的所有文件。我发现没有内置选项可以这样做。我尝试编写宏来实现,但遇到了问题。
当我迭代项目中的任何ProjectItem
时,我不知道如何以源代码模式打开可设计文件,或者如何区分可源代码文件和不可源代码文件(例如png文件)。
您有什么建议吗?
谢谢。
我正在尝试自动格式化vs2010解决方案中的所有文件。我发现没有内置选项可以这样做。我尝试编写宏来实现,但遇到了问题。
当我迭代项目中的任何ProjectItem
时,我不知道如何以源代码模式打开可设计文件,或者如何区分可源代码文件和不可源代码文件(例如png文件)。
您有什么建议吗?
谢谢。
如果您需要编写宏,请考虑使用Code Maid(在visualstudiogallery上免费下载),该工具提供以下两个功能:
您可以根据需要选择CleanUp的多种选项。
我认为以下内容适合您,它基于我在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