2009-10-26 12 views
12

¿Hay una herramienta que código auto-guión que utiliza object initializers de la siguiente manera:muesca de fijación cuando inicializadores de objeto se han utilizado

SomeType someType = new SomeType 
{ 
    Prop1 = "prop 1 value", 
    Prop2 = "prop 2 value", 
    Things = new List<Thing> 
    { 
     new Thing 
     { 
      ThingProp = "thing prop value" 
     } 
    } 
}; 

es decir, utilizando el mismo aparato ortopédico sangría reglas que se observan con frecuencia en otro C# código.

ReSharper le gusta aplicar sangrías con mayor intensidad, pero no mantendrá la capacidad de búsqueda si el código cambia más adelante (hemos desactivado varias opciones de ReSharper para evitar que esto suceda).

La opción de formateo estándar de Visual Studio 2008 (Ctrl-K-D) no cambia la sangría de los inicializadores de objetos.

Las definiciones de clases se incluyen a continuación

public class Thing 
{ 
    public string ThingProp { get; set; } 
} 

public class SomeType 
{ 
    public string Prop1 { get; set; } 
    public string Prop2 { get; set; } 
    public List<Thing> Things { get; set; } 
} 

Respuesta

16

Ir en ReSharper/Opciones/Idiomas/C#/formato de estilo/Other y desactive "array, objeto y inicializador colección bloque sangría" (cerca de la parte inferior).

(Hay algunas opciones diferentes que hacer con matrices, colección e inicializadores de objetos, pero están dispersas en las diferentes secciones. Por lo que puedo ver, la vista previa no toma las otras opciones que tiene fue seleccionado en cuenta, lo que no ayuda ...)

Si obtiene ReSharper para reformatear el código utilizando Ctrl - ECtrl - C lo puede conseguir para formatear el código exactamente según su publicación. Para hacer que el elemento de la lista incrustada se expanda por completo, debe desmarcar "Colocar una matriz simple, un objeto y una colección en una sola línea" en Saltos de línea y Envoltura a través de — y puede que no sea lo que desea en otro lugar. :(

+0

Eso impide que ReSharper se inmiscuya en el formateo, pero lamentablemente no ayuda con el formateo automático –

+1

¿De verdad? Para mí, el autoformato funcionó como yo esperaba. Cuando tocas}, ¿qué hace? ? –

+0

Mi comentario inicial no era correcto al 100% - esto funciona, pero no para la inicialización 'List ' –

Cuestiones relacionadas