From be8caaaceb5d91058904ac393c1ca5420463dfa4 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 9 Mar 2011 14:27:39 +0100 Subject: [PATCH] Sibling lookup fixed, sorry --- .../psi/impl/SharedPsiElementImplUtil.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/impl/SharedPsiElementImplUtil.java b/platform/lang-impl/src/com/intellij/psi/impl/SharedPsiElementImplUtil.java index fd628e7b5198..1fd242f2607c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/SharedPsiElementImplUtil.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/SharedPsiElementImplUtil.java @@ -86,7 +86,12 @@ public class SharedPsiElementImplUtil { @Nullable public static PsiElement getNextSibling(PsiElement element) { - PsiElement parent = getElementParent(element); + if (element instanceof PsiFile) { + final FileViewProvider viewProvider = ((PsiFile)element).getViewProvider(); + element = viewProvider.getPsi(viewProvider.getBaseLanguage()); + } + if (element == null) return null; + final PsiElement parent = element.getParent(); if (parent == null) return null; final PsiElement[] children = parent.getChildren(); @@ -96,22 +101,17 @@ public class SharedPsiElementImplUtil { @Nullable public static PsiElement getPrevSibling(PsiElement element) { - PsiElement parent = getElementParent(element); - if (parent == null) return null; - - final PsiElement[] children = parent.getChildren(); - final int index = getChildIndex(children, element); - return index > 0 ? children[index - 1] : null; - } - - @Nullable - private static PsiElement getElementParent(PsiElement element) { if (element instanceof PsiFile) { final FileViewProvider viewProvider = ((PsiFile)element).getViewProvider(); element = viewProvider.getPsi(viewProvider.getBaseLanguage()); } if (element == null) return null; - return element.getParent(); + final PsiElement parent = element.getParent(); + if (parent == null) return null; + + final PsiElement[] children = parent.getChildren(); + final int index = getChildIndex(children, element); + return index > 0 ? children[index - 1] : null; } private static int getChildIndex(final PsiElement[] children, final PsiElement child) {