From 815629e9085a25ea7723cf71d2e0ceec60cdccc2 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 5 Sep 2016 15:41:32 +0200 Subject: [PATCH] SelectInTargetPsiWrapper.getContextPsiFile: don't load document which can be expensive (IDEA-160800) --- .../ide/impl/SelectInTargetPsiWrapper.java | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/impl/SelectInTargetPsiWrapper.java b/platform/lang-impl/src/com/intellij/ide/impl/SelectInTargetPsiWrapper.java index bad62d6bbf9d..5ebb8a1cc868 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/SelectInTargetPsiWrapper.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/SelectInTargetPsiWrapper.java @@ -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