From 8aefdf1c718fd0e6c8f8dc1b23a0c25510dd19a0 Mon Sep 17 00:00:00 2001 From: greg Date: Tue, 22 Sep 2009 15:33:34 +0400 Subject: [PATCH] IDEADEV-40480 Can't rename java files outside source roots --- .../com/intellij/refactoring/rename/JavaVetoRenameCondition.java | 7 ++++++- .../com/intellij/refactoring/rename/PsiElementRenameHandler.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java b/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java index be0bb45855..70157913b2 100644 --- a/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java +++ b/java/java-impl/src/com/intellij/refactoring/rename/JavaVetoRenameCondition.java @@ -1,12 +1,17 @@ package com.intellij.refactoring.rename; +import com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil; import com.intellij.openapi.util.Condition; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; import com.intellij.psi.PsiJavaFile; import com.intellij.psi.JspPsiUtil; public class JavaVetoRenameCondition implements Condition { public boolean value(final PsiElement element) { - return element instanceof PsiJavaFile && !JspPsiUtil.isInJspFile(element) && ((PsiJavaFile) element).getClasses().length > 0; + return element instanceof PsiJavaFile && + !JspPsiUtil.isInJspFile(element) && + !CollectHighlightsUtil.isOutsideSourceRootJavaFile((PsiFile)element) && + ((PsiJavaFile) element).getClasses().length > 0; } } diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java b/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java index d7c61e8657..860e59d8a4 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/PsiElementRenameHandler.java @@ -68,7 +68,7 @@ public class PsiElementRenameHandler implements RenameHandler { static boolean canRename(Project project, Editor editor, PsiElement element) { if (element == null) return false; - if (CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false; + if (!(element instanceof PsiFile) && CollectHighlightsUtil.isOutsideSourceRootJavaFile(element.getContainingFile())) return false; boolean hasRenameProcessor = RenamePsiElementProcessor.forElement(element) != RenamePsiElementProcessor.DEFAULT; boolean hasWritableMetaData = element instanceof PsiMetaOwner && ((PsiMetaOwner)element).getMetaData() instanceof PsiWritableMetaData; -- 2.11.4.GIT