2014-04-13

Tipp: bessere Vorschläge in Eclipse

Vor einigen Wochen bin ich über die Bing Code Search für Visual Studio gestolpert. Die Idee dieses Plug-ins ist, die klassischen “Wie geht denn das?”-Fragen direkt aus der IDE heraus zu stellen. Fundstellen können dann unmittelbar übernommen werden. Auf Channel 9 gibt es ein Video dazu. Natürlich kann man darüber streiten, ob auf diese Weise bessere oder schlechtere Programme entstehen. Ob man aber Code direkt aus Stack Overflow kopiert oder dafür ein Tool nutzt, ist egal. Wie bei allen Werkzeugen ist es am Nutzer, es maß- und sinnvoll zu verwenden.
Da ich die Idee grundsätzlich sehr gut finde, habe ich mich gefragt, ob es so etwas ähnliches auch für Eclipse gibt. Dabei bin ich auf das Projekt CODE RECOMMENDERS gestoßen. Dieses Plug-in integriert sich in die Content Assist-Funktion von Eclipse. Um Code Recommenders in der aktuellen Version verwenden zu können, muss mindestens Eclipse 4.2 installiert sein. Öffnen Sie über Help, Install new Software den Dialog Install und fügen im Eingabefeld neben Work with die URL der Plug-in-Update Site (http://download.eclipse.org/recommenders/updates/stable/) ein. Drücken Sie Enter, um die Liste der Plug-ins zu aktualisieren.
Installation des Plug-ins
Nach dem Download und dem obligatorischen Neustart steht das Plug-in zur Verfügung.
Die Einstellungsseite des Plug-ins
Um das Plug-in auszuprobieren, legen Sie am besten ein einfaches Java-Projekt mit einer beliebigen Klasse an. Fügen Sie dieser eine main()-Methode hinzu und tippen dann:
Date
Mit Steuerung-Leertaste rufen Sie Content Assist auf.
Aktivierung des Plug-ins
Aktivieren Sie die intelligente Vervollständigung, indem Sie den entsprechenden Eintrag mit Doppelklick oder Enter auswählen. Weiteres Durchblättern mit Steuerung-Leertaste öffnet Eclipse-typisch verschiedene Proposals-Arten. Code Recommenders fügt unter anderem die folgenden hinzu:
  • Call Completion schlägt wahrscheinliche Methoden vor. Bei den Vorschlägen wird berücksichtigt, was andere Entwickler in einem vergleichbaren Quelltextumfeld an Methoden aufgerufen haben
  • Override Completion schlägt die Methoden vor, die am wahrscheinlichsten überschrieben werden sollten
  • Subwords Completion unterstützt alle anderen Vorschlagsmechanismen oder arbeitet für sich alleine; hiermit werden Vorschläge auch auf Basis von Teilwörtern innerhalb eines Worts gemacht, nicht nur von Beginn an
Lassen Sie uns nun etwas ausprobieren. Wir haben gehört, dass die Klasse Calendar Instanzen von Date-Objekten erzeugen kann. Nur, wie? Tippen Sie Date date = Calendar.get und drüclen dann Steuerung-Leertaste.
Ist Ihnen aufgefallen, dass die ersten drei Buchstaben (get) eine andere Farbe haben? Wählen Sie die parameterlose Variante von getInstance() und drücken Enter. Außer einem hinzugefügten import (und das würde Eclipse auch ohne das Plug-in tun) ist noch nichts passiert. Geben Sie nun einen Punkt ein.
Relevanz-basierte Vorschlagsliste
Im Gegensatz zur früher erscheinenden alphabetisch sortierten Methodenliste sehen Sie nun eine nach Relevanz sortierte Vorschlagsliste. Mit ihr ist unsere fiktive Fragestellung schnell geklärt.
Wie finden Sie die Idee dieses Plug-ins. Schreiben Sie mir. Ich werde jedenfalls weiter damit experimentieren.

1 comment:

  1. Wenn dir Code Recommenders gefällt, ist "Codetrails Connect" vielleicht auch ganz interessant. Es betreibt Crowdsourcing in deiner Code Completion um so ständig bessere und genauere Vorschläge zu machen. Vielleicht mal einen Test wert?

    http://marketplace.eclipse.org/content/codetrails-connect-community-edition

    ReplyDelete