From bf6696b193d6a08d1d6c79d4c8e2a0564a286d7e Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Mon, 15 Dec 2014 18:40:36 +0300 Subject: Update to changes in compiler (KDoc is child node of declaration) --- src/Analysis/CommentsAPI.kt | 5 ++--- src/Analysis/PsiAPI.kt | 14 +++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Analysis/CommentsAPI.kt b/src/Analysis/CommentsAPI.kt index 2407de76..215f3e98 100644 --- a/src/Analysis/CommentsAPI.kt +++ b/src/Analysis/CommentsAPI.kt @@ -10,9 +10,8 @@ fun DeclarationDescriptor.getDocumentationElements(): List { if (psiElement == null) return listOf() - return psiElement.previousSiblings() // go backwards - .takeWhile { it !is JetDeclaration } // till previous declaration - .filter { it is KDoc } // get KDocs + return psiElement.children() // visit children + .takeWhile { it is KDoc } // all KDoc .map { it as KDoc } // cast .toList() .reverse() // make reversed list diff --git a/src/Analysis/PsiAPI.kt b/src/Analysis/PsiAPI.kt index 2282cd1d..19ac4675 100644 --- a/src/Analysis/PsiAPI.kt +++ b/src/Analysis/PsiAPI.kt @@ -3,16 +3,20 @@ package org.jetbrains.dokka import com.intellij.psi.* import kotlin.support.* -fun PsiElement.previousSiblings(): Stream { - var element: PsiElement? = this +fun PsiElement.children(): Stream { + val parent = this + var current: PsiElement? = null return object : Stream { override fun iterator(): Iterator = object : AbstractIterator() { + { + setNext(parent.getFirstChild()) + } override fun computeNext() { - element = element?.getPrevSibling() - if (element == null) + current = current?.getNextSibling() + if (current == null) done() else - setNext(element!!) + setNext(current!!) } } } -- cgit