2012-10-17 38 views
17

回到我的C#日子,我喜歡使用名爲「GhostDoc」的Visual Studio擴展。現在我正在使用Eclipse作爲Java開發人員。我可以生活但不能推斷文檔,但我想要做的是智能地「修復」我的文檔。舉例來說,假設我有以下方法:如何智能修復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 
} 

發展後來我意識到,這將是有益的,讓我的方法的消費者在qux值傳遞。不僅如此,最重要的是將它作爲第一個參數。另外我會讓這個方法拋出我超級有用的FooBarException。所以,現在我的方法是這樣的:

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

作爲一個優秀的開發者,我想我的變化反映在我的JavaDoc。在GhostDoc中,我可以打開我的文檔快捷鍵,它會添加新的東西而不會干擾舊的東西。在Eclipse中,它呈現了一組全新的JavaDoc,我必須做一堆複製麪食。我如何自動將新的@param,@exception和缺少的@returns參數放入我的JavaDoc中,而不會丟失我目前擁有的JavaDoc?

+0

檢查正在使用Alt + Shift + J鍵 –

+0

Eclipse的Java編輯器將不得不進行修改,以做到這一點,所以我會說不。 –

+1

您可以隨時爲Eclipse創建自己的插件,用於檢查類中的所有方法,以及如果javadoc對應參數,例外情況..然後讓它爲這些標記插入默認值。看到這個[沃格爾教程](http://www.vogella.com/articles/EclipsePlugIn/article.html)...也許我會做下一次我無事可做,因爲我傾向於重構我的代碼在我寫javadoc之後。 – knownasilya

回答

16

不知道,如果下面是你換貨的,但由於Eclipse有它自己的JavaDoc驗證,您可以配置編譯警告/錯誤下

窗口 - >首選項 - >爪哇 - >編譯器 - >的JavaDoc。

根據您自己的需要激活缺少的javadoc標籤並將警告級別設置爲「警告」,編譯器會注意到您的更改並在您的javadoc與方法簽名不同時發出警告。爲了解決它,它提供了一個quickfix(STRG + 1),你可以選擇添加所有缺失的標籤。此操作將在正確的位置添加缺失的標籤,而不會干擾您的舊評論。

enter image description here

+0

這完全是我想要的。謝謝!!!! –

2

Eclipse支持「代碼」 - 對於JavaDoc也是完整的。您不必輸入洞聲明。你只需要輸入「@p」,CTRL +空格會爲你打印剩下的部分。或者甚至更好,只需寫出參數名稱,代碼完成就會添加其餘部分。

這不是直接的捷徑,但是你可以更快地提高javadoc的速度,而不是從頭開始寫所有東西。

與@t(@throw)@r(@return)相同,依此類推。

編輯您的評論:

您可以配置Checkstyle的,自動檢查你的類。 Checkstyle將報告您的方法何時存在未記錄的參數或其他缺少參數。 Checkstyle也可以檢查你的第一句是否以'。'結尾。或不。你可以手工製作很多這樣的規則。

Checkstyle將在您的java代碼編輯器和問題視圖中添加問題標記。所以你可以很容易地找到代碼行,並帶有javadoc問題。

+1

很好。但是它沒有做到的是當我有缺失文檔的參數時,檢測到缺少返回文檔,缺少方法描述,缺少異常文檔等等......我盡我所能,但我只是人。所以像GhostDoc這樣的工具非常有用。 –

+0

那不正確!我們在公司中使用這種機制,在所有這些情況下,我確實遇到了問題標記。 –

+1

嗨馬庫斯。我的評論是迴應你的原始答案。迴應我的評論,你修改了你的答案。這個修正的答案是準確的,我在找什麼。謝謝。 –

1

在典型的評論位置(與GhostDoc相同的位置)上鍵入/ **將自動完成註釋的模板。

如果使用重命名功能(Shift + Alt + R)更改變量的名稱,那麼Eclipse會在所有正確的位置更改名稱,假設代碼已編譯。

這包括和評論鏈接你使用Eclipse的重命名功能將太更新這些引用由

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

重命名或者myThing或MyThingClass。

同樣,使用「更改方法簽名」功能將基本上更新您的意見了。

,如果你重構所有,使用重構菜單(按住Shift + Alt + T)。

+0

我試圖做到這一點,但有時會發生諸如另一位開發人員提交不以這種方式重構的版本控制更改的情況。雖然防止這種情況非常理想,但我確實正在尋找一種方法來解決問題。 –

+2

@JasonThompson Ahh。我不知道有辦法做到這一點,也許有人建議PMD和CheckStyle在辦理登機手續時強制執行這些事情?同樣,讓開發人員很難負責檢查半角代碼。它在這裏工作。 – BanksySan

1

Checkstyle已經提到。我試過了,但它似乎減慢了我的Eclipse(E4 juno,儘管這是因爲有一些不好的減速而聞名)。

Google CodePro做得更好,所以我現在正在使用它。

當然,您可以啓用JavaDoc警告。以及與月神