Yêu cầu có chứa các liên kết đến các macro IDE có thể thực hiện công việc:
http://blogs.msdn.com/b/kevinpilchbisson/archive/2004/05/17/133371.aspx
http://web.archive.org/web/20090217094033/http://chriseargle.com/post/Format-Solution.aspx
Đây là mẫu mã cho một Visual Studio macro tự động định dạng tất cả * .cs, * .h, *. cpp, và tập tin * .hpp trong một giải pháp mở, trong đó bao gồm không gian chuyển đổi các tab (tùy thuộc vào thiết lập Tab của bạn trong Tools> Options> Text Editor> ngôn ngữ cụ thể hoặc "Mọi ngôn ngữ"> Tabs):
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Public Module ConvertTabsToSpaces
Public Sub FormatSolution()
Dim sol As Solution = DTE.Solution
For i As Integer = 1 To sol.Projects.Count
FormatProject(sol.Projects.Item(i))
Next
End Sub
Private Sub FormatProject(ByVal proj As Project)
If Not proj.ProjectItems Is Nothing Then
For i As Integer = 1 To proj.ProjectItems.Count
FormatProjectItem(proj.ProjectItems.Item(i))
Next
End If
End Sub
Private Sub FormatProjectItem(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")
window.Close(vsSaveChanges.vsSaveChangesYes)
ElseIf ((projectItem.Name.LastIndexOf(".cpp") = projectItem.Name.Length - 4) OrElse (projectItem.Name.LastIndexOf(".hpp") = projectItem.Name.Length - 4) OrElse (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
'Be sure to format all of the ProjectItems.
If Not projectItem.ProjectItems Is Nothing Then
For i As Integer = 1 To projectItem.ProjectItems.Count
FormatProjectItem(projectItem.ProjectItems.Item(i))
Next
End If
'Format the SubProject if it exists.
If Not projectItem.SubProject Is Nothing Then
FormatProject(projectItem.SubProject)
End If
End Sub
End Module
Hướng dẫn (Vi Sual Studio 2005, nhưng tương tự cho các phiên bản mới hơn):
- Launch Visual Studio
- Tools> Macro> Macros IDE ...
- Kích chuột phải vào MyMacros> Add> Add New Item ...
- Chọn module
- Enter "ConvertSpacesToTabs" không có dấu ngoặc kép trong trường Name
- Nhấn Add
- Thay thế nội dung của các mô-đun mới với mã trên
- Nhấp vào Lưu
- Đóng Macros IDE
- Công cụ> Macro> Macro Explorer
- Mở rộng MyMacros> ConvertSpacesToTabs
- Double-click vào FormatSolution
- Chờ vĩ mô để thúc
Sửa
tôi cập nhật các mã cũng để hỗ trợ * .h, * .cpp, và tập tin * .hpp sử dụng mã từ Siegmund Frenzel ở đây: https://stackoverflow.com/a/14766393/90287
Nguồn
2011-10-06 20:48:19
Hey, là có bất kỳ tin tức về vấn đề này? – brokenisfixed