summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/ide/util/PlatformPackageUtil.java
diff options
context:
space:
mode:
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.java14
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();
}
}