From dc37fca1439890f366b15ffd3b8710afe7b3bc67 Mon Sep 17 00:00:00 2001 From: James Strachan Date: Tue, 13 Mar 2012 07:13:52 +0000 Subject: [PATCH] allow packages to be excluded and added kotlin-jdbc to the API --- libraries/kdoc/ApiDocsModule.kt | 4 ++-- .../kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt | 13 +++++++++++++ .../org/jetbrains/kotlin/doc/model/KotlinModel.kt | 2 +- libraries/website/src/main/modules/ApiModule.kt | 11 +++++++++++ .../org/jetbrains/kotlin/site/GenerateSiteTest.kt | 5 ++++- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 libraries/website/src/main/modules/ApiModule.kt diff --git a/libraries/kdoc/ApiDocsModule.kt b/libraries/kdoc/ApiDocsModule.kt index 91d45e37cd5..6237f370e08 100644 --- a/libraries/kdoc/ApiDocsModule.kt +++ b/libraries/kdoc/ApiDocsModule.kt @@ -2,10 +2,10 @@ import kotlin.modules.* fun project() { module("apidocs") { - classpath += "kunit/lib/junit-4.9.jar" + classpath += "../kunit/lib/junit-4.9.jar" - addSourceFiles("../stdlib/ktSrc") addSourceFiles("../stdlib/src") addSourceFiles("../kunit/src/main/kotlin") + addSourceFiles("../kotlin-jdbc/src/main/kotlin") } } \ No newline at end of file diff --git a/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt b/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt index 0ce4cab2896..a1d7e0ef881 100644 --- a/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt +++ b/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDocConfig.kt @@ -3,6 +3,7 @@ package org.jetbrains.kotlin.doc import kotlin.* import kotlin.util.* import java.util.* +import org.jetbrains.kotlin.doc.model.KPackage /** * The configuration used with KDoc @@ -24,6 +25,11 @@ class KDocConfig() { */ public val packagePrefixToUrls: Map = TreeMap(LongestFirstStringComparator()) + /** + * Returns a Set of the package name prefixes to ignore from the KDoc report + */ + public val ignorePackages: Set = HashSet() + /** * Returns true if a warning should be generated if there are no comments * on documented function or property @@ -78,6 +84,13 @@ class KDocConfig() { } return "" } + + /** + * Returns true if the package should be included in the report + */ + fun includePackage(pkg: KPackage): Boolean { + return !ignorePackages.any{ pkg.name.startsWith(it) } + } } protected class LongestFirstStringComparator() : Comparator { diff --git a/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt b/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt index 3cebc244bd0..997e78f875b 100644 --- a/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt +++ b/libraries/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/model/KotlinModel.kt @@ -165,7 +165,7 @@ class KModel(var context: BindingContext, val config: KDocConfig) { /** Returns the local packages */ public val packages: Collection - get() = allPackages.filter{ it.local } + get() = allPackages.filter{ it.local && config.includePackage(it) } public val classes: Collection get() = packages.flatMap{ it.classes } diff --git a/libraries/website/src/main/modules/ApiModule.kt b/libraries/website/src/main/modules/ApiModule.kt new file mode 100644 index 00000000000..a8f52b3b4b0 --- /dev/null +++ b/libraries/website/src/main/modules/ApiModule.kt @@ -0,0 +1,11 @@ +import kotlin.modules.* + +fun project() { + module("apidocs") { + classpath += "kunit/lib/junit-4.9.jar" + + addSourceFiles("../stdlib/src") + addSourceFiles("../kunit/src/main/kotlin") + addSourceFiles("../kotlin-jdbc/src/main/kotlin") + } +} \ No newline at end of file diff --git a/libraries/website/src/test/kotlin/org/jetbrains/kotlin/site/GenerateSiteTest.kt b/libraries/website/src/test/kotlin/org/jetbrains/kotlin/site/GenerateSiteTest.kt index 64b94754903..7f0ba32ceb8 100644 --- a/libraries/website/src/test/kotlin/org/jetbrains/kotlin/site/GenerateSiteTest.kt +++ b/libraries/website/src/test/kotlin/org/jetbrains/kotlin/site/GenerateSiteTest.kt @@ -24,12 +24,15 @@ class GenerateSiteTest : TestCase() { copyDocResources(outDir) val args = KDocArguments() - args.setSrc("../stdlib/src") + args.setModule("../kdoc/ApiDocsModule.kt") args.setDocOutputDir(outDir.toString()) args.setOutputDir("target/classes-stdlib") + val config = args.docConfig config.title = "Kotlin API ($version)" config.version = version + config.ignorePackages.add("org.jetbrains.kotlin") + config.ignorePackages.add("kotlin.template.experiment") val compiler = KDocCompiler() compiler.exec(System.out, args)