From beda8bb56b61260992cdf9eed27121d9c7012d4a Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 23 Mar 2017 10:00:58 +0100 Subject: [PATCH] allow to drop into excluded directory (IDEA-170100) --- .../MoveFilesOrDirectoriesHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesHandler.java b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesHandler.java index c2d517c59766..2fa5189162fd 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesHandler.java @@ -21,6 +21,8 @@ import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ProjectRootManager; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtilCore; @@ -61,7 +63,9 @@ public class MoveFilesOrDirectoriesHandler extends MoveHandlerDelegate { public static boolean isValidTarget(PsiElement psiElement) { if (!(psiElement instanceof PsiDirectory || psiElement instanceof PsiDirectoryContainer)) return false; - return psiElement.getManager().isInProject(psiElement) || ScratchFileService.isInScratchRoot(PsiUtilCore.getVirtualFile(psiElement)); + if (psiElement.getManager().isInProject(psiElement)) return true; + VirtualFile virtualFile = PsiUtilCore.getVirtualFile(psiElement); + return ScratchFileService.isInScratchRoot(virtualFile) || virtualFile != null && ProjectRootManager.getInstance(psiElement.getProject()).getFileIndex().isExcluded(virtualFile); } public void doMove(final PsiElement[] elements, final PsiElement targetContainer) {