From d1e2ded1bae06342244559a70dfcaea36467dbf2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 11 Jul 2013 13:10:34 +0200 Subject: [PATCH] workaround for FlexCompletionTest.testBindingCompletion() (the actual problem is somewhere in injected<->host offset remapping in CompletionUtilCoreImpl.getOriginalElement()) --- .../com/intellij/psi/util/PsiUtilCore.java | 19 +++++++++++++++++++ .../com/intellij/psi/util/PsiUtilBase.java | 19 ------------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java b/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java index 2e5d198a5100..dc997cb27373 100644 --- a/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java +++ b/platform/core-api/src/com/intellij/psi/util/PsiUtilCore.java @@ -455,4 +455,23 @@ public class PsiUtilCore { throw new PsiInvalidElementAccessException(element); } } + + /** + * @deprecated use CompletionUtil#getOriginalElement where appropriate instead + */ + @Nullable + public static T getOriginalElement(@NotNull T psiElement, final Class elementClass) { + final PsiFile psiFile = psiElement.getContainingFile(); + final PsiFile originalFile = psiFile.getOriginalFile(); + if (originalFile == psiFile) return psiElement; + final TextRange range = psiElement.getTextRange(); + final PsiElement element = originalFile.findElementAt(range.getStartOffset()); + final int maxLength = range.getLength(); + T parent = PsiTreeUtil.getParentOfType(element, elementClass, false); + for (T next = parent ; + next != null && next.getTextLength() <= maxLength; + parent = next, next = PsiTreeUtil.getParentOfType(next, elementClass, true)) { + } + return parent; + } } diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java b/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java index 2f5e43c0c595..659f52777ed0 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiUtilBase.java @@ -116,25 +116,6 @@ public class PsiUtilBase extends PsiUtilCore { return host != null && isUnderPsiRoot(root, host); } - /** - * @deprecated use CompletionUtil#getOriginalElement where appropriate instead - */ - @Nullable - public static T getOriginalElement(@NotNull T psiElement, final Class elementClass) { - final PsiFile psiFile = psiElement.getContainingFile(); - final PsiFile originalFile = psiFile.getOriginalFile(); - if (originalFile == psiFile) return psiElement; - final TextRange range = psiElement.getTextRange(); - final PsiElement element = originalFile.findElementAt(range.getStartOffset()); - final int maxLength = range.getLength(); - T parent = PsiTreeUtil.getParentOfType(element, elementClass, false); - for (T next = parent ; - next != null && next.getTextLength() <= maxLength; - parent = next, next = PsiTreeUtil.getParentOfType(next, elementClass, true)) { - } - return parent; - } - @Nullable public static Language getLanguageInEditor(@NotNull final Editor editor, @NotNull final Project project) { PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());