Bor*_*ard 29 tabs visual-studio-2010 visual-studio
中有一个"tabify"命令
编辑>高级>选中选定的行
(并且Power Tools 2010也基于每个文件提供此功能)但是有没有办法对解决方案中的所有代码文件执行此操作?
ReSharper有一个清理命令但是我发现的唯一一半合适的选项是在所有文件上运行格式化,这比我想要的更多(我不想运行完整的格式化,只是列表化).
Pet*_*nes 16
如果您已添加Microsoft Productivity Power工具扩展(如果您还没有我建议),则会添加一个选项来标记文件.这不适用于解决方案中的所有文件,但在每个文件的基础上编辑每个文件时会提示它.不是你想要的,而是一个帮助.
您也可以尝试将IDE编辑器设置设置为使用选项卡,然后执行菜单编辑高级格式文档(CTRL + E,D).这将使用选项卡替换选项卡长度空间组,并且应该可以通过宏为解决方案中的所有文件编写脚本.
该请求包含指向可以完成这项工作的 IDE 宏的链接:
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
以下是 Visual Studio 宏的示例代码,该宏在打开的解决方案中自动格式化所有 *.cs、*.h、*.cpp 和 *.hpp 文件,其中包括将空格转换为制表符(取决于您在工具 >选项 > 文本编辑器 > 特定语言或“所有语言” > 标签):
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
Run Code Online (Sandbox Code Playgroud)
说明(Visual Studio 2005,但新版本类似):
编辑
我使用 Siegmund Frenzel 的代码更新了代码以支持 *.h、*.cpp 和 *.hpp 文件:https ://stackoverflow.com/a/14766393/90287
据我所知,“Tabify”的作用是这样的——它只用制表符替换“”(4个空格),它不会改变格式或其他任何内容。
尽管我建议使用文档格式,但“制表符”可以通过自定义应用程序轻松完成,该应用程序可以对您想要的所有文件模仿相同的操作。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
20109 次 |
| 最近记录: |