Ein-/Auskommentieren versetzt den Cursor

Description

Initial situation:
--------------------------------------------------------------
Der Cursor befindet sich in einer Zeile code.
Man drückt Ctrl+Alt+C, um diese eine Zeile auszukommentieren.
--------------------------------------------------------------

Actual behavior:
--------------------------------------------------------------
Der Cursor springt eine Zeile weiter.
Sowohl beim auskommentieren, als auch beim einkommentieren.
Außerdem springt der Cursor ganz nach links, so dass man ihn erst wieder manuell auf die richtige Einrückungstiefe bringen muss.

Gratis Zusatz-Bug:
Falls die auskommentierte Zeile die letzte in einem Eventhandler Block ist und man drück nach dem Springen des Cursors Enter, wird die schließende Klammer des Blocks um eine Zeile nach unten, wie erwartet. Drückt man dann nochmal Enter, springt die schließende Klammer aber nicht wie erwartet noch eine Zeile runter, sondern dann springt der Cursor auf einmal in die Zeile unter der schließenden Klammer und auf die Einrückungstiefe.
D.h. dieses "magic" Cursor versetzen beachtet nicht den Sonderstatus von gesperrten Zeilen.
Auf eine ähnliche Weise kann man dadurch schließende Blockklammern auskommentieren, obwohl sie gesperrt sind.

--------------------------------------------------------------

Expected behaviour:
--------------------------------------------------------------
Auskommentieren einer Zeile sollte nicht den Cursor verändern, da das verwirrt und Fehler provoziert. Siehe auch Kommentare.

Außerdem:
Wenn der Editor schon bei der Bedienung mitdenken und unterstützen will, dann muss er dabei immer die Einrückung berücksichtigen, sonst schadet er immer mehr als er hilft.

--------------------------------------------------------------

Comment:
--------------------------------------------------------------

Begründung, warum der Cursor nicht versetzt werden sollte:

1.)
Beim mehrzeiligen auskommentieren passiert das auch nicht. Das ist also inkonsistentes und damit verwirrendes Verhalten.

2.)
Der Benutzer hat schon vor der Ausführung einer Aktion weitere Aktionen im Kopf. Z.B. "Aktuelle Zeile auskommentieren, Enter, andere Zeile Code schreiben".
Im routinierten Arbeitsfluss führt man so eine Kette an Aktionen schnell hintereinander aus. Wenn dann die IDE mit einem halb clever mitgedachten automatischen Zeilenumbruch dazwischenfunkt kommt nicht das Ergebnis raus, das man beabsichtigt hatte und man muss erst wieder manuell nachbessern.

3.)
Beim Auskommentieren mag das Verhalten manchmal noch sinnvoll sein, aber spätestens beim Einkommentieren will man das nie.

Weitere Hinweise:

Ich nehme an genau aus diesen Gründen lässt Eclipse den Cursor, wo er ist.

Das ist nur eine Kleinigkeit, aber die Summe aus dutzenden solcher Kleinigkeiten macht das tägliche Arbeiten mit XDEV4 zu einer Qual. Ständig passiert irgendwo etwas, das man nicht erwartet und/oder das kontraproduktiv ist. Allein schon die ständigen manuellen Nachbesserungen an Einrückungen schlauchen auf Dauer extrem.
Siehe auch XDEV-2994.

--------------------------------------------------------------

Environment

None

Assignee

FH

Reporter

Thomas Münz

Labels

None

Epic/Theme

None

Priority

Major