用于替换整个VS解决方案的所有文件中的选项卡的工具/技巧

Flo*_*res 57 visual-studio-2010 visual-studio

在混合标签和空格时,我的解决方案(30+项目)有点乱,我想通过一个简单的步骤解决这个问题.

对于整个解决方案,是否有人知道一步到位的技巧/工具?

编辑:不完全是我的意思.我希望文档格式化得很好.只是找/替不会做..文件仍然是一团糟.我想要格式化 - >高级 - >格式文档命令

Dmi*_*nov 76

如果您的文件在整个解决方案中包含空格作为相等宽度的选项卡(即每个选项卡有4个空格),那么您应该使用普通VS的Quick replace工具.为了遵循StyleCop格式规则,你应该使用空格而不是制表符,所以转到Quick replace(CTRL-h),选择Use wildcard然后在Find what字段中你可以使用\t符号,用4个空格替换所有解决方案(Look in字段).

但是,如果您的解决方案文件包含由不同宽度的空格组成的选项卡,或者您想要应用单一格式的格式,那么您肯定应该使用Resharper的功能来重新格式化代码.此功能称为代码清理.要应用于code cleanup整个解决方案或所选项目,请转到解决方案资源管理器并Cleanup code在上下文菜单中选择.但是在启动整个解决方案的重新格式化之前尝试并在一个文件上调整它,在Resharper的设置中有很多选项.


Ken*_*ozi 5

你去吧:

using System;
using System.IO;

class _Runner {
  static void Main(string[] args) {

    var root=args[0];
    var filePaths = Directory.GetFiles(root, "*.cs", SearchOption.AllDirectories);

    int updated = 0;
    foreach (var path in filePaths) {
      var content = File.ReadAllText(path);
      var replaced = content.Replace("    ", "\t");
      if (replaced == content) { 
        continue;
      }

      ++updated;
      Console.WriteLine("fixing " + path);
      File.WriteAllText(path, replaced);
    }

    Console.WriteLine("fixed {0} files", updated);  
  }
}
Run Code Online (Sandbox Code Playgroud)

另存为spaces-to-tabs.cs,然后运行:

C:>c:\Windows\Microsoft.NET\Framework\v3.5\csc spaces-to-tab.cs
C:>spaces-to-tabs.exe C:\path\to\your\solution
Run Code Online (Sandbox Code Playgroud)

  • 警告注意:这将替换四个空格,无论发生在何处,即在文字字符串中,可能不需要制表符。 (6认同)