我最近看中了我的代碼的新格式的風格和要替換現有代碼的所有文件。唯一的問題是我的解決方案中有100個如果不是1000個文件,我不喜歡單獨格式化每個文件。的Visual Studio宏格式的解決方案
我想知道如何創建一個宏在具有cs文件擴展名的解決方案,打開每個文件,並簡單地選擇所有的文本,然後剪切並粘貼它(這將相應地格式化)。如果它能夠排序和刪除使用語句也很好,但這並不重要,因爲我認爲這會有點困難。
我很感謝您的幫助。謝謝
我最近看中了我的代碼的新格式的風格和要替換現有代碼的所有文件。唯一的問題是我的解決方案中有100個如果不是1000個文件,我不喜歡單獨格式化每個文件。的Visual Studio宏格式的解決方案
我想知道如何創建一個宏在具有cs文件擴展名的解決方案,打開每個文件,並簡單地選擇所有的文本,然後剪切並粘貼它(這將相應地格式化)。如果它能夠排序和刪除使用語句也很好,但這並不重要,因爲我認爲這會有點困難。
我很感謝您的幫助。謝謝
問題解決!下面的宏的伎倆櫃面有人有興趣:
Public Module FormatAll
Public Sub FormatAll()
Dim sol As Solution = DTE.Solution
For i As Integer = 1 To sol.Projects.Count
Dim proj As Project = sol.Projects.Item(i)
For j As Integer = 1 To proj.ProjectItems.Count
FormatSome(proj.ProjectItems.Item(j))
Next
Next
End Sub
Private Sub FormatSome(ByVal projectItem As ProjectItem)
If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then
If projectItem.Name.LastIndexOf(".cs") = projectItem.Name.Length - 3 Then
Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
window.Activate()
projectItem.Document.DTE.ExecuteCommand("Edit.FormatDocument")
projectItem.Document.DTE.ExecuteCommand("Edit.RemoveAndSort")
window.Close(vsSaveChanges.vsSaveChangesYes)
End If
End If
For i As Integer = 1 To projectItem.ProjectItems.Count
FormatSome(projectItem.ProjectItems.Item(i))
Next
End Sub
End Module
不是在VS 2010的工作釷 – 2012-03-21 05:06:53
電子郵件來源:http://blogs.msdn.com/b/kevinpilchbisson/archive/2004/05/17/133371.aspx – 2015-11-06 01:16:11
對於Visual Studio 2008中,你必須改變報表格式,因爲FormatDocument不可用:
projectItem.Document.DTE.ExecuteCommand("Edit.SelectAll")
projectItem.Document.DTE.ExecuteCommand("Edit.FormatSelection")
所以腳本應該是:
Public Sub FormatAll()
Dim sol As Solution = DTE.Solution
For i As Integer = 1 To sol.Projects.Count
Dim proj As Project = sol.Projects.Item(i)
For j As Integer = 1 To proj.ProjectItems.Count
FormatSome(proj.ProjectItems.Item(j))
Next
Next
End Sub
Private Sub FormatSome(ByVal projectItem As ProjectItem)
If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then
If projectItem.Name.LastIndexOf(".cpp") = projectItem.Name.Length - 4 Then
Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
window.Activate()
projectItem.Document.DTE.ExecuteCommand("Edit.SelectAll")
projectItem.Document.DTE.ExecuteCommand("Edit.FormatSelection")
window.Close(vsSaveChanges.vsSaveChangesYes)
ElseIf projectItem.Name.LastIndexOf(".h") = projectItem.Name.Length - 2 Then
Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
window.Activate()
projectItem.Document.DTE.ExecuteCommand("Edit.SelectAll")
projectItem.Document.DTE.ExecuteCommand("Edit.FormatSelection")
window.Close(vsSaveChanges.vsSaveChangesYes)
End If
End If
For i As Integer = 1 To projectItem.ProjectItems.Count
FormatSome(projectItem.ProjectItems.Item(i))
Next
End Sub
謝謝。這段代碼中有一個小錯誤。它應該是: 'elseif的projectItem.Name.LastIndexOf( 「H」)= projectItem.Name.Length - 2' – 2015-11-08 19:58:07
又見http://stackoverflow.com/questions/931406/formatting-at-once-all-the-files-in-a-visual-studio-project – 2011-10-11 09:47:21