0

動機:每個類/接口/註釋/枚舉必須由@SomeAnnotation註釋。但是,我們希望此註釋僅位於頂級類,而不是內部類。如何在IntelliJ IDEA中查找頂級未註釋的類

目標是創建一個結構檢查,警告開發人員他們忘記註釋類。 如何指定結構搜索/替換來查找所有缺少@SomeAnnotation的頂級結構?

回答

1

像這樣的東西應該工作:

@$Annotation$ // min: 0, max: 0, text/regexp: SomeAnnotation 
class $C$ {} // min: 1, max: 1 

// Complete Match - Script text: 
if (C instanceof com.intellij.psi.PsiIdentifier) C = C.parent 
C.containingClass == null 

腳本的第一行是必要的IntelliJ IDEA 14中的C腳本模式引用$ C $。

+0

搞清楚了!在IntelliJ IDEA 15上,我的腳本能夠正常工作。對不起,我沒有提到我在IntelliJ IDEA 15上進行了測試(這是對已刪除評論的回覆)。 –

+0

謝謝。它可以工作,但它僅適用於Idea 15。我們的公司不能強迫每個開發人員使用最新版本,特別是在舊版本進行大量定製時。 ()。(C.getParent()instanceof com.intellij.psi.PsiClass)&&((com.intellij.psi.PsiClass)C.getParent() ).getContainingClass()== null' 然而,只有在想法14而不是在想法15中交換(不要問我爲什麼)。 你有什麼想法如何使它在理念14和15同時工作? – imparente

+0

我修改爲在兩個版本的IntelliJ IDEA中工作的解決方案。 –