Vorüberlegungen um statische Imports zu organisieren
Ich gebe zu, ich habe nicht damit gerechnet, dass mein “Organize Imports” Plugin so interessant sein könnte, dass man es sogar auf der Startseite von NetBeans als “Featured Plugin” packen könnte. Ok, es ist brauchbar, aber schließlich habe ich nur eine Idee aus einer anderen IDE kopiert. Sei’s drum. Ich freue mich, dass ich auch Feedback bekomme und mit ihnen neue Ideen.
Eine Sache wird immer wieder angefragt: “Kann ich auch statische Imports gesondert behandeln?”
Im Moment ist es so, dass “static import” Anweisungen innerhalb der “normalen” imports mitsortiert werden.
1 2 3 | import de.nigjo.depfind.core.Storage; import static de.nigjo.depfind.core.StorageProperties.*; import de.nigjo.depfind.data.DependencyGraph; |
Also innerhalb der definierten Gruppen und alphabetisch nach dem Klassennamen.
Jetzt ist die Frage, wie kann man die Imports “sinnvoll” sortieren und wie kann man dem Benutzer eventuell verschiedene Optionen anbieten. Ich habe dazu mal auf die Schnelle einen ersten Entwurf für das OptionPanel erstellt und mich würde dazu eure Meinung interessieren:

Erste Idee zu Statischen Imports
Ich könnte mir vorstellen, daß manche Entwickler auch “top” statt “bottom” bevorzugen. Insgesamt sehe ich folgende Optionen:
(1) Group with non-static imports
(1.1) Static imports at top of the group
(1.2) Static imports mixed with non-static imports
(1.3) Static imports at bottom of the group
(2) Separate group for all static imports
(2.1) Before all non-static imports
(2.2) After all non-static imports
Bei (1.1) und (1.3) wäre ferner noch ein Schalter denkbar, ob die statischen Imports mit einer Leerzeile abgetrennt werden sollen.
Was damit allerdings noch nicht definiert ist, ist wie sich da die Imports aus Packages einsortieren, die keiner der definierten Gruppen entsprechen. Zum einen untereinander (static vs. non-static), zum anderen relativ zu den definierten Gruppen.
Alternativ könnte man die Sache in die Definition der einzelnen Gruppen verlagern. Man könnte bei jeder Gruppe folgende Optionen haben:
(1) Static imports only
(2) Non-static imports only
(3) Static and non-static imports
(3.1) Static imports at top of the group
(3.2) Static imports mixed with non-static imports
(3.3) Static imports at bottom of the group
Wenn man dann noch Gruppen für “*” (= “alle restlichen Packages”) definieren könnte, hätte man damit die volle Flexibilität.
Ich denke nicht, dass letzteres so sinnvoll ist. Meiner Meinung nach wird es eine “Programmierrichtlinie” ((ob jetzt vom Arbeitgeber vorgegeben oder sich selbst auferlegt)) bei den Leuten, die beschreibt wie mit statischen Imports umzugehen ist. Deswegen glaube ich nicht, dass “individuelle” Einstellungen pro Paket notwendig sind.
Eine Frage, die sich mir auch gestellt hat: Werden die statischen Imports genauso gruppiert, wie die “normalen” oder werden die statischen Imports anders bzw. individueller gruppiert? Weil dann könnte man sich die Optionen sparen und einfach entsprechende Gruppen definieren lassen. Sind keine “statischen” Gruppen definiert, gehören die imports zu den “sonstigen”. Aber ist das Sinnvoll?
Jens
Moin!
Ich finde static imports so speziell, so dass sie extra als eigene Gruppen sortiert werden sollten. Entweder on top oder on bottom oder normal einsortiert (wie andere imports). M.E. reicht das für den Alltag. Große Firmen machen ein Pretty Print sowieso im Versioning oder Build Server vor…
Beste Grüße,
Josch.
[...] der rechten Seite gibt es jetzt die Möglichkeit die Art und Weise wie statische Imports sortiert werden sollen einzustellen. Die oberste Einstellung entspricht der aktuellen Vorgehensweise. Da vermutlich [...]