2014-01-06 43 views
9

我正在爲Eclipse編寫一個PMD插件,該插件允許用戶通過添加註釋(如@SuppressWarnings("PMD.ReturnEmptyArrayRatherThanNull"))來禁止PMD警告。由於Eclipse不知道PMD.ReturnEmptyArrayRatherThanNull是一個有效的標記,它會警告標記不受支持並提供快速修復以將其刪除。如何在Eclipse中添加自定義SuppressWarnings標記

它如何讓Eclipse知道這實際上是一個受支持的SuppressWarnings標記,並且它不應該用警告標記它?

我不是在尋找一種方式來阻止用戶的警告。我知道Eclipse中的"Ignore unhandled token in SuppressWarnings"首選項。這是一種解決方法,並且具有Eclipse不會報告任何不支持的令牌的缺點,這使得例如相當困難。在SuppressWarnings令牌中發現錯字。

我在尋找的是一種插件開發人員可以擴展Eclipse的方式,以便將PMD標記識別爲支持SuppressWarnings標記。

到目前爲止,我只發現,通過支持Eclipse令牌是hard coded into the Eclipse Java compiler但還沒有找到一個擴展點,或別的東西,讓我的PMD令牌添加到令牌支持SuppressWarnings的列表。

+0

你有沒有解決過這個問題? –

+0

不幸的不是。我嘗試了一種解決方法,即在創建警告後立即刪除警告,但我從未設法使其正常工作。 –

+1

eclipse.org上的功能請求如何通過插件擴展列表? – kon

回答

0

你可以做的是編寫一個小插件,使用Equinox Weaving Service攔截此方法調用並從中返回自定義的IrritantSet實例。這需要對編譯器代碼進行一些窺探,但不應該太困難。

缺點是它可能會破壞JDT更新,並且只會在安裝了該插件的Eclipse中工作。

請參閱this tutorial瞭解如何編寫使用編織服務的插件。

相關問題