2012-10-17 18 views
17

In meinen C# -Tagen liebte ich die Verwendung einer Visual Studio-Erweiterung namens "GhostDoc". Nun, da ich ein Wesen bin, das als Java-Entwickler benutzt wird, benutze ich Eclipse. Ich kann leben, ohne eine Dokumentation haben zu können, aber etwas, was ich tun möchte, ist, meine Dokumentation intelligent zu "reparieren". Zum Beispiel, nehmen wir an, ich habe folgendes Verfahren:Wie intelligent Dokumentation in Eclipse zu beheben?

/** 
* Gets a collection of {@link Foo} objects 
* @param bar The bar level 
* @param baz The bazziness 
*/ 
public Collection<Foo> getFoos(int bar, int baz) 
{ 
    // Do something cool 
} 

auf Später in der Entwicklung merke ich, dass es nützlich wäre, die Verbraucher meiner Methode zu ermöglichen, in einem qux Wert zu übergeben. Nicht nur das, aber es macht am meisten Sinn, es als den ersten Parameter zu haben. Auch ich werde die Methode meine super nützliche FooBarException werfen lassen. So, jetzt meine Methode sieht wie folgt aus:

/** 
* Gets a collection of {@link Foo} objects 
* @param bar The bar level 
* @param baz The bazziness 
*/ 
public Collection<Foo> getFoos(String qux, int bar, int baz) throws FooBarException 
{ 
    // Do something cool 
} 

Sein ein guter Entwickler, ich möchte, dass meine Änderungen spiegelt sich in meinem JavaDoc. In GhostDoc konnte ich meine Dokumentkürzel-Taste drücken und es würde die neuen Sachen hinzufügen, ohne die alten Sachen zu stören. In Eclipse rendert es einen ganz neuen Satz von JavaDoc und ich muss eine Reihe von Copy Pasta machen. Wie kann ich automatisch den neuen @param, @exception und den fehlenden Parameter @returns in meinen JavaDoc einfügen, ohne den JavaDoc zu verlieren, den ich derzeit habe?

+0

sind mit Alt + Shift + J –

+0

Der Eclipse-Java-Editor geändert werden müßte, dies zu tun, würde ich so nicht sagen. –

+1

