aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/kotlin/Samples/KotlinWebsiteSampleProcessingService.kt21
-rw-r--r--core/src/test/kotlin/format/KotlinWebSiteRunnableSamplesFormatTest.kt5
2 files changed, 23 insertions, 3 deletions
diff --git a/core/src/main/kotlin/Samples/KotlinWebsiteSampleProcessingService.kt b/core/src/main/kotlin/Samples/KotlinWebsiteSampleProcessingService.kt
index 648a6b67..baf44904 100644
--- a/core/src/main/kotlin/Samples/KotlinWebsiteSampleProcessingService.kt
+++ b/core/src/main/kotlin/Samples/KotlinWebsiteSampleProcessingService.kt
@@ -2,10 +2,9 @@ package org.jetbrains.dokka.Samples
import com.google.inject.Inject
import com.intellij.psi.PsiElement
-import org.jetbrains.dokka.DocumentationOptions
-import org.jetbrains.dokka.DokkaLogger
-import org.jetbrains.dokka.DokkaResolutionFacade
+import org.jetbrains.dokka.*
import org.jetbrains.kotlin.psi.*
+import org.jetbrains.kotlin.resolve.ImportPath
open class KotlinWebsiteSampleProcessingService
@Inject constructor(options: DocumentationOptions,
@@ -65,6 +64,22 @@ open class KotlinWebsiteSampleProcessingService
return sampleBuilder.text
}
+ val importsToIgnore = arrayOf("samples.*").map(::ImportPath)
+
+ override fun processImports(psiElement: PsiElement): ContentBlockCode {
+ val psiFile = psiElement.containingFile
+ if (psiFile is KtFile) {
+ return ContentBlockCode("kotlin").apply {
+ psiFile.importList?.let {
+ it.children.filter {
+ it !is KtImportDirective || it.importPath !in importsToIgnore
+ }.forEach { append(ContentText(it.text)) }
+ }
+ }
+ }
+ return super.processImports(psiElement)
+ }
+
override fun processSampleBody(psiElement: PsiElement) = when (psiElement) {
is KtDeclarationWithBody -> {
val bodyExpression = psiElement.bodyExpression
diff --git a/core/src/test/kotlin/format/KotlinWebSiteRunnableSamplesFormatTest.kt b/core/src/test/kotlin/format/KotlinWebSiteRunnableSamplesFormatTest.kt
index 1f514932..742d2908 100644
--- a/core/src/test/kotlin/format/KotlinWebSiteRunnableSamplesFormatTest.kt
+++ b/core/src/test/kotlin/format/KotlinWebSiteRunnableSamplesFormatTest.kt
@@ -7,6 +7,11 @@ import org.junit.Test
class KotlinWebSiteRunnableSamplesFormatTest {
private val kwsService = KotlinWebsiteRunnableSamplesFormatService(InMemoryLocationService, KotlinLanguageService())
+
+ @Test fun dropImport() {
+ verifyKWSNodeByName("dropImport", "foo")
+ }
+
@Test fun sample() {
verifyKWSNodeByName("sample", "foo")
}