# Eclipse smarter machen



## Kababär (9. Okt 2017)

Hi,

ich benutze arbeitsbedingt wieder Eclipse und ich kann mich absolut nicht damit anfreunden. Mal abgesehen davon, dass ich es furchtbar langsam finde (das Starten des Programms, Auto-Completion, Suche in Datei, etc etc etc), stört mich am meisten, dass mich Auto-Funktionen eher behindern, als helfen. So schreibe ich lieber tausend mal

```
List<String> list = new ArrayList<>();
```
Statt es Eclipse zu überlassen. Aber das hält extrem auf.. und programmieren macht so auch keinen Spaß, wenn ich tausend mal das Gleiche schreiben muss. Deswegen hoffe ich, von euch ein paar Tipps zu bekommen 

Wenn ich diese Zeile zum ersten Mal in einer Klasse eintippe, fehlen ja die Imports. Kann ich Eclipse da etwas schlauer machen, sodass ich beispiels nur "li" tippe, Strg+Leerzeichen und er mir "List" vorschlägt? Und wenn ich dann nochmal Strg+Leerzeichen tippe, er mir für den Variablennamen "list" vorschlägt?
Angenommen ich habe eine Liste "list". Wenn ich jetzt einfach "list" schreibe, kann ich daraus mittels Shortcut (oder Proposal) eine Schleife erstellen?
Kann ich die Reihenfolge der Proposals verändern? 
Kann ich die Schleifenart verändern, wenn ich bereits eine Schleife habe?
Zu 3.  so was meine ich. Es ist doch wohl logisch, dass ich hier die Liste haben will und nicht die Methode. Immerhin steht hier nirgends "object."?!
Genau das Gleiche wenn ich 
	
	
	
	





```
List list = new
```
 schreibe und dann Strg+Leerzeichen drücke. ArrayList erscheint erst an dritter Stelle. 
Zu 4. Ich habe testweise eine kleine Schleife geschrieben
 
Dann ist mir eingefallen, dass es schlauer wäre, die Liste zu modifizieren während ich drüber laufe, also wollte ich einen Iterator verwenden. Strg+Leerzeichen und auf das entsprechende Proposal geklickt. Eclipse der Schlaumeier gibt mir so was:

 
Nicht nur, dass er die falsche Liste zum Iterieren benutzt, sondern er erstellt eine nicht kompilierbare Version... und er castet auch noch.

Kann man daran was ändern? Benutze ich Eclipse einfach falsch? Bei IntelliJ funktioniert sowas wie am Schnürchen... auch Netbeans hat damit, soweit ich mich erinnern kann, keinerlei Probleme.


----------



## Thallius (9. Okt 2017)

Lern doch einfach das 10 Finger System 

SCNR

Claus

P.S. Also ich schreibe immer bis new A und drücke dann STRG-Space. Dann macht er daraus auch das richtige. Sind also zwei Tasten mehr als du magst. Macht ungefähr 1/10 Sekunde Zeitverlust.
Auf die Idee die IDE eine Schleife für mich erstellen zu lassen bin ich bisher noch nie gekommen. Dasctippen so einer Zeile dauert bei mir keine 3 Sekunden mit meinem 6-8 Finger System. Da muss ich nicht überlegen hier Zeit sparen, da die Relation der Zeit die ich mit tippen verbringe zu der Zeit die ich fürs nachdenken brauche was ich tippen will kleiner 1:100 ist


----------



## Meniskusschaden (9. Okt 2017)

Kababär hat gesagt.:


> Zu 3.
> 
> so was meine ich. Es ist doch wohl logisch, dass ich hier die Liste haben will und nicht die Methode. Immerhin steht hier nirgends "object."?!


Ich finde nicht, dass das so selbstverständlich ist, dass Instanzvariablen Vorrang vor Methoden haben sollen. Man kann es aber beeinflussen, indem man in den ContentAssist-Einstellungen "Java Proposals (Code Recommenders)" deaktiviert und z.B. "Java Proposals" aktiviert.



Kababär hat gesagt.:


> Kann ich die Schleifenart verändern, wenn ich bereits eine Schleife habe?


Ich glaube eher nicht, dass ContentAssist das kann. Deshalb:


Kababär hat gesagt.:


> Nicht nur, dass er die falsche Liste zum Iterieren benutzt, sondern er erstellt eine nicht kompilierbare Version... und er castet auch noch.


fügt Eclipse hier einen neuen Vorschlag ein. Wenn man den Vorschlag mittendrin aufruft, entsteht natürlich insgesamt ungültiger Code. Und deshalb ist das auch nicht die "falsche", sondern eine mögliche Liste. Wenn man mit TAB dorthin navigiert, kann man eine andere auswählen und Eclipse führt dann auch entsprechende Änderungen durch, falls sie beispielsweise einen anderen Typ hat. Das Casting kann man im Template (oder einer eigenen Kopie davon) entfernen und dort auch den Typparameter für den Iterator einfügen.


----------



## Kababär (12. Okt 2017)

Ok dann werde ich mir mal die Konfigurationen von Eclipse angucken..
Danke für eure Antworten.


----------

