From 61c357cdaf6db98d14c0b387eb8a48f18306b090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=87=E7=A8=8B?= <1498425439@qq.com> Date: Sun, 5 Jan 2025 10:37:22 +0800 Subject: [PATCH] fix: try findInjectedElementAt() Fixed #70 --- .../plugin/show/lang/base/BaseLangDoc.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/github/linwancen/plugin/show/lang/base/BaseLangDoc.java b/src/main/java/io/github/linwancen/plugin/show/lang/base/BaseLangDoc.java index d0565a6..d97d90a 100644 --- a/src/main/java/io/github/linwancen/plugin/show/lang/base/BaseLangDoc.java +++ b/src/main/java/io/github/linwancen/plugin/show/lang/base/BaseLangDoc.java @@ -58,18 +58,20 @@ public abstract class BaseLangDoc extends EditorLinePainter { return null; } } - @Nullable PsiElement injectedElement = info.inject.findInjectedElementAt(element.getContainingFile(), info.endOffset); - if (injectedElement != null) { - @Nullable FileInfo fileInfo = FileInfo.of(injectedElement.getContainingFile()); - if (fileInfo != null) { - int lineNumber = fileInfo.document.getLineNumber(injectedElement.getTextRange().getStartOffset()); - @Nullable LineInfo lineInfo = LineInfo.of(fileInfo, lineNumber); - if (lineInfo != null) { - element = injectedElement; - info = lineInfo; + try { + @Nullable PsiElement injectedElement = info.inject.findInjectedElementAt(element.getContainingFile(), info.endOffset); + if (injectedElement != null) { + @Nullable FileInfo fileInfo = FileInfo.of(injectedElement.getContainingFile()); + if (fileInfo != null) { + int lineNumber = fileInfo.document.getLineNumber(injectedElement.getTextRange().getStartOffset()); + @Nullable LineInfo lineInfo = LineInfo.of(fileInfo, lineNumber); + if (lineInfo != null) { + element = injectedElement; + info = lineInfo; + } } } - } + } catch (Throwable ignored) {} @Nullable BaseLangDoc lineEnd = PsiElementTo.findLangDoc(element); if (lineEnd == null) { return null;