2010-02-01 4 views
34

Ich benutze oft den ReSharper "Clean Up Code" -Befehl, um meinen Code in unseren Codierungsstil zu formatieren, bevor wir ihn in die Quellcodeverwaltung einchecken. Dies funktioniert im Allgemeinen gut, aber einige Bits Code sind besser manuell formatiert (zB wegen der Einrückungsregeln in ReSharper, Dinge wie verkettete Linq-Methoden oder mehrzeilige ternäre Operatoren haben einen merkwürdigen Einzug, der sie nach rechts schiebt).Gibt es eine Möglichkeit, Code zu markieren, damit ReSharper ihn nicht formatiert?

Gibt es eine Möglichkeit, Teile einer Datei zu markieren, damit ReSharper diesen Bereich nicht formatiert? Ich hoffe auf eine Art Markup ähnlich wie ReSharper andere Warnungen/Features unterdrückt. Wenn nicht, gibt es eine Möglichkeit, eine Kombination von Einstellungen zu ändern, damit ReSharper die Einrückung richtig formatiert?

EDIT:

I this Post von den ReSharper Foren gefunden haben, dass Codeabschnitte erzeugt sagt (wie in der ReSharper Optionen Seite definiert) werden in Code Bereinigung ignoriert. Nachdem es versucht wurde, scheint es nicht ignoriert zu werden.

+4

Möchten Sie Ihren Code wirklich mit R # -spezifischem Markup "verschmutzen"? Yuck yuck yuck ... – Oded

+5

@Oded: Nicht wirklich, nein - aber ich würde es vorziehen, dass Code, der aufgrund seines Layouts nicht lesbar ist. – adrianbanks

+0

Sie können den Code auswählen, den Sie bereinigen möchten, er wird nur die Dinge in der Auswahl bereinigen. Aber wahrscheinlich wussten Sie das schon. Wie auch immer, irgendwie habe ich das selbe Problem, aber ich habe mich dem Willen von ReSharper unterworfen und korrigiere die seltsame Einrückung danach manuell. – Skurmedel

Antwort

3

Als letzten Ausweg, wenn Sie Legacy-Code haben, den Sie nicht formatieren möchten, aber die Klassen gut formatieren möchten, dann machen Sie die Klasse partiell und fügen Sie neuen Code in die neue Datei ein.

21

ReSharper> Optionen> Sprachen> C#> Formatierung Style> Andere>

Uncheck "einrücken anonyme Methode Körper" und "einrücken Array, Objekt und Sammlung initilizer Blöcke" und alles, was Ihnen gefällt.

+0

Die Option "anonymous method body" funktioniert (zeigt ihre etwas seltsame 'DoSomethog()' Methode als Beispiel), aber R # formatiert die anderen Blöcke immer noch mit großen Einzügen. – adrianbanks

+0

@adrianbanks - durch Deaktivieren der Option "Array-, Objekt- und Sammlungsinitialisierungsblöcke eindocken" werden meine Arrays und Initialisierer in Ruhe gelassen. Nicht sicher, was DoSomethog() Sie beziehen, obwohl. –

+0

@adrianbanks - auch, wenn Ihre Blöcke bereits aus der vorherigen Neuformatierung verdrängt wurden, wird r # sie in Ruhe lassen. Legen Sie die erste offene Klammer an der gewünschten Position fest, STRG-D formatiert den Rest und die nachfolgende Codebereinigung wird nicht berührt. –