From 9ff5f3ad2ec49199f3863c10e8b072ff8c4b6a85 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Sun, 30 Dec 2012 13:21:07 +0100 Subject: [PATCH] IDEA-98305 'Use Darcula aware JBColor' inspection is triggered in non-plugin module --- .../src/com/intellij/util/PlatformUtils.java | 14 +++++++++++++- .../src/inspections/UseJBColorInspection.java | 9 +++++++++ .../references/IconsReferencesContributor.java | 18 +++--------------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/platform/platform-api/src/com/intellij/util/PlatformUtils.java b/platform/platform-api/src/com/intellij/util/PlatformUtils.java index fb7e5eab60eb..79b69414162f 100644 --- a/platform/platform-api/src/com/intellij/util/PlatformUtils.java +++ b/platform/platform-api/src/com/intellij/util/PlatformUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,10 @@ */ package com.intellij.util; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.Nullable; + /** * @author Konstantin Bulenkov */ @@ -74,4 +78,12 @@ public class PlatformUtils { public static boolean isIntelliJ() { return isIdea() || isCommunity(); } + + public static boolean isIdeaProject(@Nullable Project project) { + final VirtualFile baseDir; + return project != null + && ("IDEA".equals(project.getName()) || "community".equals(project.getName())) + && (baseDir = project.getBaseDir()) != null + && baseDir.findFileByRelativePath("plugins") != null; + } } diff --git a/plugins/devkit/src/inspections/UseJBColorInspection.java b/plugins/devkit/src/inspections/UseJBColorInspection.java index 1173b526a289..833b774c3b7c 100644 --- a/plugins/devkit/src/inspections/UseJBColorInspection.java +++ b/plugins/devkit/src/inspections/UseJBColorInspection.java @@ -19,15 +19,19 @@ import com.intellij.codeInspection.InspectionManager; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.codeInspection.ProblemsHolder; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.ui.JBColor; +import com.intellij.util.PlatformUtils; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.devkit.inspections.quickfix.ConvertToJBColorConstantQuickFix; import org.jetbrains.idea.devkit.inspections.quickfix.ConvertToJBColorQuickFix; +import org.jetbrains.idea.devkit.module.PluginModuleType; import java.awt.*; @@ -38,6 +42,11 @@ public class UseJBColorInspection extends DevKitInspectionBase { @NotNull @Override public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, final boolean isOnTheFly) { + final Module module = ModuleUtilCore.findModuleForPsiElement(holder.getFile()); + if (module == null + || !(PlatformUtils.isIdeaProject(holder.getProject()) || PluginModuleType.isPluginModuleOrDependency(module))) { + return new JavaElementVisitor(){}; + } return new JavaElementVisitor() { @Override public void visitNewExpression(PsiNewExpression expression) { diff --git a/plugins/devkit/src/references/IconsReferencesContributor.java b/plugins/devkit/src/references/IconsReferencesContributor.java index 2b45c8132935..7aebbd4809a0 100644 --- a/plugins/devkit/src/references/IconsReferencesContributor.java +++ b/plugins/devkit/src/references/IconsReferencesContributor.java @@ -21,7 +21,6 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootManager; @@ -42,10 +41,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlAttributeValue; import com.intellij.usageView.UsageInfo; -import com.intellij.util.IncorrectOperationException; -import com.intellij.util.ProcessingContext; -import com.intellij.util.Processor; -import com.intellij.util.QueryExecutor; +import com.intellij.util.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -75,7 +71,7 @@ public class IconsReferencesContributor extends PsiReferenceContributor implemen @NotNull @Override public PsiReference[] getReferencesByElement(@NotNull final PsiElement element, @NotNull ProcessingContext context) { - if (false && !isIdeaProject(element.getProject())) return PsiReference.EMPTY_ARRAY; + if (!PlatformUtils.isIdeaProject(element.getProject())) return PsiReference.EMPTY_ARRAY; return new PsiReference[] { new PsiReferenceBase(element, true) { @Override @@ -159,7 +155,7 @@ public class IconsReferencesContributor extends PsiReferenceContributor implemen @NotNull @Override public PsiReference[] getReferencesByElement(@NotNull final PsiElement element, @NotNull ProcessingContext context) { - if (!isIdeaProject(element.getProject())) return PsiReference.EMPTY_ARRAY; + if (!PlatformUtils.isIdeaProject(element.getProject())) return PsiReference.EMPTY_ARRAY; return new FileReferenceSet(element) { @Override protected Collection getExtraContexts() { @@ -278,14 +274,6 @@ public class IconsReferencesContributor extends PsiReferenceContributor implemen return "AllIcons".equals(className) ? "com.intellij.icons.AllIcons" : "icons." + className; } - public static boolean isIdeaProject(@Nullable Project project) { - final VirtualFile baseDir; - return project != null - && ("IDEA".equals(project.getName()) || "community".equals(project.getName())) - && (baseDir = project.getBaseDir()) != null - && baseDir.findFileByRelativePath("plugins") != null; - } - @Override public boolean execute(@NotNull ReferencesSearch.SearchParameters queryParameters, @NotNull final Processor consumer) { final PsiElement file = queryParameters.getElementToSearch();