SelectInTargetPsiWrapper.getContextPsiFile: don't load document which can be expensive (IDEA-160800)

This commit is contained in:
peter
2016-09-05 15:49:16 +02:00
parent 1a7dbb791d
commit 815629e908
@@ -17,8 +17,6 @@ package com.intellij.ide.impl;
import com.intellij.ide.SelectInContext;
import com.intellij.ide.SelectInTarget;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
@@ -59,21 +57,18 @@ public abstract class SelectInTargetPsiWrapper implements SelectInTarget {
@Nullable
protected PsiFileSystemItem getContextPsiFile(@NotNull SelectInContext context) {
VirtualFile virtualFile = context.getVirtualFile();
final Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
final PsiFileSystemItem psiFile;
if (document != null) {
psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(document);
PsiFileSystemItem psiFile = PsiManager.getInstance(myProject).findFile(virtualFile);
if (psiFile != null) {
return psiFile;
}
else if (context.getSelectorInFile() instanceof PsiFile) {
psiFile = (PsiFile)context.getSelectorInFile();
if (context.getSelectorInFile() instanceof PsiFile) {
return (PsiFile)context.getSelectorInFile();
}
else if (virtualFile.isDirectory()) {
psiFile = PsiManager.getInstance(myProject).findDirectory(virtualFile);
if (virtualFile.isDirectory()) {
return PsiManager.getInstance(myProject).findDirectory(virtualFile);
}
else {
psiFile = PsiManager.getInstance(myProject).findFile(virtualFile);
}
return psiFile;
return null;
}
@Override