Eclipse automatische Positionierung von Imports

eclipse
placement
platzierung
neon2
import

#1

Ich habe vor kurzem von einer älteren auf die neuste Eclipse-Version (Neon.2) gewechselt. Dabei macht mir eine Sache zu schaffen, die ich bislang auch mit einer Suche im Internet nicht beheben konnte (bestimmt nur mit den falschen Suchbegriffen, das ist ja oft das schwierige, dass man eine Lösung sofort findet, wenn man sie kennt…).

Ich habe in manchen Java-Dateien oben zwei Kommentarblöcke. Zuerst ein “grüner”

/* 
 * Lizenzen
 * bla 
 * bla 
 */

und irgendwann später ein “blauer” Javadov-Kommentar

/**
 * Diese Klasse ... bla bla...
 */

Dazwischen sind die Imports untergebracht. Die ersten Importe musste ich von Hand dort hinschieben, aber danach hat das alte Eclipse neue ebenfalls dort platziert.

Das neue Eclipse hat nun die Angewohnheit, es manchmal richtig zu machen, manchmal aber auch falsch, und dann ist weder der erste Lizenz-Kommentar noch die Importe zu sehen, auch nichts zum Ausklappen. Ich muss dann die Datei schließen und wieder öffnen, dann sehe ich, dass die neuen Importe über dem ersten Kommentarblock angeordnet sind und ich kann sie verschieben.

Das ist jetzt nicht so ein großes Drama, aber gerade diese “verbuggen”, so dass ich gar nicht mehr alles oben im Kopf der Datei sehen kann, nervt schon.

Kennt jemand da eine Einstellung oder Abhilfe?

Bislang war es halt so, dass beim Öffnen der erste Kommentarblock und auch die Importe eingeklappt sind - das klappt auch immer noch, wenn ich es von Hand richtig sortiert habe - und das ist auch der von mir bevorzugte Zustand, da ich beides im Normalfall nicht sehen will, besonders den Lizenzkommentar nicht…

Edit: Wenn ich vorher Lizenz-Kommentar wie auch die Importe ausklappe, wird der neue Import korrekt eingefügt.


#2

Das Problem kenne ich eigentlich nur von Mars. Dort hatte ich es, wenn ich das “assign to new filed” Refactoing benutzte.

Seit Neon ist das bei mir ok…

bye
TT


#3

Witziger Weise ist es auch davon abhängig, welches Import oben zugefügt werden soll.

Schriebe ich im Code new ArrayList<>() und die ArrayList ist noch nicht bekannt und ich lasse sie per Mouse-Over importieren, landet das

import java.util.ArrayList;

an der richtigen Stelle.

Wenn ich das gleiche mit einem new HashMap<>() machen, landet das

import java.util.HashMap;

ganz oben an der falschen Stelle.

Das ist wirklich etwas obskur.


#4

Eventuell mal nen Bug report bei eclipse einreichen? Gewünscht ist das Verhalten wahrscheinlich nicht…