IDEA-119475 Can't remove file reverence

This commit is contained in:
Dmitry Avdeev
2014-03-18 14:58:15 +04:00
parent 4e20c7fbcf
commit 82427495c0
@@ -75,7 +75,8 @@ public class UnInjectLanguageAction implements IntentionAction, LowPriorityActio
final PsiFile psiFile = InjectedLanguageUtil.findInjectedPsiNoCommit(file, offset);
if (psiFile == null) {
PsiReference reference = file.findReferenceAt(offset);
if (reference != null && reference.getElement() instanceof PsiLanguageInjectionHost) {
if (reference == null) return;
if (reference.getElement() instanceof PsiLanguageInjectionHost) {
PsiLanguageInjectionHost host = (PsiLanguageInjectionHost)reference.getElement();
for (LanguageInjectionSupport support : InjectorUtils.getActiveInjectionSupports()) {
if (support.isApplicableTo(host) && support.removeInjectionInPlace(host)) {
@@ -84,6 +85,13 @@ public class UnInjectLanguageAction implements IntentionAction, LowPriorityActio
}
}
}
PsiElement element = reference.getElement();
LanguageInjectionSupport support = element.getUserData(LanguageInjectionSupport.INJECTOR_SUPPORT);
if (support != null) {
if (support.removeInjection(element)) {
((PsiModificationTrackerImpl)PsiManager.getInstance(project).getModificationTracker()).incCounter();
}
}
return;
}
final PsiLanguageInjectionHost host = InjectedLanguageManager.getInstance(project).getInjectionHost(psiFile);