Sie könnten immer Ihr eigenes Plugin für Eclipse erstellen, das alle Methoden in einer Klasse überprüft und wenn das Javadoc den Parametern Ausnahmen entspricht. Dann müssen Sie Standardwerte für diese Tags einfügen. Sehen Sie das [Tutorial von Vogel] (http://www.vogella.com/articles/EclipsePlugIn/article.html) ... vielleicht mache ich es das nächste Mal, wenn ich nichts zu tun habe, weil ich dazu tendiere, meinen Code umzuformen nachdem ich das Javadoc geschrieben habe. – knownasilya

Antwort

16

Nicht sicher, ob das folgende ist, was Sie ment, aber da eclipse seine eigene JavaDoc Validator hat, können Sie Warnungen/Fehler unter

Fenster kompilieren konfigurieren -> Einstellungen -> Java -> Compiler -> JavaDoc.

Mit der Aktivierung der fehlenden javadoc-Tags auf Ihre eigenen Bedürfnisse und der Einstellung der Warnstufe auf "warning" wird der Compiler Ihre Änderungen bemerken und Sie warnen, sobald sich Ihr Javadoc von Ihrer Methodensignatur unterscheidet. Um es zu beheben, bietet es einen Quickfix (STRG + 1) und Sie können wählen, alle fehlenden Tags hinzuzufügen. Diese Operation fügt die fehlenden Tags sogar an der richtigen Stelle hinzu, ohne mit Ihrem alten Kommentar zu verwirren.

enter image description here

+0

Das ist genau das, was ich wollte. VIELEN DANK!!!! –

2

Eclipse unterstützt "Code" -Komplett für JavaDoc auch. Sie müssen die hole-Anweisung nicht eingeben. Sie müssen nur "@p" eingeben und STRG + Leertaste wird den Rest für Sie ausdrucken. Oder noch besser, schreiben Sie einfach den Namen des Parameters, Code-Completion fügt den Rest hinzu.

Es ist nicht direkt eine Abkürzung, aber Sie können schneller das Javadoc als alles von Grund auf neu schreiben.

gleich für @t (@throw) @r (@return) und so weiter.

Bearbeiten, um Ihren Kommentar:

Sie können Check konfigurieren, für Ihre Klassen automatisch zu überprüfen. Checkstyle meldet, wenn Ihre Methode über einen nicht dokumentierten Parameter oder andere fehlende Parameter verfügt. Checkstyle kann auch prüfen, ob Ihr erster Satz mit einem '.' oder nicht. Sie können viele solcher Regeln von Hand.

Checkstyle fügt in Ihrem Java-Code-Editor und in Ihrer Problemansicht Problemmarkierungen hinzu. So können Sie problemlos Codezeilen mit Javadoc-Problemen finden.

+1

Das ist schön. Aber was es nicht tut, ist festzustellen, wenn ich Parameter mit fehlender Dokumentation, fehlender Rückdokumentation, fehlenden Methodenbeschreibungen, fehlender Ausnahmedokumentation usw. habe. Ich tue mein Bestes, aber ich bin nur ein Mensch. Ein Tool wie GhostDoc ist also bemerkenswert nützlich. –

+0

Das ist nicht korrekt! Wir verwenden diesen Mechanismus in unserer Firma und ich bekomme Problemmarker in all diesen Fällen. –

+1

Hallo Markus. Mein Kommentar war eine Antwort auf Ihre ursprüngliche Antwort. Als Antwort auf meinen Kommentar haben Sie Ihre Antwort geändert. Diese geänderte Antwort ist korrekt und das, was ich gesucht habe. Vielen Dank. –

1

Die Eingabe von/** oberhalb eines typischen Kommentars (gleiche Orte wie bei GhostDoc) vervollständigt automatisch eine Vorlage für den Kommentar.

Wenn Sie den Namen einer Variablen mithilfe der Umbenennungsfunktion (Umschalt + Alt + R) ändern, ändert Eclipse die Namen auch an den richtigen Stellen, vorausgesetzt, der Code wird kompiliert.

Dies beinhaltet und Kommentarlinks Sie haben

/** 
* 
* My funky method 
* 
* @param myThing 
*   myThing is of type {@link MyThingClass} 
*/ 
public void myMethod(MyThingClass myThing) {} 

gemacht Umbenennung entweder Mything oder MyThingClass mit Eclipse Umbenennung Funktionalität aktualisiert auch diese Verweise.

Ebenso wird die „Change Method Signature‘ Funktionalität mit zu Ihren Kommentare aktualisieren.

Grundsätzlich, wenn Sie überhaupt Refactoring, verwenden Sie das Refactoring-Menü (Shift + Alt + T).

+0

Ich versuche, dies zu tun, aber manchmal passieren Dinge wie ein anderer Entwickler, der Änderungen an der Versionskontrolle festlegt, die auf diese Weise nicht umgestaltet wurden. Obwohl dieses Szenario ideal ist, suche ich wirklich nach einer Möglichkeit, es zu beheben, wenn es passiert. –

+2

@JasonThompson Ahh. Ich weiß nicht, wie ich das machen soll, empfehle vielleicht PMD & CheckStyle, diese Dinge beim Check-in durchzusetzen? Geben Sie auch den verantwortlichen Entwicklern eine harte Zeit für das Einchecken von halbemarschem Code. Es funktioniert hier. – BanksySan

1

Checkstyle wurde bereits erwähnt. Ich habe es versucht, aber es schien meine Eclipse stark zu verlangsamen (E4 juno though, das dafür bekannt ist, einige schlechte Verlangsamungen zu haben).

Google CodePro machte einen besseren Job, also benutze ich jetzt jetzt.

Und natürlich können Sie JavaDoc Warnungen aktivieren.