mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
workaround for FlexCompletionTest.testBindingCompletion() (the actual problem is somewhere in injected<->host offset remapping in CompletionUtilCoreImpl.getOriginalElement())
This commit is contained in:
@@ -455,4 +455,23 @@ public class PsiUtilCore {
|
||||
throw new PsiInvalidElementAccessException(element);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use CompletionUtil#getOriginalElement where appropriate instead
|
||||
*/
|
||||
@Nullable
|
||||
public static <T extends PsiElement> T getOriginalElement(@NotNull T psiElement, final Class<? extends T> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 extends PsiElement> T getOriginalElement(@NotNull T psiElement, final Class<? extends T> 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());
|
||||
|
||||
Reference in New Issue
Block a user