From 982c472cdd42fee546749f5db6b139318a3bd2de Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 9 Aug 2018 15:39:40 +0200 Subject: [PATCH] devkit: fix incorrect warn about unregistered application component --- .../ComponentNotRegisteredInspection.java | 27 ++++++++++--------- .../devkit-core/src/util/ComponentType.java | 4 +-- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/plugins/devkit/devkit-core/src/inspections/ComponentNotRegisteredInspection.java b/plugins/devkit/devkit-core/src/inspections/ComponentNotRegisteredInspection.java index 2859c847a033..debf3b7c7c3e 100644 --- a/plugins/devkit/devkit-core/src/inspections/ComponentNotRegisteredInspection.java +++ b/plugins/devkit/devkit-core/src/inspections/ComponentNotRegisteredInspection.java @@ -132,23 +132,26 @@ public class ComponentNotRegisteredInspection extends DevKitJvmInspection { } for (ComponentType componentType : ComponentType.values()) { - if (!InheritanceUtil.isInheritor(checkedClass, componentType.myClassName)) { - continue; - } - - if (findRegistrationType(checkedClass, COMPONENT_TYPE_TO_REGISTRATION_TYPE.get(componentType)) != null) { + if (InheritanceUtil.isInheritor(checkedClass, componentType.myClassName) && checkComponentRegistration(checkedClass, sink, componentType)) { return; } - if (!canFix(checkedClass)) { - return; - } - - LocalQuickFix fix = new RegisterComponentFix(componentType, org.jetbrains.idea.devkit.util.PsiUtil.createPointer(checkedClass)); - sink.highlight(DevKitBundle.message("inspections.component.not.registered.message", - DevKitBundle.message(componentType.myPropertyKey)), fix); } } + private static boolean checkComponentRegistration(@NotNull PsiClass checkedClass, @NotNull HighlightSink sink, @NotNull ComponentType componentType) { + if (findRegistrationType(checkedClass, COMPONENT_TYPE_TO_REGISTRATION_TYPE.get(componentType)) != null) { + return true; + } + if (!canFix(checkedClass)) { + return true; + } + + LocalQuickFix fix = new RegisterComponentFix(componentType, org.jetbrains.idea.devkit.util.PsiUtil.createPointer(checkedClass)); + sink.highlight(DevKitBundle.message("inspections.component.not.registered.message", + DevKitBundle.message(componentType.myPropertyKey)), fix); + return false; + } + private static PsiClass findRegistrationType(@NotNull PsiClass checkedClass, @NotNull RegistrationCheckerUtil.RegistrationType type) { final Set types = RegistrationCheckerUtil.getRegistrationTypes(checkedClass, type); return ContainerUtil.getFirstItem(types); diff --git a/plugins/devkit/devkit-core/src/util/ComponentType.java b/plugins/devkit/devkit-core/src/util/ComponentType.java index c74214131864..89910965b12b 100644 --- a/plugins/devkit/devkit-core/src/util/ComponentType.java +++ b/plugins/devkit/devkit-core/src/util/ComponentType.java @@ -14,9 +14,9 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.PropertyKey; public enum ComponentType { - APPLICATION(BaseComponent.class, "application-components", "new.menu.application.component.text"), + MODULE(ModuleComponent.class, "module-components", "new.menu.module.component.text"), PROJECT(ProjectComponent.class, "project-components", "new.menu.project.component.text"), - MODULE(ModuleComponent.class, "module-components", "new.menu.module.component.text"); + APPLICATION(BaseComponent.class, "application-components", "new.menu.application.component.text"); public final String myClassName; public final String myPropertyKey;