introduce utility ScratchFileService.isInScratchRoot(file)

This commit is contained in:
Gregory.Shrago
2015-10-02 21:23:50 +03:00
parent 79ef5cc3dd
commit 3e868975da
3 changed files with 9 additions and 11 deletions
@@ -46,4 +46,8 @@ public abstract class ScratchFileService {
@NotNull
public abstract PerFileMappings<Language> getScratchesMapping();
public static boolean isInScratchRoot(@Nullable VirtualFile file) {
return getInstance().getRootType(file) != null;
}
}
@@ -22,9 +22,9 @@ 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.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.refactoring.move.MoveCallback;
import com.intellij.refactoring.move.MoveHandlerDelegate;
import org.jetbrains.annotations.Nullable;
@@ -62,13 +62,7 @@ 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) || isInScratches(psiElement);
}
protected static boolean isInScratches(PsiElement psiElement) {
VirtualFile virtualFile = psiElement instanceof PsiFileSystemItem ? ((PsiFileSystemItem)psiElement).getVirtualFile() : null;
if (virtualFile != null && ScratchFileService.getInstance().getRootType(virtualFile) != null) return true;
return false;
return psiElement.getManager().isInProject(psiElement) || ScratchFileService.isInScratchRoot(PsiUtilCore.getVirtualFile(psiElement));
}
public void doMove(final PsiElement[] elements, final PsiElement targetContainer) {
@@ -23,7 +23,7 @@ import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.ide.fileTemplates.FileTemplate;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.ide.scratch.ScratchRootType;
import com.intellij.ide.scratch.ScratchFileService;
import com.intellij.injected.editor.VirtualFileWindow;
import com.intellij.lang.ASTFactory;
import com.intellij.lang.ASTNode;
@@ -55,6 +55,7 @@ import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.stubs.StubElement;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.psi.util.QualifiedName;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.util.*;
@@ -1832,8 +1833,7 @@ public class PyUtil {
}
public static boolean isInScratchFile(@NotNull PsiElement element) {
PsiFile file = element.getContainingFile();
return file != null && ScratchRootType.getInstance().isScratchFile(file.getVirtualFile());
return ScratchFileService.isInScratchRoot(PsiUtilCore.getVirtualFile(element));
}
/**