2010-11-10 10 views
42

Mi solución (proyecto de 30+) es un poco desordenada cuando se trata de mezclar pestañas y espacios, y quiero solucionar esto con un simple paso.Herramienta/truco para reemplazar pestañas en todos los archivos de una solución completa de VS

¿Alguien sabe un truco/herramienta para hacer esto en un solo paso para la solución completa?

EDITAR: No es exactamente lo que quise decir. Quiero que los documentos tengan un buen formato. Simplemente encuentre/reemplace no lo hará ... los documentos seguirán siendo un desastre. quiero algo así como el Formato -> Avanzado -> Formato de Documento comando

+0

powershell? ... –

+0

un script rápido sería suficiente. Si puedes ejecutar IronPython, IronRuby o Boo, sería muy fácil. haciendo esto, C# tampoco es demasiado complejo. Podría adjuntar como script una respuesta si te gusta –

Respuesta

59

En caso de que sus archivos contengan espacios como pestañas de igual ancho a lo largo de la solución (es decir, 4 espacios por pestaña), entonces debe usar la herramienta simple Quick replace de VS. Para seguir las reglas de formato StyleCop, debe usar espacios en lugar de pestañas, vaya a Quick replace (CTRL-h), seleccione Use wildcard y luego en el campo Find what puede usar el símbolo \t, reemplazándolo con 4 espacios para todas las soluciones (Look in campo).

Pero si sus archivos de solución contiene fichas hechas de espacios de diferente anchura, o si desea aplicar el formato de un solo estilo , entonces definitivamente debe utilizar Resharper 's función para cambiar el formato de código. Esta función se llama Code Cleanup. Para aplicar code cleanup a toda la solución o proyecto seleccionado, vaya al explorador de soluciones y seleccione Cleanup code en el menú contextual. Pero antes de iniciar el reformateo en una solución completa intente ajustarlo en un archivo, hay muchas opciones en la configuración de Resharper.

+0

Esto era lo que estaba buscando ... reformatear – Flores

3

ahí lo tienes:

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); 
    } 
} 

Save es como spaces-to-tabs.cs, y corro:

C:>c:\Windows\Microsoft.NET\Framework\v3.5\csc spaces-to-tab.cs 
C:>spaces-to-tabs.exe C:\path\to\your\solution 
3

guardo una herramienta UNIX directorio en mi camino cuando trabajo en Windows, solo para tales emergencias. Por ejemplo, esto reemplazaría todas las pestañas con 4 espacios, en cualquier archivo .cs en el directorio c: \ myproject o en sus subdirectorios.

find c:\myproject -name *.cs -exec sed -i -e "\"s/\t/ /g\"" {} ";" 
0

Ctrl-H, ajuste "Buscar en:" a la "solución completa"

También puede grabar una macro.

0

Una manera simple y rápida es abrir el archivo en el bloc de notas ++ y reemplazarlo manualmente (activar 'mostrar todos los caracteres' y las pestañas se resaltarán), o reemplazarlo automáticamente (tiene que jugar con 'Configuración')

Cuestiones relacionadas