diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java')
-rw-r--r-- | platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java b/platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java index 01ad4cb38313..30d4933cbcb4 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java @@ -16,7 +16,6 @@ package com.intellij.ide.util; import com.intellij.ide.IdeBundle; -import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; @@ -35,6 +34,7 @@ import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; +import com.intellij.psi.impl.source.resolve.FileContextUtil; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.GlobalSearchScopes; import com.intellij.util.*; @@ -276,12 +276,10 @@ public class PlatformPackageUtil { } @Nullable - public static PsiDirectory getDirectory(PsiElement element) { - PsiFile file = element.getContainingFile(); - final PsiElement context = InjectedLanguageManager.getInstance(file.getProject()).getInjectionHost(file); - if (context != null) { - file = context.getContainingFile(); - } - return file.getParent(); + public static PsiDirectory getDirectory(@Nullable PsiElement element) { + if (element == null) return null; + // handle injection and fragment editor + PsiFile file = FileContextUtil.getContextFile(element); + return file == null ? null : file.getContainingDirectory(); } } |