2010-01-20 17 views
27

Quando ho refactoring la seguente linea:Come modificare la formattazione del refactoring "Use Object Initializer" in Resharper?

Employee e = new Employee(); 
e.First = "Frank"; 
e.Last = "Rizzo"; 

usando di ReSharper "Utilizzo di inizializzazione degli oggetti", ottengo il seguente:

Employee e = new Employee 
      { 
       First = "Frank", 
       Last = "Rizzo" 
      }; 

Odio questo tipo di formattazione, perché con i nomi degli oggetti più lunghi e variabili diventa semplicemente fuori controllo. Come posso ottenere Resharper per eseguire quanto segue?

Employee e = new Employee 
{ 
    First = "Frank", 
    Last = "Rizzo" 
}; 
+1

Mi chiedo chi ha avuto questa idea in primo luogo. Nessuno sano di mente avrebbe indentato gli inizializzatori del genere. – neo2862

+3

Ho capito che era qualcuno nella loro mente sinistra. – JYelton

+0

no no non modificare le impostazioni di default di Resharper, è perfetto :-) – Karsten

risposta

39

È possibile ottenere molto vicino a ciò che si desidera in Resharper 4.5.

ReSharper> Opzioni

Lingue> C#> Formattazione Style> Altro

sotto Altro deselezionare "array, oggetto e la raccolta di blocco di inizializzazione rientro."

+3

Assolutamente perfetto. Vorrei poter invitare di più. – AngryHacker

+0

Usando questo con la Versione 5 dà 1 indent di tab invece di 0. meglio di niente ... – mbx

+1

ha trovato risposta a questo su http://stackoverflow.com/questions/747351/custom-brace-formatting-with-resharper – mbx

3

In ReSharper 7 Questa opzione è qui:

ReSharper/Opzione/C#/formattazione dello stile/Bretelle layout set Array e di inizializzazione degli oggetti a: "In linea successiva (stile BSD)"

+1

Non so su RS7, ma in RS6 non è sicuramente il posto giusto - l'impostazione in Formattazione> Altro determina se il rientro impostato qui è relativo all'inizio della riga o all'istruzione di inizializzazione. L'anteprima dal vivo su ogni impostazione ti mostrerà cosa intendo meglio di quanto le parole possano spiegarlo :) –

+0

@David Krmpotic è corretto su RS7 e RS8 lo ha nello stesso posto. –

+0

In Risagoma 8 l'impostazione per non rientrare nell'inizializzatore dell'oggetto è Resharper/Option/C#/Formatting Style/Other/Align Costrutti/Array multilinea, inizializzatore di oggetti e raccolte –