fix: try findInjectedElementAt() Fixed #70

This commit is contained in:
林万程
2025-01-05 10:37:22 +08:00
parent e89b5e9c79
commit 61c357cdaf

View File

@@ -58,18 +58,20 @@ public abstract class BaseLangDoc extends EditorLinePainter {
return null; return null;
} }
} }
@Nullable PsiElement injectedElement = info.inject.findInjectedElementAt(element.getContainingFile(), info.endOffset); try {
if (injectedElement != null) { @Nullable PsiElement injectedElement = info.inject.findInjectedElementAt(element.getContainingFile(), info.endOffset);
@Nullable FileInfo fileInfo = FileInfo.of(injectedElement.getContainingFile()); if (injectedElement != null) {
if (fileInfo != null) { @Nullable FileInfo fileInfo = FileInfo.of(injectedElement.getContainingFile());
int lineNumber = fileInfo.document.getLineNumber(injectedElement.getTextRange().getStartOffset()); if (fileInfo != null) {
@Nullable LineInfo lineInfo = LineInfo.of(fileInfo, lineNumber); int lineNumber = fileInfo.document.getLineNumber(injectedElement.getTextRange().getStartOffset());
if (lineInfo != null) { @Nullable LineInfo lineInfo = LineInfo.of(fileInfo, lineNumber);
element = injectedElement; if (lineInfo != null) {
info = lineInfo; element = injectedElement;
info = lineInfo;
}
} }
} }
} } catch (Throwable ignored) {}
@Nullable BaseLangDoc lineEnd = PsiElementTo.findLangDoc(element); @Nullable BaseLangDoc lineEnd = PsiElementTo.findLangDoc(element);
if (lineEnd == null) { if (lineEnd == null) {
return null; return null;