diff --git a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java index 8d04bf395a28..fffbbd005022 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java @@ -683,6 +683,12 @@ public class ExternalAnnotationsManagerImpl extends ReadableExternalAnnotationsM LogMessageEx.error(LOG, message, file.getText()); } + public static boolean areExternalAnnotationsApplicable(@NotNull PsiModifierListOwner owner) { + if (!owner.isPhysical()) return false; + if (!owner.getManager().isInProject(owner)) return true; + return CodeStyleSettingsManager.getSettings(owner.getProject()).USE_EXTERNAL_ANNOTATIONS; + } + private static class MyExternalPromptDialog extends OptionsMessageDialog { private final Project myProject; private static final String ADD_IN_CODE = ProjectBundle.message("external.annotations.in.code.option"); diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java index 4749cb7b4ab8..fbc9d2e3d064 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java @@ -24,13 +24,13 @@ package com.intellij.codeInsight.intention.impl; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.CodeInsightBundle; +import com.intellij.codeInsight.ExternalAnnotationsManagerImpl; import com.intellij.codeInsight.intention.AddAnnotationFix; import com.intellij.codeInsight.intention.AddAnnotationPsiFix; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.psi.*; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -48,9 +48,7 @@ public abstract class AddAnnotationIntention extends BaseIntentionAction { @Override public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) { final PsiModifierListOwner owner = AddAnnotationPsiFix.getContainer(file, editor.getCaretModel().getOffset()); - if (owner == null || - !owner.isPhysical() || - owner.getManager().isInProject(owner) && !CodeStyleSettingsManager.getSettings(project).USE_EXTERNAL_ANNOTATIONS) { + if (owner == null || !ExternalAnnotationsManagerImpl.areExternalAnnotationsApplicable(owner)) { return false; } Pair annotations = getAnnotations(project); diff --git a/java/java-impl/src/com/intellij/codeInspection/dataFlow/EditContractIntention.java b/java/java-impl/src/com/intellij/codeInspection/dataFlow/EditContractIntention.java index 1a73d573b1c6..60ab41393239 100644 --- a/java/java-impl/src/com/intellij/codeInspection/dataFlow/EditContractIntention.java +++ b/java/java-impl/src/com/intellij/codeInspection/dataFlow/EditContractIntention.java @@ -17,6 +17,7 @@ package com.intellij.codeInspection.dataFlow; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.ExternalAnnotationsManager; +import com.intellij.codeInsight.ExternalAnnotationsManagerImpl; import com.intellij.codeInsight.InferredAnnotationsManagerImpl; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.codeInsight.intention.AddAnnotationPsiFix; @@ -29,7 +30,6 @@ import com.intellij.openapi.ui.DialogBuilder; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.ui.DocumentAdapter; import com.intellij.ui.NonFocusableCheckBox; import com.intellij.ui.components.JBTextField; @@ -59,8 +59,7 @@ public class EditContractIntention extends BaseIntentionAction implements LowPri @Nullable private static PsiMethod getTargetMethod(@NotNull Project project, Editor editor, PsiFile file) { final PsiModifierListOwner owner = AddAnnotationPsiFix.getContainer(file, editor.getCaretModel().getOffset()); - if (owner instanceof PsiMethod && - (!owner.getManager().isInProject(owner) || CodeStyleSettingsManager.getSettings(project).USE_EXTERNAL_ANNOTATIONS)) { + if (owner instanceof PsiMethod && ExternalAnnotationsManagerImpl.areExternalAnnotationsApplicable(owner)) { PsiElement original = owner.getOriginalElement(); return original instanceof PsiMethod ? (PsiMethod)original : (PsiMethod)owner; }