From c0a9d4e1b8f67dc15529f1b35bdb36480787e2b7 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 17 Nov 2010 16:30:28 +0300 Subject: [PATCH] if inplace rename is invoked for file outside of content roots, search for references inside that file and not in project (PY-2290) --- .../rename/inplace/VariableInplaceRenamer.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java index 3c399cc39ac9..3e6b1d5ede86 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/inplace/VariableInplaceRenamer.java @@ -39,12 +39,14 @@ import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil; import com.intellij.psi.search.LocalSearchScope; +import com.intellij.psi.search.ProjectScope; import com.intellij.psi.search.SearchScope; import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PsiTreeUtil; @@ -109,8 +111,13 @@ public class VariableInplaceRenamer { if (InjectedLanguageUtil.isInInjectedLanguagePrefixSuffix(myElementToRename)) { return false; } - - final Collection refs = ReferencesSearch.search(myElementToRename).findAll(); + + VirtualFile vFile = myElementToRename.getContainingFile().getVirtualFile(); + SearchScope referencesSearchScope = vFile == null || ProjectRootManager.getInstance(myProject).getFileIndex().isInContent(vFile) + ? ProjectScope.getProjectScope(myElementToRename.getProject()) + : new LocalSearchScope(myElementToRename.getContainingFile()); + + final Collection refs = ReferencesSearch.search(myElementToRename, referencesSearchScope, false).findAll(); addReferenceAtCaret(refs);