2013-10-16 16 views
10

Wie Sie vielleicht wissen, können Sie mit Eclips den Codeformatierer für bestimmte Abschnitte des Quellcodes deaktivieren (siehe zum Beispiel this question).Formatierung des `// @ formatter: off`-Tags in der Eclipse

Nun, mein Problem ist, dass der Formatierer scheinbar Formatierungscode am Anfang der Zeile stoppt, wo das //@formatter:off-Tag gefunden wird. Dies hat zur Folge, dass der Formatierer-Tag selbst (der im Wesentlichen nur eine Kommentarzeile ist) an einem queeren Ort platziert wird, nämlich ohne den Eindruck ganz am Anfang der Zeile.

Siehe dieses Beispiel.

Was ich eingeben:

//@formatter:off 
    Some code { 
    with indentation 
     that I dont want to be formatted. 
    } 
    //@formatter:on 

Nach dem Drücken Sie [Strg + F] es sieht wie folgt aus:

//@formatter:off 
    Some code { 
    with indentation... 
     that I dont want to be formatted. 
    } 
    //@formatter:on 

Ok, ich weiß, dass dies ist ein rein kosmetisches Problem, aber meine OCD ist macht mich verrückt, wenn ich das überall im Code sehe. Vor allem nach speziell mit dem Formatierungs-Tag, um den Code schöner aussehen zu lassen.

Antwort

1

Welche Version von Eclipse verwenden Sie?

Ich habe gerade dies in Eclipse 4.3.1 versucht, und es scheint genau so zu funktionieren, wie Sie wollen. Noch besser, wenn Ihr Code wie in Ihrem zweiten Codeblock endet, wird der erste Block von //@formatter:off vom Formatierer automatisch in den korrekten Einzug eingedrückt.

Vielleicht müssen Sie Ihre Version von Eclipse aktualisieren?

+3

Ich habe das Problem noch einmal überprüft - es scheint, als wäre ich auf einen seltsamen Randfall gestoßen. Was ich zuerst versuchte, war, das '// @ formatter: off'-Tag zwischen einem _object reference_ und seinen _method calls_ einzuführen. In diesem speziellen Fall funktioniert es nicht oder besser funktioniert wie oben beschrieben. Sie haben recht, dass es in (den meisten?) Anderen Fällen gut funktioniert. – fgysin

+0

Neugierig !! Es könnte sich lohnen, einen Bug in https://bugs.eclipse.org/bugs/ zu werfen. –

+1

@fgysin danke, dein Kommentar hat es gelöst. Wenn ich die off/on-Tags innerhalb eines Ausdrucks platziere (ich habe es bei einer Array-Initialisierung 'new Object [] {// @ formatter: off ... // @ formatter: on};') verwendet, entfernt es den Einzug, wenn Sie Platziere es außerhalb des Ausdrucks, es behält die Einrückung bei. –