mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
more diagnostics and fail-fast for EA-93279 - assert: SmartPointerManagerImpl.createSmartPsiFileRangePointer
This commit is contained in:
+1
-3
@@ -114,9 +114,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager {
|
||||
public SmartPsiFileRange createSmartPsiFileRangePointer(@NotNull PsiFile file,
|
||||
@NotNull TextRange range,
|
||||
boolean forInjected) {
|
||||
if (!file.isValid()) {
|
||||
LOG.error("Invalid element:" + file);
|
||||
}
|
||||
PsiUtilCore.ensureValid(file);
|
||||
SmartPointerTracker.processQueue();
|
||||
SmartPsiFileRangePointerImpl pointer = new SmartPsiFileRangePointerImpl(file, ProperTextRange.create(range), forInjected);
|
||||
trackPointer(pointer, file.getViewProvider().getVirtualFile());
|
||||
|
||||
+1
@@ -115,6 +115,7 @@ public class InjectedLanguageUtil {
|
||||
|
||||
public static boolean enumerate(@NotNull PsiElement host, @NotNull PsiLanguageInjectionHost.InjectedPsiVisitor visitor) {
|
||||
PsiFile containingFile = host.getContainingFile();
|
||||
PsiUtilCore.ensureValid(containingFile);
|
||||
return enumerate(host, containingFile, true, visitor);
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -23,6 +23,7 @@ import com.intellij.ide.util.treeView.smartTree.Sorter;
|
||||
import com.intellij.lang.dtd.DTDLanguage;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.psi.xml.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -64,6 +65,7 @@ public class XmlStructureViewTreeModel extends TextEditorBasedStructureViewModel
|
||||
public Object getCurrentEditorElement() {
|
||||
final Object editorElement = super.getCurrentEditorElement();
|
||||
if (editorElement instanceof XmlTag) {
|
||||
PsiUtilCore.ensureValid((XmlTag)editorElement);
|
||||
for (StructureViewExtension extension : StructureViewFactoryEx.getInstanceEx(getPsiFile().getProject()).getAllExtensions(XmlTag.class)) {
|
||||
final Object element = extension.getCurrentEditorElement(getEditor(), (PsiElement)editorElement);
|
||||
if (element != null) return element;
|
||||
|
||||
Reference in New Issue
Block a user