W 艣wiecie IntelliJ IDEAistnieje co艣, co nazywa si臋 inspection.
To w艂a艣nie ten mechanizm stoi za spor膮 cz臋艣ci膮 inteligencji mojej wtyczki, kt贸r膮 powolutku na boku rozwijam.
Pisz膮c swoj膮 pierwsz膮 inspekcj臋, trafi艂em na PsiElementVisitor.
To obiekt, kt贸ry odwiedza kolejne fragmenty kodu w drzewie PSI (przypominam, 偶e w IntelliJ kod nie jest traktowany jak zwyk艂y tekst, tylko jak struktura obiekt贸w)
PsiElementVisitor dos艂ownie skacze po drzewie i wstrzela si臋 dok艂adnie w to, co Ci臋 interesuje.
U mnie s膮 to np. bloki catch.
M贸j plugin przegl膮da wszystkie takie bloki i sprawdza, czy w 艣rodku znajduje si臋 logowanie b艂臋du.
Co je艣li loga nie ma? Wtedy IDE podkre艣la ten fragment i sugeruje dodanie loga oraz lombokowej adnotacji @Log4j2 (tzw. QuickFix)
To tylko jedna z inspekcji, kt贸re implementuj臋.
W艂a艣nie w ten spos贸b Intellij wykrywa np. nieu偶ywane zmienne lub b艂臋dy sk艂adni.
M贸j tygodniowy post臋p
馃殌 Kontynuuj臋 tworzenie mojego plugina do Intellij