@NotNull private static JBIterable<PsiElement> getSiblings(PsiElement element, boolean fwd) { SyntaxTraverser.ApiEx<PsiElement> api = fwd ? SyntaxTraverser.psiApi() : SyntaxTraverser.psiApiReversed(); JBIterable<PsiElement> flatSiblings = JBIterable.generate(element, api::next).skip(1); return SyntaxTraverser.syntaxTraverser(api) .withRoots(flatSiblings) .expandAndSkip(e -> api.typeOf(e) == GeneratedParserUtilBase.DUMMY_BLOCK) .traverse(); }