Eclipse Formatierung?

Hallo zusammen

Habe mich schon ca. zum hundertsten Mal nach einer “frischen” Eclipse-Installation (Java) gefragt warum Block-Kommentare in der Art…

/*
zeile 1;
zeile 2;
zeile 3;
*/

…in sowas umgewandelt werden:

	/*
	 * while (true) { dimmer1Input.turnOn(); Thread.sleep(300);
	 * dimmer2Input.turnOn(); Thread.sleep(300); dimmer3Input.turnOn();
	 * Thread.sleep(300); dimmer4Input.turnOn(); Thread.sleep(300);
	 * dimmer5Input.turnOn();
	 * 
	 * Thread.sleep(300);
	 * 
	 * dimmer1Input.turnOff(); Thread.sleep(300); dimmer2Input.turnOff();
	 * Thread.sleep(300); dimmer3Input.turnOff(); Thread.sleep(300);
	 * dimmer4Input.turnOff(); Thread.sleep(300); dimmer5Input.turnOff();
	 * Thread.sleep(300);
	 * 
	 * }
	 */

Muss mich echt fragen, wie man auf solch dumme Ideen kommt!? Es ist doch ganz einfach, einen Block mit 2 Zeilen auszukommentieren… und wenn man dann “auto-Format” unter Eclipse macht, gerät alles durcheinander… wenn man den Code wieder will, kann man nicht mehr “/" sowie "/” oben und unten entfernen - sondern man muss Zeile für Zeile noch die “*” entfernen und für die korrekte Formatierung sorgen.

Gibt es da irgend einen “rationalen” Grund dafür, warum das so ist? Finde das ehrlich gesagt ziemlich blöd…

Eclipse solllte doch Zeilen wie diese beim auto-Format so belassen wie sie sind, alles andere ist irgendwie Unsinn…!!

/*
zeile 1;
zeile 2;
zeile 3;
*/

…oder soll man, wenn man Code auskommentiert, vor jede Zeile ein “//” tun, wobei mir jetzt nicht klar ist was dies für Vorteile hat?

Moin,

bin mir nicht ganz sicher, aber kannst Du das nicht in den Einstellungen unter “Java/Editor” einstellen?

VG Klaus

Du kannst bspw. den Code-Block bzw. die Zeilen markieren und dann mittels SRTG + 7 die Kommentarzeichen // toggeln, sprich einschalten und ausschalten.

1 Like

Danke für die Feedbacks. Dass sich das ausschalten lässt, war mir bereits klar.

Mir ist eher unklar, was die Idee hinter dieser Eclipse-default-Einstellung ist… sind Blöcke, welche mit “/" beginnen und mit "/” aufhören eher für Kommentar-Blöcke, während für den Code eher das “//” vorgesehen ist?

Dass man über den “Source”-Menüpunkt mehrere Zeilen mit einem “//” versehen (und das wieder entfernen) kann, ist mir auch aufgefallen.

…irgendwie wurde mir der „Stern“ entfernt, wie krieg man den hier rein?

Um den Stern zu schreiben, muss man ihn escapen, als \*. Das sollten alle Prgrammiererinnen wissen. Hmgl. Das kursive da war keine Absicht.

Um Code-Blöcke (“mal kurz”) ausuzukommentieren, kann man sie markieren, und STRG+7 drücken. Damit toggelt man die //-Kommentierung.

Blöcke, die in /*...*/ eingeschlossen sind, sind “normalerweise” keine auskommentierten Codestücke, sondern echte Kommentare - also Text, der durchaus formatiert werden kann.

Wenn man das nicht will:

  • (Menü:) Window -> Preferences ->
  • (Baum:) Java -> Code Style -> Formatter ->
  • (Rechts dann ggf. neues Profile erstellen und) auf den “Edit…” -Button klicken
  • (Tab:) Comments ->
  • Links die Checkbox bei “Enable block comment formatting” deaktivieren

Ansonsten finde ich für Codeblöcke diese beiden Patterns praktisch:

1:

//*/ 
callSomeMethod();
severalMoreLines();
//*/

Damit kann man das erste / hinzufügen oder wegnehmen, und damit mit einem einzelnen character einen Block ein- oder auskkommentieren

2:

Speziell wenn der Codeblock Variablen enthält, kann sowas auch praktisch sein:

boolean doit = false;
doit = true;
if (doit) 
{
    String someVariable = createText();
    moreLines();
    System.out.println(someVariable);
}

Damit kann man durch Ein- und Auskommentieren der Zeile doit=true den Block aktivieren und deaktivieren. Der Vorteil ist, dass die Formatierung und vor allem die Syntax-Checks erhalten bleiben.

Vielen Dank für die aufschlussreiche Antwort!! :slight_smile:

Oder man packt den auszukommentierenden Codeblock in eine Methode und kommentiert den Einzeiler aus.

1 Like

Was ist so schwer daran, die Tastencombo zu drücken; das ist doch einfacher, als zu schreiben:
/*
*/
? (4 Zeichen, Newlines nicht mitgezählt)

Nicht Javadoc relevante Kommentare beginnen nicht mit /**, wieso sollte man dann /* als einziges Ausschlusskriterium wählen?

Eine motorische Einschränkung vermute ich bei dir auch nicht, denn Shift+7 funktioniert ja… Also, warum sollte sich Eclipse genau so entscheiden habn? :roll_eyes:

Noch mal vielen Dank für die beiden Beiträge!

Werde es so wie sonst auch immer bei den Formatierungseinstellungen ausschalten - ist halt einfach Gewöhnungssache.

Mich hat eher interessiert, warum Eclipse das “per default” so hinterlegt hat. Diese Frage hat sich nun geklärt.

Aber du hättest doch weniger Tasten zu drücken wenn wie dafür vorgesehen…

Das hab ich doch versucht zu erklären… Das mit den motorischen Einschränkungen war nur eine theoretische, fiktive, Annahme (gesetzt dem Fall, dass…) … Keinesfalls wollte ich unfreundlich oder beleidigend sein…

Keine Sache, hat sich ja geklärt, vielen Dank! :slight_smile:

"Keinesfalls wollte ich unfreundlich oder beleidigend sein…"

Habe ich auch keinesfalls so verstanden!! :wink:

(Bin manchmal ein wenig im Stress wenn ich die Beiträge schreibe, kann sein dass ich mich deswegen teilweise nicht allzu präzise ausdrücke…)

1 Like