2012-10-17 10 views
17

W ciągu moich dni C# uwielbiałem używać rozszerzenia Visual Studio o nazwie "GhostDoc". Teraz, kiedy jestem używany jako programista Java, używam Eclipse. Mogę żyć bez możliwości wnioskowania o dokumentację, ale coś, co chciałbym zrobić, to inteligentnie "naprawić" moją dokumentację. Na przykład, załóżmy, mam następujący sposób:Jak inteligentnie naprawić dokumentację w Eclipse?

/** 
* 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 
} 

Później w rozwoju uświadamiam sobie, że dobrze byłoby, aby umożliwić konsumentom z moim sposobem przechodzą w wartości qux. Nie tylko to, ale ma to sens, aby mieć go jako pierwszy parametr. Również zamierzam mieć metodę, która rzuca mój bardzo przydatny wyjątek FooBarException. Teraz moja metoda wygląda następująco:

/** 
* 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 
} 

Będąc dobrym programistą, chcę, aby moje zmiany zostały odzwierciedlone w mojej aplikacji JavaDoc. W GhostDoc mógłbym nacisnąć klawisz skrótu do dokumentu i dodać nowe rzeczy bez naruszania starych rzeczy. W Eclipse, renderuje on cały nowy zestaw JavaDoc i muszę zrobić kilka kopii makaronu. Jak mogę automatycznie wstawić do mojego JavaDoc nowy @param, @exception i brakujący parametr @returns, nie tracąc aktualnie posiadanej JavaDoc?

+0

używam Alt + Shift + J –

+0

edytor Eclipse Java musiałby być zmodyfikowany tak, aby to zrobić, więc chciałbym powiedzieć, że nie. –

+1

Zawsze możesz stworzyć własną wtyczkę dla Eclipse, która sprawdzi wszystkie metody w klasie i jeśli javadoc będzie odpowiadał parametrom, wyjątkom ... wtedy dodaj wartości domyślne dla tych tagów. Zobacz ten [tutorial by Vogel] (http://www.vogella.com/articles/EclipsePlugIn/article.html) ... może zrobię to następnym razem, gdy nie będę miał nic do zrobienia, ponieważ mam tendencję do refaktoryzacji mojego kodu po napisaniu javadoc. – knownasilya

Odpowiedz

16

Nie wiem, czy po to, czego ment, ale ponieważ zaćmienie ma własną JavaDoc Validator, można skonfigurować skompilować Ostrzeżenia/błędy pod

Window -> Preferences -> Java -> Compiler -> JavaDoc.

Po aktywowaniu brakujących znaczników javadoc na własne potrzeby i ustawieniu poziomu ostrzegawczego na "ostrzeżenie", kompilator zauważy wprowadzone zmiany i ostrzeże Cię, gdy tylko javadoc różni się od podpisu metod. Aby to naprawić, oferuje quickfix (STRG + 1) i możesz wybrać dodać wszystkie brakujące znaczniki. Ta operacja spowoduje dodanie brakujących tagów nawet we właściwym miejscu, bez naruszania starego komentarza.

enter image description here

+0

To jest DOKŁADNIE to, czego chciałem. DZIĘKI!!!! –

2

Eclipse obsługuje także "code" -completion dla JavaDoc. Nie musisz wpisywać opisu otworu. Wystarczy wpisać "@ p", a CTRL + Space wydrukuje resztę za Ciebie. Albo jeszcze lepiej, po prostu napisz nazwę parmetera, uzupełnienie kodu doda resztę.

Nie jest to bezpośrednio skrót, ale można szybciej ehhance javadoc niż pisać wszystko od zera.

to samo dla @t (@ throw) @r (@return) i tak dalej.

Edycja na Twój komentarz:

Można skonfigurować Checkstyle na sprawdzanie klas automatycznie. Checkstyle będzie raportować, gdy twoja metoda ma nie udokumentowany parametr lub kilka innych brakujących parametrów. Checkstyle może również sprawdzić, czy twoje pierwsze zdanie kończy się znakiem "." albo nie. Wiele takich reguł można zrobić ręcznie.

Checkstyle doda znaczniki problemów do edytora kodu Java i widoku problemów. Możesz więc łatwo znaleźć linie kodu z problemami javadoc.

+1

To miło. Ale to, czego nie robi, to wykrywanie, kiedy mam parametry z brakującą dokumentacją, brakującą dokumentacją powrotną, brakujące opisy metod, brakującą dokumentację wyjątku itp. ... Robię co mogę, ale jestem tylko człowiekiem. Tak więc narzędzie takie jak GhostDoc jest niezwykle użyteczne. –

+0

To nieprawda! Używamy tego mechanizmu w naszej firmie i we wszystkich tych przypadkach otrzymuję znaczniki problemów. –

+1

Witam Markusa. Mój komentarz był w odpowiedzi na twoją pierwotną odpowiedź. W odpowiedzi na mój komentarz zmieniłeś swoją odpowiedź. Ta poprawiona odpowiedź jest dokładna i tego, czego szukałem. Dzięki. –

1

Wpisanie/** powyżej typowego miejsca komentarza (te same miejsca co w GhostDoc) spowoduje automatyczne uzupełnienie szablonu komentarza.

Jeśli zmienisz nazwę zmiennej za pomocą funkcji zmiany nazwy (Shift + Alt + R), to Eclipse zmieni również nazwy we wszystkich odpowiednich miejscach, zakładając, że kod się skompiluje.

Obejmuje oraz linki komentarz dokonaniu

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

Zmiana nazwy albo myThing lub MyThingClass używając funkcji zmiany nazwy Eclipse będzie zaktualizować te referencje zbyt.

Podobnie, stosując metodę Zmień podpis”funkcjonalność” zaktualizuje swoje komentarze też.

Zasadniczo, jeśli refactoring w ogóle, użyj menu refaktoryzacji (Shift + Alt + T).

+0

Próbuję to zrobić, ale czasami zdarzają się takie rzeczy, jak inni deweloperzy, którzy wprowadzają zmiany w kontroli wersji, które nie zmieniają się w ten sposób. Chociaż zapobieganie temu scenariuszowi jest idealne, naprawdę szukam sposobu, aby to naprawić, gdy to się stanie. –

+2

@JasonThompson Ahh. Nie wiem, jak to zrobić, może polecam PMD i CheckStyle, żeby wymusić te rzeczy podczas odprawy? Podobnie, daj devs odpowiedzialnym ciężko na sprawdzenie w pół-powstały kod. Działa tutaj. – BanksySan

1

Checkstyle już wspomniano. Próbowałem, ale wydawało się, że dużo spowalniało moje Eclipse (E4 juno, co jest znane z powodu złych spowolnień).

Google CodePro wykonał lepszą pracę, więc używam tego teraz.

Oczywiście można włączyć ostrzeżenia JavaDoc.