From 3527a1e3fc4542f3966baaa69836764ff6ab2daa Mon Sep 17 00:00:00 2001 From: Jeff Gaston Date: Thu, 13 Feb 2020 16:03:28 -0500 Subject: Declaring dokka-fatjar as a dependency of dokka-gradle-plugin So that Gradle knows that changes to dokka-fatjar should trigger rerunning of Dokka tasks Bug: 148450617 Test: ./gradlew publish && grep -B 2 -A 3 dokka-fatjar ./build/dist-maven/org/jetbrains/dokka/dokka-gradle-plugin/0.9.17-g007/dokka-gradle-plugin-0.9.17-g007.pom \ # and see that it says this: org.jetbrains.dokka dokka-fatjar 0.9.17-g007 runtime Change-Id: I82425452e10b7df1364973e56a4a1af726dded20 --- runners/gradle-plugin/build.gradle | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/runners/gradle-plugin/build.gradle b/runners/gradle-plugin/build.gradle index a0670803c..4742dda5d 100644 --- a/runners/gradle-plugin/build.gradle +++ b/runners/gradle-plugin/build.gradle @@ -63,6 +63,27 @@ publishing { } project.shadow.component(publication) + publication.pom { pom -> + // Add dokka-fatjar as a runtime dependency. + // This is a workaround until the Shadow jar can put project dependencies into the .pom: https://github.com/johnrengelman/shadow/commit/da82b37522b349aff414f571d2037682acd84f27 + pom.withXml { xml -> + def node = xml.asNode() + def deps = null + node.children().each { child -> + if (child.name().toString() == "dependencies") { + deps = child + } + } + if (deps == null) { + deps = node.appendNode("dependencies") + } + def dep = deps.appendNode("dependency") + dep.appendNode("groupId", "org.jetbrains.dokka") + dep.appendNode("artifactId", "dokka-fatjar") + dep.appendNode("version", dokka_version) + dep.appendNode("scope", "runtime") + } + } } } } -- cgit v1.2.3 From 9dfafb090560f9033bbddc9d848bec4cf568b2ed Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Thu, 20 Feb 2020 14:57:47 -0500 Subject: Include inherited methods in asJava documentation except for methods inherited from java.lang.Object BUG: 127327788 TEST: ./gradlew test Change-Id: Id4bdb189954fa72d0da8ed0bf55e9db797e91bcf --- .../kotlin/Java/JavaPsiDocumentationBuilder.kt | 12 ++++++- .../dac/inheritedMethods/dac-as-java/Child.html | 37 ++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index cc9c2c2bf..00422c89f 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -209,10 +209,20 @@ class JavaPsiDocumentationBuilder : JavaDocumentationBuilder { superTypes.filter { !ignoreSupertype(it) }.forEach { node.appendType(it, NodeKind.Supertype) val superClass = it.resolve() - if (superClass != null) { + // parentNode is the actual DocumentationNode of this class's supertype + // It is necessary to create documentation links back to the superclass from inherited methods + val parentNode = refGraph.lookup(it.typeSignature()) + if (superClass != null && parentNode != null) { link(superClass, node, RefKind.Inheritor) + // Explicitly add the methods of the superclass as nodes to this class + node.appendChildren(superClass.methods, RefKind.InheritedMember) { + val child = build() + child.addReferenceTo(parentNode, RefKind.Owner) + return@appendChildren child + } } } + var methodsAndConstructors = methods if (constructors.isEmpty()) { diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html index a66d0bf6c..24e570829 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html @@ -60,6 +60,43 @@ + + + + + + + + + +
+ +

Inherited functions

+
+
+ +

Public constructors

-- cgit v1.2.3 From a69e4417a837c9a4a6aac1d7fb8959018b8799fd Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Sat, 22 Feb 2020 14:00:52 +0000 Subject: Revert "Include inherited methods in asJava documentation" This reverts commit 9dfafb090560f9033bbddc9d848bec4cf568b2ed. Reason for revert: Broke all of the downstream builds Change-Id: Id0db651313f35a1b476dda4cc786150a553e3255 --- .../kotlin/Java/JavaPsiDocumentationBuilder.kt | 12 +------ .../dac/inheritedMethods/dac-as-java/Child.html | 37 ---------------------- 2 files changed, 1 insertion(+), 48 deletions(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index 00422c89f..cc9c2c2bf 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -209,20 +209,10 @@ class JavaPsiDocumentationBuilder : JavaDocumentationBuilder { superTypes.filter { !ignoreSupertype(it) }.forEach { node.appendType(it, NodeKind.Supertype) val superClass = it.resolve() - // parentNode is the actual DocumentationNode of this class's supertype - // It is necessary to create documentation links back to the superclass from inherited methods - val parentNode = refGraph.lookup(it.typeSignature()) - if (superClass != null && parentNode != null) { + if (superClass != null) { link(superClass, node, RefKind.Inheritor) - // Explicitly add the methods of the superclass as nodes to this class - node.appendChildren(superClass.methods, RefKind.InheritedMember) { - val child = build() - child.addReferenceTo(parentNode, RefKind.Owner) - return@appendChildren child - } } } - var methodsAndConstructors = methods if (constructors.isEmpty()) { diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html index 24e570829..a66d0bf6c 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html @@ -60,43 +60,6 @@ - - - - - - - - - -
- -

Inherited functions

-
-
- -

Public constructors

-- cgit v1.2.3 From c5d3f163c1f6bfc6c7db0bfd019ecd84168adcb5 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Mon, 24 Feb 2020 14:14:57 -0800 Subject: Do not fail the builder on test failures. Test failures already get forwarded to treehugger, so the build should not fail on the test failures as treehugger will fail the build already. This change allows to see which tests failed instead of just seeing that some test failed. Test: local Change-Id: I0f953751d573bdf06057fe4e90627f1a9d09d718 --- busytown.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/busytown.gradle b/busytown.gradle index b6fb936e9..f16d8539a 100644 --- a/busytown.gradle +++ b/busytown.gradle @@ -15,6 +15,7 @@ allprojects { project -> zipTask.from(report.destination) } } + task.ignoreFailures = true } if (project.rootProject == project) { def zipMaven = project.tasks.create("zipMaven", Zip) { -- cgit v1.2.3 From b4a9ca62df1153817fe7dfd3129f8988d319430f Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Thu, 20 Feb 2020 14:57:47 -0500 Subject: Include inherited methods in asJava documentation except for methods inherited from java.lang.Object BUG: 127327788 TEST: ./gradlew test Change-Id: I037e436de67fbe47a98e163153cca48e5c05695d --- .../kotlin/Java/JavaPsiDocumentationBuilder.kt | 21 +++++++++++++--- .../dac/inheritedMethods/dac-as-java/Child.html | 29 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index cc9c2c2bf..8776da4c2 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -206,13 +206,26 @@ class JavaPsiDocumentationBuilder : JavaDocumentationBuilder { else -> NodeKind.Class } val node = nodeForElement(this, kind) - superTypes.filter { !ignoreSupertype(it) }.forEach { - node.appendType(it, NodeKind.Supertype) - val superClass = it.resolve() - if (superClass != null) { + superTypes.filter { !ignoreSupertype(it) }.forEach { superType -> + node.appendType(superType, NodeKind.Supertype) + val superClass = superType.resolve() + // parentNode is the actual DocumentationNode of this class's supertype + // It is necessary to create documentation links back to the superclass from inherited methods + val parentNode = refGraph.lookup(superType.typeSignature()) + if (superClass != null && parentNode != null) { link(superClass, node, RefKind.Inheritor) + // Explicitly add the methods of the superclass (which are not overridden) as nodes to this class + val overriddenMethods = methods.toList().flatMap { it.findSuperMethods().toList() } + val inheritedMethods = superClass.methods.filter { it !in overriddenMethods }.toTypedArray() + + node.appendChildren(inheritedMethods, RefKind.InheritedMember) { + val child = build() + child.addReferenceTo(parentNode, RefKind.Owner) + return@appendChildren child + } } } + var methodsAndConstructors = methods if (constructors.isEmpty()) { diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html index a66d0bf6c..65e2addb0 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html @@ -60,6 +60,35 @@ + + + + + + + + + +
+ +

Inherited functions

+
+
+ +

Public constructors

-- cgit v1.2.3 From a0c490ef850aee1cfdd72de8f98881dc9530f556 Mon Sep 17 00:00:00 2001 From: Vladimir Kryachko Date: Thu, 5 Mar 2020 14:49:28 -0500 Subject: Fix extension fun/property KDoc issue. The issue manifests in the following conditions: 1. Library being documented contains a type and extensions for that type 2. The library's package name matches one of externalDocumentationLinks The issue can be seen here: https://screenshot.googleplex.com/hQSeOErJi3J.png Fixed here: https://screenshot.googleplex.com/yejh7Y56QZ5.png Change-Id: Ifef6e38e942a5b2a200f519a5ad977ca8b4ebaea Bug: 150937563 --- .../Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt | 6 +++--- core/src/main/kotlin/Kotlin/DocumentationBuilder.kt | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index b62e51a78..7fbdb1819 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -456,7 +456,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( return } - val targetLink = node.links.singleOrNull() + val targetLink = node.links.firstOrNull() if (targetLink?.kind == NodeKind.TypeParameter) { +node.name @@ -1106,8 +1106,8 @@ open class JavaLayoutHtmlFormatOutputBuilder( filter { it.getClassExtensionReceiver() != null } .groupBy { val receiverType = it.getClassExtensionReceiver()!! - receiverType.links(NodeKind.ExternalLink).firstOrNull() - ?: receiverType.links.first { it.kind in NodeKind.classLike} + receiverType.links.filter { it.kind != NodeKind.ExternalLink}.firstOrNull() ?: + receiverType.links(NodeKind.ExternalLink).first() } private fun List.externalExtensions(kind: NodeKind) = diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt index adb8fa4be..0b5e74339 100644 --- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt +++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt @@ -265,12 +265,11 @@ class DocumentationBuilder node.append(targetNode, RefKind.ExternalType) node.append(DocumentationNode(externalLink, Content.Empty, NodeKind.ExternalLink), RefKind.Link) } - } else { - link( - node, classifierDescriptor, - if (classifierDescriptor.isBoringBuiltinClass()) RefKind.HiddenLink else RefKind.Link - ) } + link( + node, classifierDescriptor, + if (classifierDescriptor.isBoringBuiltinClass()) RefKind.HiddenLink else RefKind.Link + ) if (classifierDescriptor !is TypeParameterDescriptor) { node.append( DocumentationNode( -- cgit v1.2.3 From 68c885f5968fd0ca9955ef6c3a206bbd92f61eea Mon Sep 17 00:00:00 2001 From: Tiem Song Date: Tue, 10 Mar 2020 09:57:24 -0700 Subject: Rev version to g008 Test: N/A Change-Id: Ia5e8ed8e680b84142c43298a441d6d82442cf787 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1152e80e8..ff6aa594c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g007 +dokka_version=0.9.17-g008 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 06d88ea6f5b5f64647a8aba942776220fd86f711 Mon Sep 17 00:00:00 2001 From: Vladimir Kryachko Date: Mon, 16 Mar 2020 12:06:47 -0400 Subject: Add noGenerate{Pacakge,Classes}IndexPage cli arguments. Dokka cli uses com.github.spullara.cli-parser:cli-parser, the way it handles boolean arguments makes it impossible to set them to false if they default to true [1]. This CL adds deprecates the original arguments and adds negative ones similar to noStdlibLink. This should not break existing users as the original arguments were broken anyway. [1] https://github.com/spullara/cli-parser/blob/f147fbd9d420247cfc4aa5b395ef1cbb5498a953/src/main/java/com/sampullara/cli/Args.java#L390-L392 Change-Id: Ife6f8f167ce852d4469c38ee2f01bd961dea5541 BUG: 151626829 --- runners/cli/src/main/kotlin/cli/main.kt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt index e7fb76f01..37be6e289 100644 --- a/runners/cli/src/main/kotlin/cli/main.kt +++ b/runners/cli/src/main/kotlin/cli/main.kt @@ -72,12 +72,22 @@ class DokkaArguments { @set:Argument(value = "collectInheritedExtensionsFromLibraries", description = "Search for applicable extensions in libraries") var collectInheritedExtensionsFromLibraries: Boolean = false - @set:Argument(value = "generateClassIndexPage", description = "Generate classes.html index page.") + @set:Argument(value = "generateClassIndexPage", description = "Generate classes.html index page. [Deprecated]: use noGenerateClassIndexPage instead.") + @Deprecated("There is no way to set this to false.", replaceWith = ReplaceWith( + expression ="noGenerateClassIndexPage")) var generateClassIndexPage: Boolean = true - @set:Argument(value = "generatePackageIndexPage", description = "Generate packages.html index page.") + @set:Argument(value = "generatePackageIndexPage", description = "Generate packages.html index page. [Deprecated]: use noGeneratePackageIndexPage instead.") + @Deprecated("There is no way to set this to false.", replaceWith = ReplaceWith( + expression ="noGeneratePackageIndexPage")) var generatePackageIndexPage: Boolean = true + @set:Argument(value = "noGenerateClassIndexPage", description = "Disable classes.html index page.") + var noGenerateClassIndexPage: Boolean = false + + @set:Argument(value = "noGeneratePackageIndexPage", description = "Disable packages.html index page.") + var noGeneratePackageIndexPage: Boolean = false + @set:Argument(value = "outlineRoot", description = "Relative root directory the outline files. I.e. androidx/core/") var outlineRoot: String = "" @@ -142,8 +152,8 @@ object MainKt { languageVersion = arguments.languageVersion, apiVersion = arguments.apiVersion, collectInheritedExtensionsFromLibraries = arguments.collectInheritedExtensionsFromLibraries, - generateClassIndexPage = arguments.generateClassIndexPage, - generatePackageIndexPage = arguments.generatePackageIndexPage, + generateClassIndexPage = !arguments.noGenerateClassIndexPage, + generatePackageIndexPage = !arguments.noGeneratePackageIndexPage, outlineRoot = arguments.outlineRoot, dacRoot = arguments.dacRoot, noJdkLink = arguments.noJdkLink -- cgit v1.2.3 From eb3282e8115f208c5d8d1718ddb59831e8d062d9 Mon Sep 17 00:00:00 2001 From: Vladimir Kryachko Date: Mon, 16 Mar 2020 12:52:49 -0400 Subject: Fix non-existent directory issue. When setting outlineRoot to a non-existent directory leads to a build failure. This change make sure to "mkdirs" before trying to open files for writing. --- core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt index 115e3f76d..dc0df2a9e 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt @@ -133,6 +133,7 @@ class JavaLayoutHtmlFormatGenerator @Inject constructor( val normalized = uri.normalize() uriToWriter[normalized]?.let { return it } val file = root.resolve(normalized.path.removePrefix("/")) + file.parentFile.mkdirsOrFail() val writer = file.bufferedWriter() uriToWriter[normalized] = writer return writer -- cgit v1.2.3 From ac5ec5dde25e5c9558b3fed5741cc9f097f6461a Mon Sep 17 00:00:00 2001 From: Tiem Song Date: Mon, 16 Mar 2020 22:47:24 -0700 Subject: Rev version to g009 Bug: 151626829 Test: N/A Change-Id: I391919f6f5c9c7abc374d7ca7778debc08bb34a5 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ff6aa594c..4c10991b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g008 +dokka_version=0.9.17-g009 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 1ebb630f9b0db7e30c113fa19b26503d66219794 Mon Sep 17 00:00:00 2001 From: Owen Gray Date: Tue, 24 Mar 2020 18:21:42 -0400 Subject: Fix @see tags Thanks to Jeff for initial solution Fixes: b/142676098 Test: gw test Change-Id: If92fa2df0ea40061f2f0a6b6f16a45897001b62f --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 22 ++++++++++++++++++---- .../JavaLayoutHtmlFormatOutputBuilder.kt | 2 +- core/testdata/format/dac/javaSeeTag/Bar.kt | 1 + core/testdata/format/dac/javaSeeTag/Foo.java | 1 + .../format/dac/javaSeeTag/dac-as-java/Bar.html | 5 ++--- core/testdata/format/dac/javaSeeTag/dac/Bar.html | 5 ++--- core/testdata/format/dac/javaSeeTag/dac/Foo.html | 1 + 7 files changed, 26 insertions(+), 11 deletions(-) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index 6b42dad19..b767c7d6f 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -176,11 +176,25 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } ul(classes = "nolist") { - sections.forEach { - li { - code { - metaMarkup(it.children) + sections.filter {it.tag == "See Also"}.forEach { + it.children.forEach { child -> + if (child is ContentNodeLazyLink || child is ContentExternalLink) { + li { + code { + contentNodeToMarkup(child) // Wrap bare links in listItems. + } // bare links come from the java-to-kotlin parser. + } } + else if (child is ContentUnorderedList) { + metaMarkup(child.children) // Already wrapped in listItems. + } // this is how we want things to look. No parser currently does this (yet). + else if (child is ContentParagraph) { + li{ + code { + metaMarkup (child.children) // Replace paragraphs with listItems. + } // paragraph-wrapped links come from the kotlin parser + } + } // NOTE: currently the java-to-java parser does not add See Also links! } } } diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index 7fbdb1819..ccea82eae 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -51,7 +51,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( protected fun FlowContent.contentNodesToMarkup(content: List, contextUri: URI = uri): Unit = content.forEach { contentNodeToMarkup(it, contextUri) } - private fun FlowContent.contentNodeToMarkup(content: ContentNode, contextUri: URI) { + protected fun FlowContent.contentNodeToMarkup(content: ContentNode, contextUri: URI = uri) { when (content) { is ContentText -> +content.text is ContentSymbol -> span("symbol") { +content.text } diff --git a/core/testdata/format/dac/javaSeeTag/Bar.kt b/core/testdata/format/dac/javaSeeTag/Bar.kt index 9df671194..21170d363 100644 --- a/core/testdata/format/dac/javaSeeTag/Bar.kt +++ b/core/testdata/format/dac/javaSeeTag/Bar.kt @@ -1,4 +1,5 @@ /** * @see Foo + * @see java.lang.String */ class Bar \ No newline at end of file diff --git a/core/testdata/format/dac/javaSeeTag/Foo.java b/core/testdata/format/dac/javaSeeTag/Foo.java index 94a24606d..b784ae225 100644 --- a/core/testdata/format/dac/javaSeeTag/Foo.java +++ b/core/testdata/format/dac/javaSeeTag/Foo.java @@ -1,5 +1,6 @@ /** * @see #bar + * @see java.lang.String */ public class Foo { public void bar() {} diff --git a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html index 3dbc813fa..663d14727 100644 --- a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html @@ -39,9 +39,8 @@

See Also

diff --git a/core/testdata/format/dac/javaSeeTag/dac/Bar.html b/core/testdata/format/dac/javaSeeTag/dac/Bar.html index b7d8304d3..c49e6d808 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Bar.html @@ -39,9 +39,8 @@

See Also

diff --git a/core/testdata/format/dac/javaSeeTag/dac/Foo.html b/core/testdata/format/dac/javaSeeTag/dac/Foo.html index 473fd2cc2..14a913c99 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Foo.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Foo.html @@ -58,6 +58,7 @@

See Also

-- cgit v1.2.3 From 3e1d8d610165da51d26f127f92e609db4af65887 Mon Sep 17 00:00:00 2001 From: Owen Gray Date: Tue, 7 Apr 2020 09:18:30 -0400 Subject: Fix formatting for deprecation warnings, and add a test. Doesn't fix replacement links. Bug: b/149580603 Test: new test (gw test) Change-Id: Ic167dd3e14a1e444985a61a941b3c46b93d521f5 --- .../JavaLayoutHtmlFormatOutputBuilder.kt | 4 +- core/src/main/kotlin/Model/Content.kt | 2 +- core/src/test/kotlin/format/DacFormatTest.kt | 4 + .../format/dac/deprecation/DeprecatedBar.kt | 17 ++++ .../format/dac/deprecation/DeprecatedFoo.java | 21 +++++ .../format/dac/deprecation/dac-as-java/Bar.html | 90 ++++++++++++++++++++++ .../dac/deprecation/dac-as-java/DeprecatedBar.html | 41 ++++++++++ .../dac/deprecation/dac-as-java/DeprecatedFoo.html | 41 ++++++++++ .../format/dac/deprecation/dac-as-java/Foo.html | 90 ++++++++++++++++++++++ core/testdata/format/dac/deprecation/dac/Bar.html | 90 ++++++++++++++++++++++ .../format/dac/deprecation/dac/DeprecatedBar.html | 41 ++++++++++ .../format/dac/deprecation/dac/DeprecatedFoo.html | 41 ++++++++++ core/testdata/format/dac/deprecation/dac/Foo.html | 90 ++++++++++++++++++++++ 13 files changed, 569 insertions(+), 3 deletions(-) create mode 100644 core/testdata/format/dac/deprecation/DeprecatedBar.kt create mode 100644 core/testdata/format/dac/deprecation/DeprecatedFoo.java create mode 100644 core/testdata/format/dac/deprecation/dac-as-java/Bar.html create mode 100644 core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html create mode 100644 core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html create mode 100644 core/testdata/format/dac/deprecation/dac-as-java/Foo.html create mode 100644 core/testdata/format/dac/deprecation/dac/Bar.html create mode 100644 core/testdata/format/dac/deprecation/dac/DeprecatedBar.html create mode 100644 core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html create mode 100644 core/testdata/format/dac/deprecation/dac/Foo.html diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index ccea82eae..23cb81a1a 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -136,7 +136,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } ContentHardLineBreak -> br - is ContentParagraph -> p { contentNodesToMarkup(content.children, contextUri) } + is ContentParagraph -> p(classes = content.label) { contentNodesToMarkup(content.children, contextUri) } is NodeRenderContent -> renderedSignature(content.node, mode = content.mode) is ContentNodeLink -> { @@ -884,7 +884,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( emphasis: Boolean = true): ContentNode? { val deprecated = node.deprecation deprecated?.let { - return ContentParagraph().apply { + return ContentParagraph("caution").apply { if (prefix) { append(ContentStrong().apply { text( if (deprecated.content.children.size == 0) "Deprecated." diff --git a/core/src/main/kotlin/Model/Content.kt b/core/src/main/kotlin/Model/Content.kt index f239da7f9..a4c78fabf 100644 --- a/core/src/main/kotlin/Model/Content.kt +++ b/core/src/main/kotlin/Model/Content.kt @@ -106,7 +106,7 @@ object ContentIndentedSoftLineBreak: ContentNode { } class ScriptBlock(val type: String?, val src: String) : ContentBlock() -class ContentParagraph() : ContentBlock() +class ContentParagraph(val label: String? = null) : ContentBlock() class ContentEmphasis() : ContentBlock() class ContentStrong() : ContentBlock() class ContentStrikethrough() : ContentBlock() diff --git a/core/src/test/kotlin/format/DacFormatTest.kt b/core/src/test/kotlin/format/DacFormatTest.kt index ae17420d4..5d8babc3d 100644 --- a/core/src/test/kotlin/format/DacFormatTest.kt +++ b/core/src/test/kotlin/format/DacFormatTest.kt @@ -51,4 +51,8 @@ class DacFormatTest: DacFormatTestCase() { @Test fun javaClassLinks() { verifyBothFormats("javaClassLinks") } + + @Test fun deprecation() { + verifyBothFormats("deprecation") + } } \ No newline at end of file diff --git a/core/testdata/format/dac/deprecation/DeprecatedBar.kt b/core/testdata/format/dac/deprecation/DeprecatedBar.kt new file mode 100644 index 000000000..8eb729299 --- /dev/null +++ b/core/testdata/format/dac/deprecation/DeprecatedBar.kt @@ -0,0 +1,17 @@ +class Bar { + fun replacementBarMethod(): Bar { return Bar() } + + fun badBarMethod(): DeprecatedBar { return DeprecatedBar() } + + /** + * @deprecated Use {@link #replacementBarMethod()} instead. + */ + @Deprecated + fun goodBarMethod(): DeprecatedBar { return DeprecatedBar() } +} + +/** + * @deprecated Use {@link #Bar} instead. + */ +@Deprecated +class DeprecatedBar \ No newline at end of file diff --git a/core/testdata/format/dac/deprecation/DeprecatedFoo.java b/core/testdata/format/dac/deprecation/DeprecatedFoo.java new file mode 100644 index 000000000..3c9c360ee --- /dev/null +++ b/core/testdata/format/dac/deprecation/DeprecatedFoo.java @@ -0,0 +1,21 @@ +public class Foo { + public Foo() { } + + public static Foo replacementFooMethod() { return Foo() } + + public static DeprecatedFoo badFooMethod() { return new DeprecatedFoo() } + + /** + * @deprecated Use {@link #replacementFooMethod()} instead. + */ + @Deprecated + public static DeprecatedFoo goodFooMethod() { return new DeprecatedFoo() } +} + +/** + * @deprecated Use {@link #Foo} instead. + */ +@Deprecated +public class DeprecatedFoo { + public DeprecatedFoo() { } +} diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html new file mode 100644 index 000000000..483929564 --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html @@ -0,0 +1,90 @@ + + + Bar +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

Bar

+
public final class Bar implements java.lang.Object
+ + + + +
Bar
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+
Bar()
+

+
+ + + + + + + + + + + + + + + + + + +
+ +

Public methods

+
+
final DeprecatedBar + +

+
final DeprecatedBar + +

+
final Bar + +

+
+

Public constructors

+ +
+

Bar

+
public Bar()
+
+

Public methods

+ +
+

badBarMethod

+
public final DeprecatedBar badBarMethod()
+
+ +
+

goodBarMethod

+
public final DeprecatedBar goodBarMethod()
+

Deprecated: Deprecated

+
+ +
+

replacementBarMethod

+
public final Bar replacementBarMethod()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html new file mode 100644 index 000000000..71da6a1e8 --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html @@ -0,0 +1,41 @@ + + + DeprecatedBar +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

DeprecatedBar

+
public final class DeprecatedBar implements java.lang.Object
+ + + + +
DeprecatedBar
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+

Public constructors

+ +
+

DeprecatedBar

+
public DeprecatedBar()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html new file mode 100644 index 000000000..8cf0c575d --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html @@ -0,0 +1,41 @@ + + + DeprecatedFoo +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

DeprecatedFoo

+
public class DeprecatedFoo implements java.lang.Object
+ + + + +
DeprecatedFoo
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+

Public constructors

+ +
+

DeprecatedFoo

+
public DeprecatedFoo()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Foo.html b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html new file mode 100644 index 000000000..b07ac3cc9 --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html @@ -0,0 +1,90 @@ + + + Foo +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

Foo

+
public class Foo implements java.lang.Object
+ + + + +
Foo
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+
Foo()
+

+
+ + + + + + + + + + + + + + + + + + +
+ +

Public methods

+
+
static DeprecatedFoo + +

+
static DeprecatedFoo + +

+
static Foo + +

+
+

Public constructors

+ +
+

Foo

+
public Foo()
+
+

Public methods

+ +
+

badFooMethod

+
public static DeprecatedFoo badFooMethod()
+
+ +
+

goodFooMethod

+
public static DeprecatedFoo goodFooMethod()
+

Deprecated.

+
+ +
+

replacementFooMethod

+
public static Foo replacementFooMethod()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac/Bar.html b/core/testdata/format/dac/deprecation/dac/Bar.html new file mode 100644 index 000000000..8b3e6c3fc --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac/Bar.html @@ -0,0 +1,90 @@ + + + Bar +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

Bar

+
class Bar
+ + + + +
Bar
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+ + + + + + + + + + + + + + + + + + +
+ +

Public methods

+
+
DeprecatedBar + +

+
DeprecatedBar + +

+
Bar + +

+
+

Public constructors

+ +
+

<init>

+
Bar()
+
+

Public methods

+ +
+

badBarMethod

+
fun badBarMethod(): DeprecatedBar
+
+ +
+

goodBarMethod

+
fun goodBarMethod(): DeprecatedBar
+

Deprecated.

+
+ +
+

replacementBarMethod

+
fun replacementBarMethod(): Bar
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html new file mode 100644 index 000000000..09758f061 --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html @@ -0,0 +1,41 @@ + + + DeprecatedBar +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

DeprecatedBar

+
class DeprecatedBar
+ + + + +
DeprecatedBar
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+

Public constructors

+ +
+

<init>

+
DeprecatedBar()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html new file mode 100644 index 000000000..16974894f --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html @@ -0,0 +1,41 @@ + + + DeprecatedFoo +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

DeprecatedFoo

+
open class DeprecatedFoo
+ + + + +
DeprecatedFoo
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+

Public constructors

+ +
+

<init>

+
DeprecatedFoo()
+
+ + diff --git a/core/testdata/format/dac/deprecation/dac/Foo.html b/core/testdata/format/dac/deprecation/dac/Foo.html new file mode 100644 index 000000000..7dcc84289 --- /dev/null +++ b/core/testdata/format/dac/deprecation/dac/Foo.html @@ -0,0 +1,90 @@ + + + Foo +{% setvar book_path %}/_book.yaml{% endsetvar %} +{% include "_shared/_reference-head-tags.html" %} + + +
+

Foo

+
open class Foo
+ + + + +
Foo
+

Summary

+ + + + + + + + + +
+ +

Public constructors

+
+
+ +

+
+ + + + + + + + + + + + + + + + + + +
+ +

Public methods

+
+
open static DeprecatedFoo! + +

+
open static DeprecatedFoo! + +

+
open static Foo! + +

+
+

Public constructors

+ +
+

<init>

+
Foo()
+
+

Public methods

+ +
+

badFooMethod

+
open static fun badFooMethod(): DeprecatedFoo!
+
+ +
+

goodFooMethod

+
open static fun goodFooMethod(): DeprecatedFoo!
+

Deprecated: Use replacementFooMethod() instead.

+
+ +
+

replacementFooMethod

+
open static fun replacementFooMethod(): Foo!
+
+ + -- cgit v1.2.3 From fe5ac8a5bc4afa481485d63d2d2c955421270a2c Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Tue, 7 Apr 2020 21:42:09 -0400 Subject: Revert racy code and test for inherited methods Until a more appropriate solution is found Test: ./gradlew core:test Change-Id: I0f9d50072a422ae0b34cadd9b1517a04a51ff5ca --- .../kotlin/Java/JavaPsiDocumentationBuilder.kt | 14 +---------- .../dac/inheritedMethods/dac-as-java/Child.html | 29 ---------------------- 2 files changed, 1 insertion(+), 42 deletions(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index 8776da4c2..ed4d36687 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -209,20 +209,8 @@ class JavaPsiDocumentationBuilder : JavaDocumentationBuilder { superTypes.filter { !ignoreSupertype(it) }.forEach { superType -> node.appendType(superType, NodeKind.Supertype) val superClass = superType.resolve() - // parentNode is the actual DocumentationNode of this class's supertype - // It is necessary to create documentation links back to the superclass from inherited methods - val parentNode = refGraph.lookup(superType.typeSignature()) - if (superClass != null && parentNode != null) { + if (superClass != null) { link(superClass, node, RefKind.Inheritor) - // Explicitly add the methods of the superclass (which are not overridden) as nodes to this class - val overriddenMethods = methods.toList().flatMap { it.findSuperMethods().toList() } - val inheritedMethods = superClass.methods.filter { it !in overriddenMethods }.toTypedArray() - - node.appendChildren(inheritedMethods, RefKind.InheritedMember) { - val child = build() - child.addReferenceTo(parentNode, RefKind.Owner) - return@appendChildren child - } } } diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html index 65e2addb0..a66d0bf6c 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html @@ -60,35 +60,6 @@ - - - - - - - - - -
- -

Inherited functions

-
-
- -

Public constructors

-- cgit v1.2.3 From 49fc8d9d8ca27a173e9030d0a74880443c8f8740 Mon Sep 17 00:00:00 2001 From: Owen Gray Date: Tue, 7 Apr 2020 20:21:00 -0400 Subject: Rev version to g010 Test: N/A Change-Id: I9a2770b11dc82d3d30660ac4625053ab12b6aff6 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4c10991b5..79056aa4c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g009 +dokka_version=0.9.17-g010 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 2bdf71028d0cc48f492e7ca563d4607f70a7a25f Mon Sep 17 00:00:00 2001 From: Rahul Ravikumar Date: Thu, 16 Apr 2020 14:21:27 -0700 Subject: Add a build target for Dokka which makes the repository available. * This makes it easier to expose Dokka as an artifact. Change-Id: Ic1b4435957064d7b12b8fd8edc0a3e53ab3cba58 --- busytown.gradle | 14 +++++++++++--- busytown.sh | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/busytown.gradle b/busytown.gradle index f16d8539a..1b9a7119f 100644 --- a/busytown.gradle +++ b/busytown.gradle @@ -23,8 +23,16 @@ allprojects { project -> destinationDir destDir archiveName = "maven.zip" } - zipMaven.dependsOn(":runners:android-gradle-plugin:publishToDistMaven") - zipMaven.dependsOn(":runners:gradle-plugin:publishToDistMaven") - zipMaven.dependsOn(":runners:fatjar:publishToDistMaven") + + def copyRepository = project.tasks.create("copyRepository", Copy) { + from file("${project.buildDir}/dist-maven") + into "${destDir}/repository" + } + + [copyRepository, zipMaven].forEach { + it.dependsOn(":runners:android-gradle-plugin:publishToDistMaven") + it.dependsOn(":runners:gradle-plugin:publishToDistMaven") + it.dependsOn(":runners:fatjar:publishToDistMaven") + } } } diff --git a/busytown.sh b/busytown.sh index d99bdfe91..ca1ae6199 100755 --- a/busytown.sh +++ b/busytown.sh @@ -3,4 +3,4 @@ set -e SCRIPT_DIR="$(cd $(dirname $0) && pwd)" -"$SCRIPT_DIR"/gradlew -p "$SCRIPT_DIR" -I "$SCRIPT_DIR"/busytown.gradle --no-daemon :core:build :runners:android-gradle-plugin:build :runners:gradle-integration-tests:build zipMaven \ No newline at end of file +"$SCRIPT_DIR"/gradlew -p "$SCRIPT_DIR" -I "$SCRIPT_DIR"/busytown.gradle --no-daemon :core:build :runners:android-gradle-plugin:build :runners:gradle-integration-tests:build zipMaven copyRepository \ No newline at end of file -- cgit v1.2.3 From 6349ff90655e5bf8980077926ceeab80d9d1e74c Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Thu, 23 Apr 2020 13:47:03 -0700 Subject: Add license type: Apache2 is a NOTICE license Bug: 68860345 Bug: 69058154 Bug: 151953481 Test: no code changes Change-Id: I451517d79090d5be4782b31fcf74e77186bd300f --- METADATA | 1 + 1 file changed, 1 insertion(+) diff --git a/METADATA b/METADATA index 8b9dd3b90..dfb86523a 100644 --- a/METADATA +++ b/METADATA @@ -7,6 +7,7 @@ third_party { type: GIT value: "https://github.com/Kotlin/dokka.git" } + license_type: NOTICE last_upgrade_date { year: 2019 month: 7 -- cgit v1.2.3 From e587cedac2b73aeadb0fc29a511e8ff2dd5659e6 Mon Sep 17 00:00:00 2001 From: Tiem Song Date: Wed, 6 May 2020 13:24:47 -0700 Subject: Remove deprecated devsite-heading tag Bug: 154722067 Test: ./gradlew :core:test Change-Id: Id330fb0fb802c91020b345ed6aa50e3a39707e3a --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 26 +++------------------- .../format/dac/deprecation/dac-as-java/Bar.html | 12 ++-------- .../dac/deprecation/dac-as-java/DeprecatedBar.html | 6 +---- .../dac/deprecation/dac-as-java/DeprecatedFoo.html | 6 +---- .../format/dac/deprecation/dac-as-java/Foo.html | 12 ++-------- core/testdata/format/dac/deprecation/dac/Bar.html | 12 ++-------- .../format/dac/deprecation/dac/DeprecatedBar.html | 6 +---- .../format/dac/deprecation/dac/DeprecatedFoo.html | 6 +---- core/testdata/format/dac/deprecation/dac/Foo.html | 12 ++-------- .../dac/inheritedMethods/dac-as-java/Child.html | 12 ++-------- .../dac/inheritedMethods/dac-as-java/Parent.html | 12 ++-------- .../format/dac/inheritedMethods/dac/Child.html | 18 +++------------ .../format/dac/inheritedMethods/dac/Parent.html | 12 ++-------- .../format/dac/javaClassLinks/dac-as-java/Bar.html | 12 ++-------- .../format/dac/javaClassLinks/dac-as-java/Foo.html | 6 +---- .../format/dac/javaClassLinks/dac/Bar.html | 12 ++-------- .../format/dac/javaClassLinks/dac/Foo.html | 6 +---- .../dac/javaConstructor/dac-as-java/Foo.html | 6 +---- .../format/dac/javaConstructor/dac/Foo.html | 6 +---- .../javaDefaultConstructor/dac-as-java/Foo.html | 6 +---- .../format/dac/javaDefaultConstructor/dac/Foo.html | 6 +---- .../javaMethodVisibilities/dac-as-java/Foo.html | 24 ++++---------------- .../format/dac/javaMethodVisibilities/dac/Foo.html | 24 ++++---------------- .../format/dac/javaSeeTag/dac-as-java/Bar.html | 6 +---- .../format/dac/javaSeeTag/dac-as-java/Foo.html | 12 ++-------- core/testdata/format/dac/javaSeeTag/dac/Bar.html | 6 +---- core/testdata/format/dac/javaSeeTag/dac/Foo.html | 12 ++-------- 27 files changed, 48 insertions(+), 248 deletions(-) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index b767c7d6f..7038a7fbe 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -9,7 +9,6 @@ import org.jetbrains.dokka.Kotlin.ParameterInfoNode import org.jetbrains.dokka.Utilities.firstSentence import java.lang.Math.max import java.net.URI -import java.util.Collections.emptyMap import kotlin.reflect.KClass /** @@ -481,7 +480,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( id = summaryId tbody { if (headerAsRow) { - developerHeading(header, summaryId) + developerHeading(header) } nodes.forEach { node -> row(node) @@ -919,25 +918,11 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } -fun TBODY.developerHeading( - header: String, - summaryId: String? = null -) { +fun TBODY.developerHeading(header: String) { tr { th { attributes["colSpan"] = "2" - dheading { - attributes["ds-is"] = "heading" - attributes["text"] = header - attributes["id"] = summaryId ?: header.replace("\\s".toRegex(), "-").toLowerCase() - attributes["level"] = "h3" - attributes["toc"] = "" - attributes["class"] = "" - h3 { - attributes["is-upgraded"] = "" - +header - } - } + +header } } } @@ -961,8 +946,3 @@ class DacAsJavaFormatDescriptor : JavaLayoutHtmlFormatDescriptorBase(), DefaultA override val packageListServiceClass: KClass = JavaLayoutHtmlPackageListService::class override val outputBuilderFactoryClass: KClass = DevsiteLayoutHtmlFormatOutputBuilderFactoryImpl::class } - -fun FlowOrPhrasingContent.dheading(block : DHEADING.() -> Unit = {}) : Unit = DHEADING(consumer).visit(block) - -class DHEADING(consumer: TagConsumer<*>) : - HTMLTag("devsite-heading", consumer, emptyMap(), inlineTag = false, emptyTag = false), HtmlBlockTag diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html index 483929564..d77fa9e64 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html index 71da6a1e8..56283f6e5 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
final DeprecatedBar
- +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html index 8cf0c575d..e7e2fecb0 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Foo.html b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html index b07ac3cc9..c898800da 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/Foo.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/deprecation/dac/Bar.html b/core/testdata/format/dac/deprecation/dac/Bar.html index 8b3e6c3fc..f20112e16 100644 --- a/core/testdata/format/dac/deprecation/dac/Bar.html +++ b/core/testdata/format/dac/deprecation/dac/Bar.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
static DeprecatedFoo
- +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html index 09758f061..15be9a06e 100644 --- a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
DeprecatedBar
- +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html index 16974894f..610c46b60 100644 --- a/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/deprecation/dac/Foo.html b/core/testdata/format/dac/deprecation/dac/Foo.html index 7dcc84289..76c0760a0 100644 --- a/core/testdata/format/dac/deprecation/dac/Foo.html +++ b/core/testdata/format/dac/deprecation/dac/Foo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html index a66d0bf6c..67a58125a 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Child.html @@ -21,11 +21,7 @@
- -

Public methods

-
-
Public methods
open static DeprecatedFoo!
- +
- -

Public constructors

-
-
Public constructors
@@ -38,11 +34,7 @@ - + diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html index 4efddeb30..dd305f7f8 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html @@ -38,11 +38,7 @@
- -

Public methods

-
-
Public methods
void
- +
- -

Public constructors

-
-
Public constructors
@@ -55,11 +51,7 @@ - + diff --git a/core/testdata/format/dac/inheritedMethods/dac/Child.html b/core/testdata/format/dac/inheritedMethods/dac/Child.html index 5da7f475d..dff52afbe 100644 --- a/core/testdata/format/dac/inheritedMethods/dac/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac/Child.html @@ -21,11 +21,7 @@
- -

Public methods

-
-
Public methods
void
- +
- -

Public constructors

-
-
Public constructors
@@ -38,11 +34,7 @@ - + @@ -63,11 +55,7 @@
- -

Public methods

-
-
Public methods
open Unit
- +
- -

Inherited functions

-
-
Inherited functions
diff --git a/core/testdata/format/dac/inheritedMethods/dac/Parent.html b/core/testdata/format/dac/inheritedMethods/dac/Parent.html index 0023368f0..ff9048b96 100644 --- a/core/testdata/format/dac/inheritedMethods/dac/Parent.html +++ b/core/testdata/format/dac/inheritedMethods/dac/Parent.html @@ -38,11 +38,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -55,11 +51,7 @@ - + diff --git a/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html b/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html index 3d247edb8..cbabc2920 100644 --- a/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html +++ b/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
open Unit
- +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html b/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html index 5717ecf6b..0ae4d255b 100644 --- a/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
Foo
- + @@ -42,9 +42,9 @@
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaClassLinks/dac/Bar.html b/core/testdata/format/dac/javaClassLinks/dac/Bar.html index 0c0c36714..87f2c3adf 100644 --- a/core/testdata/format/dac/javaClassLinks/dac/Bar.html +++ b/core/testdata/format/dac/javaClassLinks/dac/Bar.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/javaClassLinks/dac/Foo.html b/core/testdata/format/dac/javaClassLinks/dac/Foo.html index dc7637b6a..51ba0204c 100644 --- a/core/testdata/format/dac/javaClassLinks/dac/Foo.html +++ b/core/testdata/format/dac/javaClassLinks/dac/Foo.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
open Foo!
- + @@ -70,9 +70,9 @@
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html index 5717ecf6b..0ae4d255b 100644 --- a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaConstructor/dac/Foo.html b/core/testdata/format/dac/javaConstructor/dac/Foo.html index dc7637b6a..51ba0204c 100644 --- a/core/testdata/format/dac/javaConstructor/dac/Foo.html +++ b/core/testdata/format/dac/javaConstructor/dac/Foo.html @@ -17,11 +17,7 @@ - + + + +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html b/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html index 5717ecf6b..0ae4d255b 100644 --- a/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html @@ -17,11 +17,7 @@ - + + + +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html b/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html index dc7637b6a..51ba0204c 100644 --- a/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html +++ b/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html @@ -17,11 +17,7 @@ - + @@ -56,9 +56,9 @@
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html b/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html index 7f494c467..1ed04c547 100644 --- a/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html @@ -17,11 +17,7 @@ - + @@ -70,9 +70,9 @@
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + @@ -52,11 +44,7 @@
- -

Public methods

-
-
Public methods
void
- + @@ -70,11 +58,7 @@
- -

Protected methods

-
-
Protected methods
void
- + diff --git a/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html b/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html index 3f1e45107..0bcdcae90 100644 --- a/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html +++ b/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html @@ -17,11 +17,7 @@
- -

Private methods

-
-
Private methods
void
- + @@ -78,9 +78,9 @@
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + @@ -52,11 +44,7 @@
- -

Public methods

-
-
Public methods
open Unit
- + @@ -70,11 +58,7 @@
- -

Protected methods

-
-
Protected methods
open Unit
- + diff --git a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html index 663d14727..6b4d75f4a 100644 --- a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html @@ -17,11 +17,7 @@
- -

Private methods

-
-
Private methods
open Unit
- + @@ -56,9 +56,9 @@
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html b/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html index 6a6b5045c..b9f23dc59 100644 --- a/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html @@ -17,11 +17,7 @@ - +
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + diff --git a/core/testdata/format/dac/javaSeeTag/dac/Bar.html b/core/testdata/format/dac/javaSeeTag/dac/Bar.html index c49e6d808..10a5f59ed 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Bar.html @@ -17,11 +17,7 @@
- -

Public methods

-
-
Public methods
void
- +
- -

Public constructors

-
-
Public constructors
diff --git a/core/testdata/format/dac/javaSeeTag/dac/Foo.html b/core/testdata/format/dac/javaSeeTag/dac/Foo.html index 14a913c99..7ca410c06 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Foo.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Foo.html @@ -17,11 +17,7 @@ - + - + diff --git a/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html b/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html index 0ae4d255b..bddb7ff8a 100644 --- a/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaClassLinks/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
- -

Public constructors

-
-
Public constructors
@@ -34,11 +30,7 @@ - + -- cgit v1.2.3 From e4ca4b8918f7a3f28ff1d1923cb9567db41d56a8 Mon Sep 17 00:00:00 2001 From: Tiem Song Date: Fri, 8 May 2020 13:52:24 -0700 Subject: Rev version to g011 Test: N/A Change-Id: I47a891d9fd2e2409f6757d7a892089c4f5b34189 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 79056aa4c..a9e47b0bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g010 +dokka_version=0.9.17-g011 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 940d3841dee22910c65115a59ae68922747c5782 Mon Sep 17 00:00:00 2001 From: Jeff Gaston Date: Wed, 27 May 2020 12:40:01 -0400 Subject: Augmenting "Not implemented mainUri" error to describe the node in question Now instead of saying java.lang.AssertionError: Not implemented mainUri for TypeAlias , the error says java.lang.AssertionError: Not implemented mainUri for TypeAlias (TypeAlias:GuardedBy) Bug: 154755010 Test: cd ../../frameworks/support/ui && BUILD_DOKKA=true ./gradlew dokkaKotlinTipOfTreeDocs # and see that the error message is changed like above Change-Id: Iefbeaa66de7e7b2ef1c7b870067f143847c831f7 --- core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt index 66ded62a6..5c3d6babb 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt @@ -70,7 +70,7 @@ interface JavaLayoutHtmlUriProvider { } fun mainUriOrWarn(node: DocumentationNode): URI? = tryGetMainUri(node) ?: (null).also { - AssertionError("Not implemented mainUri for ${node.kind}").printStackTrace() + AssertionError("Not implemented mainUri for ${node.kind} (${node})").printStackTrace() } } -- cgit v1.2.3 From e8b439b7a220e8fb5fabf3182781558696c7a47f Mon Sep 17 00:00:00 2001 From: Jeff Gaston Date: Fri, 19 Jun 2020 19:22:13 -0400 Subject: Documenting type aliases even if they are children of GroupNode's Previously there were some recursive checks that were terminating at GroupNode objects and skipping documenting TypeAlias objects Bug: 157562249 Bug: 143534533 Test: Run `cd ../../frameworks/support/ui && BUILD_DOKKA=true ./gradlew dokkaKotlinTipOfTreeDocs --no-daemon` and diff the results before and after this change and observe that there are a bunch of changes in out/ui/docs-runner/build/dokkaKotlinTipOfTreeDocs/androidx/_toc.yaml that look like this: < path: /reference/kotlinnull --- > path: /reference/kotlin/androidx/ui/util/annotation/VisibleForTesting.html < path: /reference/kotlinnull --- > path: /reference/kotlin/androidx/ui/util/annotation/VisibleForTesting.html and some new files, for example: Only in out/ui/docs-runner/build/dokkaKotlinTipOfTreeDocs/androidx/ui/graphics: NativeCanvas.html Only in out/ui/docs-runner/build/dokkaKotlinTipOfTreeDocs/androidx/ui/util/annotation: VisibleForTesting.html Change-Id: Ie0111d924c354fb6fd37d287332730181ffda3e5 --- core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt | 4 ---- .../main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt | 6 +++++- core/src/main/kotlin/Kotlin/KotlinLanguageService.kt | 2 +- core/src/main/kotlin/Languages/NewJavaLanguageService.kt | 4 ++-- core/src/main/kotlin/Model/DocumentationNode.kt | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt index 5c3d6babb..91808f8bf 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt @@ -139,7 +139,3 @@ fun DocumentationNode.signatureForAnchor(logger: DokkaLogger): String { } } -fun DocumentationNode.classNodeNameWithOuterClass(): String { - assert(kind in NodeKind.classLike) - return path.dropWhile { it.kind == NodeKind.Package || it.kind == NodeKind.Module }.joinToString(separator = ".") { it.name } -} diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt index dc0df2a9e..9928a8e9e 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlGenerator.kt @@ -32,6 +32,7 @@ class JavaLayoutHtmlFormatGenerator @Inject constructor( return when (node.kind) { NodeKind.Module -> URI("/").resolve(node.name + "/") NodeKind.Package -> tryGetContainerUri(node.getOwnerOrReport())?.resolve(node.name.replace('.', '/') + '/') + NodeKind.GroupNode -> tryGetContainerUri(node.getOwnerOrReport()) in NodeKind.classLike -> tryGetContainerUri(node.getOwnerOrReport())?.resolve("${node.classNodeNameWithOuterClass()}.html") else -> null } @@ -81,7 +82,7 @@ class JavaLayoutHtmlFormatGenerator @Inject constructor( fun buildPackage(node: DocumentationNode, parentDir: File) { assert(node.kind == NodeKind.Package) - val members = node.members + var members = node.members val directoryForPackage = parentDir.resolve(node.name.replace('.', File.separatorChar)) directoryForPackage.mkdirsOrFail() @@ -89,6 +90,9 @@ class JavaLayoutHtmlFormatGenerator @Inject constructor( createOutputBuilderForNode(node, it).generatePage(Page.PackagePage(node)) } + members.filter { it.kind == NodeKind.GroupNode }.forEach { + members += it.members + } members.filter { it.kind in NodeKind.classLike }.forEach { buildClass(it, directoryForPackage) } diff --git a/core/src/main/kotlin/Kotlin/KotlinLanguageService.kt b/core/src/main/kotlin/Kotlin/KotlinLanguageService.kt index 757221ce5..8a33ff8b7 100644 --- a/core/src/main/kotlin/Kotlin/KotlinLanguageService.kt +++ b/core/src/main/kotlin/Kotlin/KotlinLanguageService.kt @@ -1,6 +1,6 @@ package org.jetbrains.dokka -import org.jetbrains.dokka.Formats.classNodeNameWithOuterClass +import org.jetbrains.dokka.classNodeNameWithOuterClass import org.jetbrains.dokka.LanguageService.RenderMode /** diff --git a/core/src/main/kotlin/Languages/NewJavaLanguageService.kt b/core/src/main/kotlin/Languages/NewJavaLanguageService.kt index 10715d0da..c4b5fa090 100644 --- a/core/src/main/kotlin/Languages/NewJavaLanguageService.kt +++ b/core/src/main/kotlin/Languages/NewJavaLanguageService.kt @@ -1,6 +1,6 @@ package org.jetbrains.dokka -import org.jetbrains.dokka.Formats.classNodeNameWithOuterClass +import org.jetbrains.dokka.classNodeNameWithOuterClass import org.jetbrains.dokka.LanguageService.RenderMode /** @@ -247,4 +247,4 @@ class NewJavaLanguageService : CommonLanguageService() { text(" ") identifier(node.name) } -} \ No newline at end of file +} diff --git a/core/src/main/kotlin/Model/DocumentationNode.kt b/core/src/main/kotlin/Model/DocumentationNode.kt index e8a85a2bd..08a6225d0 100644 --- a/core/src/main/kotlin/Model/DocumentationNode.kt +++ b/core/src/main/kotlin/Model/DocumentationNode.kt @@ -266,7 +266,7 @@ private fun DocumentationNode.isSuperclassFor(node: DocumentationNode): Boolean fun DocumentationNode.classNodeNameWithOuterClass(): String { assert(kind in NodeKind.classLike) - return path.dropWhile { it.kind == NodeKind.Package || it.kind == NodeKind.Module }.joinToString(separator = ".") { it.name } + return path.dropWhile { it.kind !in NodeKind.classLike }.joinToString(separator = ".") { it.name } } fun DocumentationNode.deprecatedLevelMessage(): String { -- cgit v1.2.3 From 66257797513d8f2c5a4980e7992ec733771f2159 Mon Sep 17 00:00:00 2001 From: Louis Pullen-Freilich Date: Mon, 22 Jun 2020 17:34:35 +0100 Subject: Updates Kotlin compiler version to 1.3.61 Most of this CL is taken from: https://github.com/Kotlin/dokka/commit/a51a92429fd3d5e6836bf1d43244b00b92587a7d - with changes where needed for our fork. This also fixes @Composable () types being recorded as 'ERROR TYPE' because the new compiler version correctly understands this syntax (with no extra parameters). This also has the side-effect of removing types that were being added to some Compose docs. Bug: b/159470920 Bug: b/159473914 Test: FunctionTest#functionWithAnnotatedLambdaParam, BUILD_DOKKA=true ./gradlew dokkaKotlinTipOfTreeDocs Change-Id: I581902083c0f010240c864d6500a5c3f4823fd2e --- Android.bp | 2 +- build.gradle | 14 ++-- .../org/jetbrains/CorrectShadowPublishing.groovy | 8 +-- core/build.gradle | 5 +- .../main/kotlin/Analysis/AnalysisEnvironment.kt | 83 +++++++++++++++------- .../main/kotlin/Analysis/CoreKotlinCacheService.kt | 18 ++++- .../main/kotlin/Analysis/CoreProjectFileIndex.kt | 28 ++++---- .../main/kotlin/Analysis/JavaResolveExtension.kt | 7 +- core/src/main/kotlin/Java/JavadocParser.kt | 14 ++-- .../src/main/kotlin/Kotlin/DocumentationBuilder.kt | 2 +- .../Kotlin/ExternalDocumentationLinkResolver.kt | 6 +- core/src/test/kotlin/model/FunctionTest.kt | 14 ++++ .../functions/functionWithAnnotatedLambdaParam.kt | 7 ++ gradle.properties | 8 ++- gradle/wrapper/gradle-wrapper.properties | 2 +- 15 files changed, 139 insertions(+), 79 deletions(-) create mode 100644 core/testdata/functions/functionWithAnnotatedLambdaParam.kt diff --git a/Android.bp b/Android.bp index f67ea232a..e613720d8 100644 --- a/Android.bp +++ b/Android.bp @@ -27,7 +27,7 @@ java_binary_host { // (it references packages under com.sun.tools.doclets which are not // exported from the jdk.javadoc module) (see b/140097603): java_version: "1.8", - kotlincflags: ["-language-version 1.2 -api-version 1.2 -jvm-target 1.8"], + kotlincflags: ["-language-version 1.3 -api-version 1.3 -jvm-target 1.8"], use_tools_jar: true, java_resource_dirs: ["core/src/main/resources"], } diff --git a/build.gradle b/build.gradle index d282aeb08..08951ee9a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,3 @@ -import org.jetbrains.DependenciesVersionGetter - allprojects { group 'org.jetbrains.dokka' version dokka_version @@ -29,6 +27,8 @@ allprojects { repositories { mavenCentral() mavenLocal() + maven { url 'https://kotlin.bintray.com/kotlin-plugin' } + maven { url 'https://www.jetbrains.com/intellij-repository/releases' } maven { url "https://dl.bintray.com/jetbrains/markdown" } maven { url "http://dl.bintray.com/kotlin/kotlin-eap" } maven { url "https://dl.bintray.com/kotlin/kotlin-dev" } @@ -70,24 +70,20 @@ task wrapper(type: Wrapper) { distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" } -def versions = DependenciesVersionGetter.getVersions(project, bundled_kotlin_compiler_version) - -ext.ideaVersion = versions["idea.build.id"] -ext.markdownVersion = versions["markdown.build.id"].replace("%20", " ") - configurations { ideaIC intellijCore } repositories { + maven { url 'https://kotlin.bintray.com/kotlin-plugin' } maven { url 'https://www.jetbrains.com/intellij-repository/snapshots' } maven { url 'https://www.jetbrains.com/intellij-repository/releases' } } dependencies { - intellijCore "com.jetbrains.intellij.idea:intellij-core:$ideaVersion" - ideaIC "com.jetbrains.intellij.idea:ideaIC:$ideaVersion" + intellijCore "com.jetbrains.intellij.idea:intellij-core:$idea_version" + ideaIC "com.jetbrains.intellij.idea:ideaIC:$idea_version" } def intellijCoreAnalysis() { diff --git a/buildSrc/src/main/groovy/org/jetbrains/CorrectShadowPublishing.groovy b/buildSrc/src/main/groovy/org/jetbrains/CorrectShadowPublishing.groovy index 58cfdcf7a..aacede449 100644 --- a/buildSrc/src/main/groovy/org/jetbrains/CorrectShadowPublishing.groovy +++ b/buildSrc/src/main/groovy/org/jetbrains/CorrectShadowPublishing.groovy @@ -4,10 +4,11 @@ import org.gradle.api.Project import org.gradle.api.artifacts.ModuleVersionIdentifier import org.gradle.api.artifacts.ProjectDependency import org.gradle.api.artifacts.SelfResolvingDependency -import org.gradle.api.publish.internal.ProjectDependencyPublicationResolver +import org.gradle.api.internal.artifacts.ivyservice.projectmodule.ProjectDependencyPublicationResolver import org.gradle.api.publish.maven.MavenPom import org.gradle.api.publish.maven.MavenPublication +//https://github.com/johnrengelman/shadow/issues/334 static void configure(MavenPublication publication, Project project) { publication.artifact(project.tasks.shadowJar) @@ -16,10 +17,9 @@ static void configure(MavenPublication publication, Project project) { def dependenciesNode = xml.asNode().appendNode('dependencies') project.configurations.shadow.allDependencies.each { - //if (! (it instanceof SelfResolvingDependency)) { if (it instanceof ProjectDependency) { - def projectDependencyResolver = project.gradle.services.get(ProjectDependencyPublicationResolver) - ModuleVersionIdentifier identifier = projectDependencyResolver.resolve(it) + final ProjectDependencyPublicationResolver projectDependencyResolver = project.gradle.services.get(ProjectDependencyPublicationResolver) + final ModuleVersionIdentifier identifier = projectDependencyResolver.resolve(ModuleVersionIdentifier, it) addDependency(dependenciesNode, identifier) } else if (!(it instanceof SelfResolvingDependency)) { addDependency(dependenciesNode, it) diff --git a/core/build.gradle b/core/build.gradle index 5c80fc84e..4a8928de1 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -30,13 +30,14 @@ dependencies { compile "org.jetbrains.kotlin:kotlin-compiler:$bundled_kotlin_compiler_version" compile "org.jetbrains.kotlin:kotlin-script-runtime:$bundled_kotlin_compiler_version" - compile "teamcity:kotlin-ide-common:$bundled_kotlin_compiler_version" - compile "org.jetbrains:markdown:$markdownVersion" + compile "org.jetbrains:markdown:0.1.41" implementation "com.squareup.okhttp3:okhttp:4.0.0-RC1" compile intellijCoreAnalysis() + compile "org.jetbrains.kotlin:kotlin-plugin-ij193:$kotlin_plugin_version" //TODO: parametrize ij version after 1.3.70 + // Google version of the library in the libs folder. Fixing 129528660 // compile 'org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.8' diff --git a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt index b47f8bdb1..7003024c8 100644 --- a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt +++ b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt @@ -18,6 +18,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.io.URLUtil import org.jetbrains.kotlin.analyzer.* +import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys @@ -35,19 +36,25 @@ import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.container.getService import org.jetbrains.kotlin.container.tryGetService import org.jetbrains.kotlin.context.ProjectContext +import org.jetbrains.kotlin.context.withModule import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.platform.TargetPlatform +import org.jetbrains.kotlin.platform.jvm.JvmPlatforms +import org.jetbrains.kotlin.platform.konan.KonanPlatforms import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.CompilerEnvironment +import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics -import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform +import org.jetbrains.kotlin.resolve.jvm.JvmResolverForModuleFactory +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.ResolveSession import org.jetbrains.kotlin.types.KotlinType @@ -104,29 +111,40 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable { fun createResolutionFacade(environment: KotlinCoreEnvironment): Pair { - val projectContext = ProjectContext(environment.project) + val projectContext = ProjectContext(environment.project, "Dokka") val sourceFiles = environment.getSourceFiles() val library = object : ModuleInfo { override val name: Name = Name.special("") + override val platform: TargetPlatform + get() = JvmPlatforms.defaultJvmPlatform + override val analyzerServices: PlatformDependentAnalyzerServices = + JvmPlatformAnalyzerServices override fun dependencies(): List = listOf(this) } val module = object : ModuleInfo { override val name: Name = Name.special("") + override val platform: TargetPlatform + get() = JvmPlatforms.defaultJvmPlatform + override val analyzerServices: PlatformDependentAnalyzerServices = + JvmPlatformAnalyzerServices override fun dependencies(): List = listOf(this, library) } val sourcesScope = createSourceModuleSearchScope(environment.project, sourceFiles) - val builtIns = JvmBuiltIns(projectContext.storageManager) + val builtIns = JvmBuiltIns( + projectContext.storageManager, + JvmBuiltIns.Kind.FROM_CLASS_LOADER + ) val javaRoots = classpath .mapNotNull { val rootFile = when { it.extension == "jar" -> - StandardFileSystems.jar().findFileByPath("${it.absolutePath}${URLUtil.JAR_SEPARATOR}") + StandardFileSystems.jar().findFileByPath("${it.absolutePath}${"!/"}") else -> StandardFileSystems.local().findFileByPath(it.absolutePath) } @@ -134,38 +152,51 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable { rootFile?.let { JavaRoot(it, JavaRoot.RootType.BINARY) } } - val resolverForProject = ResolverForProjectImpl( + val resolverForProject = object : AbstractResolverForProject( "Dokka", projectContext, - listOf(library, module), - { - when (it) { - library -> ModuleContent(it, emptyList(), GlobalSearchScope.notScope(sourcesScope)) - module -> ModuleContent(it, emptyList(), sourcesScope) + modules = listOf(module, library) + ) { + override fun modulesContent(module: ModuleInfo): ModuleContent = + when (module) { + library -> ModuleContent(module, emptyList(), GlobalSearchScope.notScope(sourcesScope)) + module -> ModuleContent(module, emptyList(), sourcesScope) else -> throw IllegalArgumentException("Unexpected module info") } - }, - { - JvmPlatform.multiTargetPlatform - }, - LanguageSettingsProvider.Default /* TODO: Fix this */, - { JvmAnalyzerFacade }, - { + + override fun builtInsForModule(module: ModuleInfo): KotlinBuiltIns = builtIns + + override fun createResolverForModule( + descriptor: ModuleDescriptor, + moduleInfo: ModuleInfo + ): ResolverForModule = JvmResolverForModuleFactory( JvmPlatformParameters({ content -> - JvmPackagePartProvider(configuration.languageVersionSettings, content.moduleContentScope).apply { - addRoots(javaRoots, messageCollector) - } + JvmPackagePartProvider( + configuration.languageVersionSettings, + content.moduleContentScope + ) + .apply { + addRoots(javaRoots, messageCollector) + } }, { val file = (it as JavaClassImpl).psi.containingFile.virtualFile if (file in sourcesScope) module else library - }) - }, - CompilerEnvironment, - builtIns = builtIns - ) + }), + CompilerEnvironment, + KonanPlatforms.defaultKonanPlatform + ).createResolverForModule( + descriptor as ModuleDescriptorImpl, + projectContext.withModule(descriptor), + modulesContent(moduleInfo), + this, + LanguageVersionSettingsImpl.DEFAULT + ) + + override fun sdkDependency(module: ModuleInfo): ModuleInfo? = null + } val resolverForLibrary = resolverForProject.resolverForModule(library) // Required before module to initialize library properly val resolverForModule = resolverForProject.resolverForModule(module) diff --git a/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt b/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt index 31b8ffc76..d9093760c 100644 --- a/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt +++ b/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt @@ -5,7 +5,6 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.psi.KtElement -import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache @@ -14,11 +13,24 @@ class CoreKotlinCacheService(private val resolutionFacade: DokkaResolutionFacade return resolutionFacade } - override fun getResolutionFacadeByFile(file: PsiFile, platform: TargetPlatform): ResolutionFacade { + override fun getResolutionFacade( + elements: List, + platform: org.jetbrains.kotlin.platform.TargetPlatform + ): ResolutionFacade { return resolutionFacade } - override fun getResolutionFacadeByModuleInfo(moduleInfo: ModuleInfo, platform: TargetPlatform): ResolutionFacade? { + override fun getResolutionFacadeByFile( + file: PsiFile, + platform: org.jetbrains.kotlin.platform.TargetPlatform + ): ResolutionFacade? { + return resolutionFacade + } + + override fun getResolutionFacadeByModuleInfo( + moduleInfo: ModuleInfo, + platform: org.jetbrains.kotlin.platform.TargetPlatform + ): ResolutionFacade? { return resolutionFacade } diff --git a/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt b/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt index 319d85b14..4ece8d300 100644 --- a/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt +++ b/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt @@ -15,6 +15,7 @@ import com.intellij.openapi.util.Condition import com.intellij.openapi.util.Key import com.intellij.openapi.util.UserDataHolderBase import com.intellij.openapi.vfs.StandardFileSystems +import com.intellij.openapi.vfs.VfsUtilCore.getVirtualFileForJar import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFileFilter import com.intellij.psi.search.GlobalSearchScope @@ -166,9 +167,8 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List = classpathRoots - .map { StandardFileSystems.local().findFileByPath(it.file.path) } - .filterNotNull() - .toTypedArray() + .mapNotNull { StandardFileSystems.local().findFileByPath(it.file.path) } + .toTypedArray() override fun addRootSetChangedListener(p0: RootProvider.RootSetChangedListener) { throw UnsupportedOperationException() @@ -329,7 +329,7 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List processOrder(p0: RootPolicy?, p1: R): R { + override fun processOrder(p0: RootPolicy, p1: R): R { throw UnsupportedOperationException() } @@ -354,11 +354,11 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List = arrayOf(module) + ProjectOrderEnumerator(project, null).using(object : RootModelProvider { + override fun getModules(): Array = arrayOf(module) - override fun getRootModel(p0: Module): ModuleRootModel = this@MyModuleRootManager - }) + override fun getRootModel(p0: Module): ModuleRootModel = this@MyModuleRootManager + }) override fun getModuleExtension(p0: Class): T { throw UnsupportedOperationException() @@ -404,7 +404,7 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List.contains(file: VirtualFile): Boolean = any { it.contains(file) } @@ -516,7 +516,7 @@ class CoreProjectRootManager(val projectFileIndex: CoreProjectFileIndex) : Proje throw UnsupportedOperationException() } - override fun getContentRootsFromAllModules(): Array? { + override fun getContentRootsFromAllModules(): Array { throw UnsupportedOperationException() } @@ -524,7 +524,7 @@ class CoreProjectRootManager(val projectFileIndex: CoreProjectFileIndex) : Proje throw UnsupportedOperationException() } - override fun setProjectSdkName(p0: String?) { + override fun setProjectSdkName(p0: String) { throw UnsupportedOperationException() } @@ -559,11 +559,11 @@ class CoreProjectRootManager(val projectFileIndex: CoreProjectFileIndex) : Proje fun ContentRoot.contains(file: VirtualFile) = when (this) { is JvmContentRoot -> { val path = if (file.fileSystem.protocol == StandardFileSystems.JAR_PROTOCOL) - StandardFileSystems.getVirtualFileForJar(file)?.path ?: file.path + getVirtualFileForJar(file)?.path ?: file.path else file.path File(path).startsWith(this.file.absoluteFile) } is KotlinSourceRoot -> File(file.path).startsWith(File(this.path).absoluteFile) else -> false -} +} \ No newline at end of file diff --git a/core/src/main/kotlin/Analysis/JavaResolveExtension.kt b/core/src/main/kotlin/Analysis/JavaResolveExtension.kt index 4dc6b3662..4a4c78e56 100644 --- a/core/src/main/kotlin/Analysis/JavaResolveExtension.kt +++ b/core/src/main/kotlin/Analysis/JavaResolveExtension.kt @@ -19,7 +19,6 @@ package org.jetbrains.dokka import com.intellij.psi.* -import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.unwrapped import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.descriptors.* @@ -29,11 +28,9 @@ import org.jetbrains.kotlin.load.java.sources.JavaSourceElement import org.jetbrains.kotlin.load.java.structure.* import org.jetbrains.kotlin.load.java.structure.impl.* import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.psi.KtClassOrObject +import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.psiUtil.parameterIndex import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver -import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.MemberScope @@ -128,4 +125,4 @@ private fun Collection.findByJavaElemen } fun PsiElement.javaResolutionFacade() = - KotlinCacheService.getInstance(project).getResolutionFacadeByFile(this.originalElement.containingFile, JvmPlatform)!! + KotlinCacheService.getInstance(project).getResolutionFacadeByFile(this.originalElement.containingFile, JvmPlatforms.defaultJvmPlatform)!! diff --git a/core/src/main/kotlin/Java/JavadocParser.kt b/core/src/main/kotlin/Java/JavadocParser.kt index 04de29087..27cca9177 100644 --- a/core/src/main/kotlin/Java/JavadocParser.kt +++ b/core/src/main/kotlin/Java/JavadocParser.kt @@ -1,12 +1,11 @@ package org.jetbrains.dokka import com.intellij.psi.* -import com.intellij.psi.impl.source.javadoc.CorePsiDocTagValueImpl +import com.intellij.psi.impl.source.javadoc.PsiDocTagValueImpl import com.intellij.psi.impl.source.tree.JavaDocElementType import com.intellij.psi.javadoc.* import com.intellij.psi.util.PsiTreeUtil import com.intellij.util.IncorrectOperationException -import com.intellij.util.containers.isNullOrEmpty import org.jetbrains.dokka.Model.CodeNode import org.jetbrains.kotlin.utils.join import org.jetbrains.kotlin.utils.keysToMap @@ -172,7 +171,7 @@ class JavadocParser( fun PsiDocTag.getApiLevel(): String? { if (dataElements.isNotEmpty()) { val data = dataElements - if (data[0] is CorePsiDocTagValueImpl) { + if (data[0] is PsiDocTagValueImpl) { val docTagValue = data[0] if (docTagValue.firstChild != null) { val apiLevel = docTagValue.firstChild @@ -420,11 +419,12 @@ class JavadocParser( linkNode } linkSignature != null -> { + @Suppress("USELESS_CAST") + val signature: String = linkSignature as String val linkNode = ContentNodeLazyLink( - (tag.valueElement ?: linkElement).text, - { -> refGraph.lookupOrWarn(linkSignature, logger) } - ) + (tag.valueElement ?: linkElement).text + ) { refGraph.lookupOrWarn(signature, logger) } linkNode.append(text) linkNode } @@ -560,7 +560,7 @@ class JavadocParser( val superMethods = current.findSuperMethods() for (method in superMethods) { val docs = method.docComment?.descriptionElements?.dropWhile { it.text.trim().isEmpty() } - if (!docs.isNullOrEmpty()) { + if (docs?.isNotEmpty() == true) { return method } } diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt index 0b5e74339..f46505636 100644 --- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt +++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt @@ -739,7 +739,7 @@ class DocumentationBuilder } fun FunctionDescriptor.build(external: Boolean = false): DocumentationNode { - if (ErrorUtils.containsErrorType(this)) { + if (ErrorUtils.containsErrorTypeInParameters(this) || ErrorUtils.containsErrorType(this.returnType)) { logger.warn("Found an unresolved type in ${signatureWithSourceLocation()}") } diff --git a/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt b/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt index 4e394c466..d09bc1c9f 100644 --- a/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt +++ b/core/src/main/kotlin/Kotlin/ExternalDocumentationLinkResolver.kt @@ -42,7 +42,7 @@ class ExternalDocumentationLinkResolver @Inject constructor( override fun toString(): String = rootUrl.toString() } - val cacheDir: Path? = options.cacheRoot?.resolve("packageListCache")?.apply { createDirectories() } + val cacheDir: Path? = options.cacheRoot?.resolve("packageListCache")?.apply { toFile().mkdirs() } val cachedProtocols = setOf("http", "https", "ftp") @@ -86,13 +86,13 @@ class ExternalDocumentationLinkResolver @Inject constructor( val digest = MessageDigest.getInstance("SHA-256") val hash = digest.digest(packageListLink.toByteArray(Charsets.UTF_8)).toHexString() - val cacheEntry = cacheDir.resolve(hash) + val cacheEntry = cacheDir.resolve(hash).toFile() if (cacheEntry.exists()) { try { val connection = packageListUrl.doOpenConnectionToReadContent() val originModifiedDate = connection.date - val cacheDate = cacheEntry.lastModified().toMillis() + val cacheDate = cacheEntry.lastModified() if (originModifiedDate > cacheDate || originModifiedDate == 0L) { if (originModifiedDate == 0L) logger.warn("No date header for $packageListUrl, downloading anyway") diff --git a/core/src/test/kotlin/model/FunctionTest.kt b/core/src/test/kotlin/model/FunctionTest.kt index 329106829..c94d7e990 100644 --- a/core/src/test/kotlin/model/FunctionTest.kt +++ b/core/src/test/kotlin/model/FunctionTest.kt @@ -234,4 +234,18 @@ Documentation""", content.description.toTestString()) } } } + + // Test for b/159470920, to ensure that we correctly parse annotated function types without resolving 'ERROR CLASS' + // types. Note that the actual annotation is not included in the type information, this is tracked in b/145517104. + @Test fun functionWithAnnotatedLambdaParam() { + verifyModel("testdata/functions/functionWithAnnotatedLambdaParam.kt") { model -> + with(model.members.single().members.single { it.name == "function" }) { + with(details(NodeKind.Parameter).first()) { + with(details(NodeKind.Type).first()) { + assertEquals("Function0", name) + } + } + } + } + } } diff --git a/core/testdata/functions/functionWithAnnotatedLambdaParam.kt b/core/testdata/functions/functionWithAnnotatedLambdaParam.kt new file mode 100644 index 000000000..4136e03b3 --- /dev/null +++ b/core/testdata/functions/functionWithAnnotatedLambdaParam.kt @@ -0,0 +1,7 @@ +@Target(AnnotationTarget.TYPE) +@Retention(AnnotationRetention.SOURCE) +@MustBeDocumented +public annotation class Fancy + +fun function(notInlined: @Fancy () -> Unit) { +} diff --git a/gradle.properties b/gradle.properties index a9e47b0bc..81c04c65b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,9 +2,11 @@ dokka_version=0.9.17-g011 dokka_publication_channel=dokka #Kotlin compiler and plugin -bundled_kotlin_compiler_version=1.3.20-dev-564 -kotlin_version=1.2.21 -kotlin_for_gradle_runtime_version=1.1.60 +bundled_kotlin_compiler_version=1.3.61 +kotlin_version=1.3.61 +kotlin_plugin_version=1.3.61-release-180 +idea_version=192.5728.98 +kotlin_for_gradle_runtime_version=1.3.61 ant_version=1.9.6 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 610ad4c51..bd24854fe 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip -- cgit v1.2.3 From 305b3a0ca2235c088e9ba83b59ca59b77c8224c3 Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Wed, 24 Jun 2020 14:55:14 -0400 Subject: Bump version to 0.917-g12 Change-Id: I7f612affeb265ed39f203376be4387bf308e9089 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a9e47b0bc..e7e6b4f7c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g011 +dokka_version=0.9.17-g012 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 92fcde47f4eaf8e9dfe26104ade0d9aeebe4461a Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Tue, 30 Jun 2020 04:13:26 +0000 Subject: Fix NPE loading JavadocManager in JavadocParser#resolveExternalLink In `resolveExternalLink`, `getReference` is called on a psi element. When the implementation was a `PsiDocTagValueImpl`, the call would NPE after retrieving a null instance of the JavadocManager and trying to use it. This CL registers the JavadocManager and associated dependencies into the parsing environment. Test: couldn't repo in this project, but the NPE is gone in framework/support when running ./gradlew generateDocs. Change-Id: I8111091552f2f890d9643fa02c9f2346d41a6177 --- core/src/main/kotlin/Analysis/AnalysisEnvironment.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt index 7003024c8..9fea67407 100644 --- a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt +++ b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt @@ -15,8 +15,11 @@ import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.Disposer import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.psi.PsiElement +import com.intellij.psi.impl.source.javadoc.JavadocManagerImpl +import com.intellij.psi.javadoc.CustomJavadocTagProvider +import com.intellij.psi.javadoc.JavadocManager +import com.intellij.psi.javadoc.JavadocTagInfo import com.intellij.psi.search.GlobalSearchScope -import com.intellij.util.io.URLUtil import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns @@ -96,10 +99,19 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable { CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), OrderEnumerationHandler.EP_NAME, OrderEnumerationHandler.Factory::class.java) + CoreApplicationEnvironment.registerExtensionPoint(Extensions.getArea(environment.project), + JavadocTagInfo.EP_NAME, JavadocTagInfo::class.java) + CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), + CustomJavadocTagProvider.EP_NAME, CustomJavadocTagProvider::class.java) + projectComponentManager.registerService(ProjectFileIndex::class.java, projectFileIndex) projectComponentManager.registerService(ProjectRootManager::class.java, CoreProjectRootManager(projectFileIndex)) + projectComponentManager.registerService(JavadocManager::class.java, + JavadocManagerImpl(environment.project)) + projectComponentManager.registerService(CustomJavadocTagProvider::class.java, + CustomJavadocTagProvider { emptyList() }) return environment } -- cgit v1.2.3 From be1744a7264c9e50fc5a857ce34e6a972ffe12ac Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Wed, 1 Jul 2020 02:06:31 +0000 Subject: Add Interfaces section to Dokka as Kotlin docs Bug: 149372553 Change-Id: I5f20a2de2b57db0b36e5fb678aa37cd38f0e54f5 --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 1 + .../kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt | 3 +++ 2 files changed, 4 insertions(+) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index 7038a7fbe..d997f1ca2 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -514,6 +514,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) + summaryNodeGroup(page.interfaces.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Interfaces", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.classes.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Classes", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.exceptions.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Exceptions", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.typeAliases.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Type-aliases", headerAsRow = false) { classLikeRow(it) } diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index 23cb81a1a..a04a9187c 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -392,6 +392,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) + summaryNodeGroup(page.interfaces, "Interfaces", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.classes, "Classes", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.exceptions, "Exceptions", headerAsRow = false) { classLikeRow(it) } summaryNodeGroup(page.typeAliases, "Type-aliases", headerAsRow = false) { classLikeRow(it) } @@ -1088,6 +1089,8 @@ open class JavaLayoutHtmlFormatOutputBuilder( assert(node.kind == NodeKind.Package) } + val interfaces = node.members(NodeKind.Interface) + + node.members(NodeKind.Class).flatMap { it.members(NodeKind.Interface) } val classes = node.members(NodeKind.Class) val exceptions = node.members(NodeKind.Exception) val typeAliases = node.members(NodeKind.TypeAlias) -- cgit v1.2.3 From a5334cf2c6443fd1d21392eb567217b95e13bc4a Mon Sep 17 00:00:00 2001 From: Andrea Falcone Date: Mon, 6 Jul 2020 13:59:54 +0000 Subject: Rev Dokka version Change-Id: I88c3b7d5c9ad4c0e2b988f1b3e41141e03b2611f --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e667cfb4e..263eb1530 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g012 +dokka_version=0.9.17-g013 dokka_publication_channel=dokka #Kotlin compiler and plugin -- cgit v1.2.3 From 54c62ace5403f6b644152fbb67fb98dca5005ca4 Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Tue, 30 Jun 2020 21:47:15 +0000 Subject: Don't use fully qualified names in Dokka Javadoc Bug: 149340317 Test: updated existing tests, ran ./gradlew test Change-Id: I1abe2886ff634ce38ff148565917d4305c891bc9 --- core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt | 3 ++- core/src/test/kotlin/javadoc/JavadocTest.kt | 6 +++--- core/testdata/format/dac/deprecation/dac-as-java/Bar.html | 2 +- .../format/dac/deprecation/dac-as-java/DeprecatedBar.html | 2 +- .../format/dac/deprecation/dac-as-java/DeprecatedFoo.html | 2 +- core/testdata/format/dac/deprecation/dac-as-java/Foo.html | 2 +- .../format/dac/inheritedMethods/dac-as-java/Parent.html | 2 +- .../format/dac/javaClassLinks/dac-as-java/Bar.html | 14 +++++++------- .../format/dac/javaClassLinks/dac-as-java/Foo.html | 2 +- .../format/dac/javaConstructor/dac-as-java/Foo.html | 2 +- .../format/dac/javaDefaultConstructor/dac-as-java/Foo.html | 2 +- .../format/dac/javaMethodVisibilities/dac-as-java/Foo.html | 2 +- core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html | 2 +- core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html | 2 +- 14 files changed, 23 insertions(+), 22 deletions(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index ed4d36687..be989ad37 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -29,12 +29,13 @@ fun getSignature(element: PsiElement?) = when(element) { private fun PsiType.typeSignature(): String = when(this) { is PsiArrayType -> "Array((${componentType.typeSignature()}))" is PsiPrimitiveType -> "kotlin." + canonicalText.capitalize() + is PsiClassType -> resolve()?.qualifiedName ?: className else -> mapTypeName(this) } private fun mapTypeName(psiType: PsiType): String = when (psiType) { is PsiPrimitiveType -> psiType.canonicalText - is PsiClassType -> psiType.resolve()?.qualifiedName ?: psiType.className + is PsiClassType -> psiType.resolve()?.name ?: psiType.className is PsiEllipsisType -> mapTypeName(psiType.componentType) is PsiArrayType -> "kotlin.Array" else -> psiType.canonicalText diff --git a/core/src/test/kotlin/javadoc/JavadocTest.kt b/core/src/test/kotlin/javadoc/JavadocTest.kt index 74265cbb8..a42d63933 100644 --- a/core/src/test/kotlin/javadoc/JavadocTest.kt +++ b/core/src/test/kotlin/javadoc/JavadocTest.kt @@ -16,8 +16,8 @@ class JavadocTest { val type = method.returnType() assertFalse(type.asClassDoc().isIncluded) - assertEquals("java.lang.String", type.qualifiedTypeName()) - assertEquals("java.lang.String", type.asClassDoc().qualifiedName()) + assertEquals("String", type.qualifiedTypeName()) + assertEquals("String", type.asClassDoc().qualifiedName()) val params = method.parameters() assertTrue(params[0].type().isPrimitive) @@ -119,7 +119,7 @@ class JavadocTest { val methodParamType = doc.classNamed("TypealiasesKt")!!.methods() .find { it.name() == "some" }!!.parameters().first() .type() - assertEquals("kotlin.jvm.functions.Function1", methodParamType.qualifiedTypeName()) + assertEquals("Function1", methodParamType.qualifiedTypeName()) assertEquals("? super A, C", methodParamType.asParameterizedType().typeArguments() .map(Type::qualifiedTypeName).joinToString()) } diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html index d77fa9e64..68d559ab0 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html @@ -7,7 +7,7 @@

Bar

-
public final class Bar implements java.lang.Object
+
public final class Bar implements Object
- -

Public methods

-
-
Public methods
open Unit
diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html index 56283f6e5..c5fe8492b 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html @@ -7,7 +7,7 @@

DeprecatedBar

-
public final class DeprecatedBar implements java.lang.Object
+
public final class DeprecatedBar implements Object
Bar
diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html index e7e2fecb0..360b24ef3 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedFoo.html @@ -7,7 +7,7 @@

DeprecatedFoo

-
public class DeprecatedFoo implements java.lang.Object
+
public class DeprecatedFoo implements Object
DeprecatedBar
diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Foo.html b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html index c898800da..b468e4daa 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/Foo.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
DeprecatedFoo
diff --git a/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html b/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html index dd305f7f8..977e693d8 100644 --- a/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html +++ b/core/testdata/format/dac/inheritedMethods/dac-as-java/Parent.html @@ -7,7 +7,7 @@

Parent

-
public class Parent implements java.lang.Object
+
public class Parent implements Object
Foo
diff --git a/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html b/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html index cbabc2920..64d0c4cd8 100644 --- a/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html +++ b/core/testdata/format/dac/javaClassLinks/dac-as-java/Bar.html @@ -7,7 +7,7 @@

Bar

-
public class Bar implements java.lang.Object
+
public class Bar implements Object
Parent
@@ -40,9 +40,9 @@ - + @@ -100,10 +100,10 @@
Bar
java.util.ArrayList<java.lang.String>ArrayList<String> - +

- +

getMyList

-
public java.util.ArrayList<java.lang.String> getMyList(java.util.HashSet input)
+
public ArrayList<String> getMyList(HashSet input)
@@ -111,7 +111,7 @@ - +
inputjava.util.HashSet: The best set you can afford.HashSet: The best set you can afford.
@@ -121,7 +121,7 @@
Return
java.util.ArrayList<java.lang.String>ArrayList<String>
diff --git a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html index 0ae4d255b..bddb7ff8a 100644 --- a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
Foo
diff --git a/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html b/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html index 0ae4d255b..bddb7ff8a 100644 --- a/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaDefaultConstructor/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
Foo
diff --git a/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html b/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html index 1ed04c547..978b1071d 100644 --- a/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaMethodVisibilities/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
Foo
diff --git a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html index 6b4d75f4a..7eb3cdf85 100644 --- a/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac-as-java/Bar.html @@ -7,7 +7,7 @@

Bar

-
public final class Bar implements java.lang.Object
+
public final class Bar implements Object
Foo
diff --git a/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html b/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html index b9f23dc59..4529fd04d 100644 --- a/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaSeeTag/dac-as-java/Foo.html @@ -7,7 +7,7 @@

Foo

-
public class Foo implements java.lang.Object
+
public class Foo implements Object
Bar
-- cgit v1.2.3 From a2a89a61d01598f203572501bc43c6622c0c5832 Mon Sep 17 00:00:00 2001 From: Owen Gray Date: Fri, 12 Jun 2020 14:26:29 -0400 Subject: Progress on deprecation notices in kotlin. Fix test, improve replacewith. Replacewith contents still need to be linkified. Class deprecation not fully functional. May need further improvement in formatting to make it look nicer. Is ugly under the hood, but service is soon to be deprecated. Bug: 149580603 Test: included deprecation test Change-Id: I63a5b45754de00e1ffc7d81cb1de8d3d44bdc9ec --- .../main/kotlin/Java/JavaPsiDocumentationBuilder.kt | 8 ++++++-- core/src/main/kotlin/Kotlin/DocumentationBuilder.kt | 18 ++++++++++++------ core/src/main/kotlin/Model/DocumentationNode.kt | 21 +++++++++++++++++++++ core/src/test/kotlin/model/ClassTest.kt | 2 +- .../format/dac/deprecation/DeprecatedBar.kt | 8 ++++---- .../format/dac/deprecation/dac-as-java/Bar.html | 5 +++-- .../dac/deprecation/dac-as-java/DeprecatedBar.html | 4 +++- core/testdata/format/dac/deprecation/dac/Bar.html | 5 +++-- .../format/dac/deprecation/dac/DeprecatedBar.html | 4 +++- 9 files changed, 56 insertions(+), 19 deletions(-) diff --git a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt index ed4d36687..280ab8862 100644 --- a/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt +++ b/core/src/main/kotlin/Java/JavaPsiDocumentationBuilder.kt @@ -119,8 +119,12 @@ class JavaPsiDocumentationBuilder : JavaDocumentationBuilder { if (modifierList != null) { modifierList.annotations.filter { !ignoreAnnotation(it) }.forEach { val annotation = it.build() - node.append(annotation, - if (it.qualifiedName == "java.lang.Deprecated") RefKind.Deprecation else RefKind.Annotation) + if (it.qualifiedName == "java.lang.Deprecated" || it.qualifiedName == "kotlin.Deprecated") { + node.append(annotation, RefKind.Deprecation) + annotation.convertDeprecationDetailsToChildren() + } else { + node.append(annotation, RefKind.Annotation) + } } } } diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt index 0b5e74339..063f7c461 100644 --- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt +++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotated import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor +import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.EnumEntrySyntheticClassDescriptor import org.jetbrains.kotlin.idea.kdoc.findKDoc import org.jetbrains.kotlin.idea.util.fuzzyExtensionReceiverType @@ -309,8 +310,8 @@ class DocumentationBuilder else -> return@forEach } append(annotationNode, refKind) + if (refKind == RefKind.Deprecation) annotationNode.convertDeprecationDetailsToChildren() } - } } } @@ -908,14 +909,19 @@ class DocumentationBuilder return node } - fun AnnotationDescriptor.build(): DocumentationNode? { + fun AnnotationDescriptor.build(isWithinReplaceWith: Boolean = false): DocumentationNode? { val annotationClass = type.constructor.declarationDescriptor if (annotationClass == null || ErrorUtils.isError(annotationClass)) { return null } val node = DocumentationNode(annotationClass.name.asString(), Content.Empty, NodeKind.Annotation) - allValueArguments.forEach { (name, value) -> - val valueNode = value.toDocumentationNode() + allValueArguments.forEach foreach@{ (name, value) -> + if (name.toString() == "imports" && value.toString() == "[]") return@foreach + var valueNode: DocumentationNode? = null + if (value.toString() == "@kotlin.ReplaceWith") { + valueNode = (value.value as AnnotationDescriptor).build(true) + } + else valueNode = value.toDocumentationNode(isWithinReplaceWith) if (valueNode != null) { val paramNode = DocumentationNode(name.asString(), Content.Empty, NodeKind.Parameter) paramNode.append(valueNode, RefKind.Detail) @@ -925,10 +931,10 @@ class DocumentationBuilder return node } - fun ConstantValue<*>.toDocumentationNode(): DocumentationNode? = value?.let { value -> + fun ConstantValue<*>.toDocumentationNode(isWithinReplaceWith: Boolean = false): DocumentationNode? = value?.let { value -> when (value) { is String -> - "\"" + StringUtil.escapeStringCharacters(value) + "\"" + (if (isWithinReplaceWith) "Replace with: " else "") + "\"" + StringUtil.escapeStringCharacters(value) + "\"" is EnumEntrySyntheticClassDescriptor -> value.containingDeclaration.name.asString() + "." + value.name.asString() is Pair<*, *> -> { diff --git a/core/src/main/kotlin/Model/DocumentationNode.kt b/core/src/main/kotlin/Model/DocumentationNode.kt index e8a85a2bd..097cb00fb 100644 --- a/core/src/main/kotlin/Model/DocumentationNode.kt +++ b/core/src/main/kotlin/Model/DocumentationNode.kt @@ -279,3 +279,24 @@ fun DocumentationNode.deprecatedLevelMessage(): String { } return "This $kindName was deprecated in API level ${deprecatedLevel.name}." } + +fun DocumentationNode.convertDeprecationDetailsToChildren() { + val toProcess = details.toMutableList() + while (!toProcess.isEmpty()) { + var child = toProcess.removeAt(0) + if (child.details.isEmpty() && child.name != "") { + updateContent { text(child.name.cleanForAppending()) } + } + else toProcess.addAll(0, child.details) + } +} + + /* + * Removes extraneous quotation marks and adds a ". " to make appending children readable. + */ +fun String.cleanForAppending(): String { + var result = this + if (this.first() == this.last() && this.first() == '"') result = result.substring(1, result.length - 1) + if (result[result.length - 2] != '.' && result.last() != ' ') result += ". " + return result +} \ No newline at end of file diff --git a/core/src/test/kotlin/model/ClassTest.kt b/core/src/test/kotlin/model/ClassTest.kt index 56a38fd3d..6bc45db10 100644 --- a/core/src/test/kotlin/model/ClassTest.kt +++ b/core/src/test/kotlin/model/ClassTest.kt @@ -181,7 +181,7 @@ class ClassTest { with(model.members.single().members.single()) { with(deprecation!!) { assertEquals("Deprecated", name) - assertEquals(Content.Empty, content) + // assertEquals(Content.Empty, content) // this is now an empty MutableContent instead assertEquals(NodeKind.Annotation, kind) assertEquals(1, details.count()) with(details[0]) { diff --git a/core/testdata/format/dac/deprecation/DeprecatedBar.kt b/core/testdata/format/dac/deprecation/DeprecatedBar.kt index 8eb729299..39ac1c43d 100644 --- a/core/testdata/format/dac/deprecation/DeprecatedBar.kt +++ b/core/testdata/format/dac/deprecation/DeprecatedBar.kt @@ -4,14 +4,14 @@ class Bar { fun badBarMethod(): DeprecatedBar { return DeprecatedBar() } /** - * @deprecated Use {@link #replacementBarMethod()} instead. + * This method has been deprecated in favor of replacementBarMethod(). */ - @Deprecated + @Deprecated("Obsolete method", ReplaceWith("replacementBarMethod()")) fun goodBarMethod(): DeprecatedBar { return DeprecatedBar() } } /** - * @deprecated Use {@link #Bar} instead. + * This class has been deprecated in favor of Bar. */ -@Deprecated +@Deprecated("Obsolete class", ReplaceWith("Bar")) class DeprecatedBar \ No newline at end of file diff --git a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html index d77fa9e64..a0277b851 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/Bar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/Bar.html @@ -43,7 +43,7 @@ @@ -71,7 +71,8 @@

goodBarMethod

public final DeprecatedBar goodBarMethod()
-

Deprecated: Deprecated

+

Deprecated: Obsolete method. ReplaceWith("replacementBarMethod()").

+

This method has been deprecated in favor of replacementBarMethod().

diff --git a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html index 56283f6e5..08d073a15 100644 --- a/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac-as-java/DeprecatedBar.html @@ -13,6 +13,7 @@
Foofinal DeprecatedBar -

+

This method has been deprecated in favor of replacementBarMethod().

DeprecatedBar
+

This class has been deprecated in favor of Bar.

Summary

@@ -22,7 +23,7 @@ @@ -32,6 +33,7 @@

DeprecatedBar

public DeprecatedBar()
+

This class has been deprecated in favor of Bar.

diff --git a/core/testdata/format/dac/deprecation/dac/Bar.html b/core/testdata/format/dac/deprecation/dac/Bar.html index f20112e16..9dc323048 100644 --- a/core/testdata/format/dac/deprecation/dac/Bar.html +++ b/core/testdata/format/dac/deprecation/dac/Bar.html @@ -43,7 +43,7 @@ @@ -71,7 +71,8 @@

goodBarMethod

fun goodBarMethod(): DeprecatedBar
-

Deprecated.

+

Deprecated: Obsolete method. Replace with: "replacementBarMethod()".

+

This method has been deprecated in favor of replacementBarMethod().

diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html index 15be9a06e..34b8c9386 100644 --- a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html @@ -13,6 +13,7 @@
-

+

This class has been deprecated in favor of Bar.

DeprecatedBar -

+

This method has been deprecated in favor of replacementBarMethod().

DeprecatedBar
+

This class has been deprecated in favor of Bar.

Summary

@@ -22,7 +23,7 @@ @@ -32,6 +33,7 @@

<init>

DeprecatedBar()
+

This class has been deprecated in favor of Bar.

-- cgit v1.2.3 From 9b8280a227848c53045cabc5a86cd013d720c63c Mon Sep 17 00:00:00 2001 From: Vladimir Kryachko Date: Thu, 16 Jul 2020 11:28:30 -0400 Subject: Fix external link rendering. The issue manifested by rendering "empty" links to not-imported fully-qualified symbols, for example `{@link com.example.Foo#bar()}` as opposed to `{@link Foo#bar()}` where the file also contains `import com.example.Foo;`. The resulting rendering would be ` `( note the space instead of the symbol name. Bug: 161729379 Change-Id: Idc90a7c94c1babff1656a0d2e71194dc7016ec70 --- core/src/main/kotlin/Java/JavadocParser.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Java/JavadocParser.kt b/core/src/main/kotlin/Java/JavadocParser.kt index 27cca9177..f446a998d 100644 --- a/core/src/main/kotlin/Java/JavadocParser.kt +++ b/core/src/main/kotlin/Java/JavadocParser.kt @@ -439,7 +439,13 @@ class JavadocParser( val externalLink = resolveExternalLink(valueElement) val linkSignature by lazy { resolveInternalLink(valueElement) } if (externalLink != null || linkSignature != null) { - val labelText = tag.dataElements.firstOrNull { it is PsiDocToken }?.text ?: valueElement!!.text + + // sometimes `dataElements` contains multiple `PsiDocToken` elements and some have whitespace in them + // this is best effort to find the first non-empty one before falling back to using the symbol name. + val labelText = tag.dataElements.firstOrNull { + it is PsiDocToken && it.text?.trim()?.isNotEmpty() ?: false + }?.text ?: valueElement!!.text + val linkTarget = if (externalLink != null) "href=\"$externalLink\"" else "docref=\"$linkSignature\"" val link = "$labelText" if (tag.name == "link") "$link" else link -- cgit v1.2.3 From 7651517b138776a33d8a379506b830e351af147e Mon Sep 17 00:00:00 2001 From: Jeff Gaston Date: Wed, 2 Sep 2020 16:39:31 -0400 Subject: Adding newline after warning "No file found when processing Java @sample" to make it easier for humans and scripts to parse this message Bug: 166452786 Test: BUILD_DOKKA=true ./gradlew dokkaJavaPublicDocs Change-Id: Ic7af0ea1e43758b5e52e8b0e59eec943f6747b52 --- core/src/main/kotlin/Java/JavadocParser.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/Java/JavadocParser.kt b/core/src/main/kotlin/Java/JavadocParser.kt index f446a998d..21cc2bbdf 100644 --- a/core/src/main/kotlin/Java/JavadocParser.kt +++ b/core/src/main/kotlin/Java/JavadocParser.kt @@ -654,7 +654,7 @@ class JavadocParser( appendContentBetweenIncludes(path, betweenTag) } } catch (e: java.lang.Exception) { - logger.error("No file found when processing Java @sample. Path to sample: $path") + logger.error("No file found when processing Java @sample. Path to sample: $path\n") } } -- cgit v1.2.3 From a5af8799cebd1fb57e92b998f858f3bc410f9c42 Mon Sep 17 00:00:00 2001 From: Vladimir Kryachko Date: Sat, 19 Sep 2020 13:52:24 -0400 Subject: Fix constructor rendering from `` to actual `TypeName`. For example, class Foo will have a constructor named `Foo` in docs as opposed to ``. Bug: 168972258 Change-Id: I1e70d6d15702e5d583054cb95a3a90c328e5f8f5 --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 2 +- .../Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt | 2 +- .../JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt | 2 +- core/src/main/kotlin/Model/DocumentationNode.kt | 6 ++++++ core/testdata/format/dac/deprecation/dac/Bar.html | 6 +++--- .../format/dac/deprecation/dac/DeprecatedBar.html | 6 +++--- .../format/dac/deprecation/dac/DeprecatedFoo.html | 6 +++--- core/testdata/format/dac/deprecation/dac/Foo.html | 6 +++--- .../testdata/format/dac/inheritedMethods/dac/Child.html | 6 +++--- .../format/dac/inheritedMethods/dac/Parent.html | 6 +++--- core/testdata/format/dac/javaClassLinks/dac/Bar.html | 6 +++--- core/testdata/format/dac/javaClassLinks/dac/Foo.html | 6 +++--- core/testdata/format/dac/javaConstructor/Foo.java | 2 ++ .../format/dac/javaConstructor/dac-as-java/Foo.html | 11 +++++++++++ core/testdata/format/dac/javaConstructor/dac/Foo.html | 17 ++++++++++++++--- .../format/dac/javaDefaultConstructor/dac/Foo.html | 6 +++--- .../format/dac/javaMethodVisibilities/dac/Foo.html | 6 +++--- core/testdata/format/dac/javaSeeTag/dac/Bar.html | 6 +++--- core/testdata/format/dac/javaSeeTag/dac/Foo.html | 6 +++--- 19 files changed, 72 insertions(+), 42 deletions(-) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index d997f1ca2..bc6429bf5 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -75,7 +75,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( attributes["data-version-added"] = node.apiLevel.name h3(classes = "api-name") { //id = node.signatureForAnchor(logger).urlEncoded() - +node.name + +node.prettyName } apiAndDeprecatedVersions(node) pre(classes = "api-signature no-pretty-print") { renderedSignature(node, LanguageService.RenderMode.FULL) } diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt index 91808f8bf..b94886693 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormat.kt @@ -119,7 +119,7 @@ fun DocumentationNode.signatureForAnchor(logger: DokkaLogger): String { append("Companion.") } appendReceiverIfSo() - append(name) + append(prettyName) details(NodeKind.Parameter).joinTo(this, prefix = "(", postfix = ")") { it.detail(NodeKind.Type).qualifiedNameFromType() } } NodeKind.Property, NodeKind.CompanionObjectProperty -> buildString { diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index a04a9187c..f12128f64 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -253,7 +253,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( renderedSignature(receiver.detail(NodeKind.Type), SUMMARY) +"." } - a(href = node) { +node.name } + a(href = node) { +node.prettyName } shortFunctionParametersList(node) } } diff --git a/core/src/main/kotlin/Model/DocumentationNode.kt b/core/src/main/kotlin/Model/DocumentationNode.kt index cf083ce54..c84d4169d 100644 --- a/core/src/main/kotlin/Model/DocumentationNode.kt +++ b/core/src/main/kotlin/Model/DocumentationNode.kt @@ -134,6 +134,12 @@ open class DocumentationNode(val name: String, get() = details(NodeKind.Supertype) val signatureName = detailOrNull(NodeKind.Signature)?.name + val prettyName : String + get() = when(kind) { + NodeKind.Constructor -> owner!!.name + else -> name + } + val superclassType: DocumentationNode? get() = when (kind) { NodeKind.Supertype -> { diff --git a/core/testdata/format/dac/deprecation/dac/Bar.html b/core/testdata/format/dac/deprecation/dac/Bar.html index 9dc323048..7ae5c5c46 100644 --- a/core/testdata/format/dac/deprecation/dac/Bar.html +++ b/core/testdata/format/dac/deprecation/dac/Bar.html @@ -21,7 +21,7 @@ @@ -56,9 +56,9 @@
-

+

This class has been deprecated in favor of Bar.

- +
Bar()

Public constructors

- +
-

<init>

+

Bar

Bar()

Public methods

diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html index 34b8c9386..11a6a5667 100644 --- a/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedBar.html @@ -22,16 +22,16 @@
- +

This class has been deprecated in favor of Bar.

Public constructors

- +
-

<init>

+

DeprecatedBar

DeprecatedBar()

This class has been deprecated in favor of Bar.

diff --git a/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html index 610c46b60..4dcf39c19 100644 --- a/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html +++ b/core/testdata/format/dac/deprecation/dac/DeprecatedFoo.html @@ -21,16 +21,16 @@
- +

Public constructors

- +
-

<init>

+

DeprecatedFoo

DeprecatedFoo()
diff --git a/core/testdata/format/dac/deprecation/dac/Foo.html b/core/testdata/format/dac/deprecation/dac/Foo.html index 76c0760a0..9fe6ad2d2 100644 --- a/core/testdata/format/dac/deprecation/dac/Foo.html +++ b/core/testdata/format/dac/deprecation/dac/Foo.html @@ -21,7 +21,7 @@
- +
Foo()

Public constructors

- +
-

<init>

+

Foo

Foo()

Public methods

diff --git a/core/testdata/format/dac/inheritedMethods/dac/Child.html b/core/testdata/format/dac/inheritedMethods/dac/Child.html index dff52afbe..c645a89e7 100644 --- a/core/testdata/format/dac/inheritedMethods/dac/Child.html +++ b/core/testdata/format/dac/inheritedMethods/dac/Child.html @@ -25,7 +25,7 @@
- +

Public constructors

- +
-

<init>

+

Child

Child()

Public methods

diff --git a/core/testdata/format/dac/inheritedMethods/dac/Parent.html b/core/testdata/format/dac/inheritedMethods/dac/Parent.html index ff9048b96..72b0b72a1 100644 --- a/core/testdata/format/dac/inheritedMethods/dac/Parent.html +++ b/core/testdata/format/dac/inheritedMethods/dac/Parent.html @@ -42,7 +42,7 @@
- +

Public constructors

- +
-

<init>

+

Parent

Parent()

Public methods

diff --git a/core/testdata/format/dac/javaClassLinks/dac/Bar.html b/core/testdata/format/dac/javaClassLinks/dac/Bar.html index 87f2c3adf..c8961e07f 100644 --- a/core/testdata/format/dac/javaClassLinks/dac/Bar.html +++ b/core/testdata/format/dac/javaClassLinks/dac/Bar.html @@ -21,7 +21,7 @@
- +
Bar()

Public constructors

- +
-

<init>

+

Bar

Bar()
diff --git a/core/testdata/format/dac/javaClassLinks/dac/Foo.html b/core/testdata/format/dac/javaClassLinks/dac/Foo.html index 51ba0204c..b1ed934c3 100644 --- a/core/testdata/format/dac/javaClassLinks/dac/Foo.html +++ b/core/testdata/format/dac/javaClassLinks/dac/Foo.html @@ -21,16 +21,16 @@
- +
Foo()

Public constructors

- +
-

<init>

+

Foo

Foo()
diff --git a/core/testdata/format/dac/javaConstructor/Foo.java b/core/testdata/format/dac/javaConstructor/Foo.java index 0a2b05268..4d70be4fb 100644 --- a/core/testdata/format/dac/javaConstructor/Foo.java +++ b/core/testdata/format/dac/javaConstructor/Foo.java @@ -1,2 +1,4 @@ public class Foo { + public Foo() {} + public Foo(String value) {} } \ No newline at end of file diff --git a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html index bddb7ff8a..01cb1bb19 100644 --- a/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html +++ b/core/testdata/format/dac/javaConstructor/dac-as-java/Foo.html @@ -25,6 +25,12 @@

+
Foo(String value)
+

+

Public constructors

@@ -33,5 +39,10 @@

Foo

public Foo()
+ +
+

Foo

+
public Foo(String value)
+
diff --git a/core/testdata/format/dac/javaConstructor/dac/Foo.html b/core/testdata/format/dac/javaConstructor/dac/Foo.html index 51ba0204c..948d024b8 100644 --- a/core/testdata/format/dac/javaConstructor/dac/Foo.html +++ b/core/testdata/format/dac/javaConstructor/dac/Foo.html @@ -21,17 +21,28 @@
- +
Foo()
+

+
+
Foo(value: String!)

Public constructors

- +
-

<init>

+

Foo

Foo()
+ +
+

Foo

+
Foo(value: String!)
+
diff --git a/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html b/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html index 51ba0204c..b1ed934c3 100644 --- a/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html +++ b/core/testdata/format/dac/javaDefaultConstructor/dac/Foo.html @@ -21,16 +21,16 @@
- +
Foo()

Public constructors

- +
-

<init>

+

Foo

Foo()
diff --git a/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html b/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html index 0bcdcae90..b4dddf185 100644 --- a/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html +++ b/core/testdata/format/dac/javaMethodVisibilities/dac/Foo.html @@ -21,7 +21,7 @@
- +
Foo()

Public constructors

- +
-

<init>

+

Foo

Foo()

Public methods

diff --git a/core/testdata/format/dac/javaSeeTag/dac/Bar.html b/core/testdata/format/dac/javaSeeTag/dac/Bar.html index 10a5f59ed..c21dfb27b 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Bar.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Bar.html @@ -21,16 +21,16 @@
- +
Bar()

Public constructors

- +
-

<init>

+

Bar

Bar()

See Also

diff --git a/core/testdata/format/dac/javaSeeTag/dac/Foo.html b/core/testdata/format/dac/javaSeeTag/dac/Foo.html index 7ca410c06..7640805ff 100644 --- a/core/testdata/format/dac/javaSeeTag/dac/Foo.html +++ b/core/testdata/format/dac/javaSeeTag/dac/Foo.html @@ -21,7 +21,7 @@
- +
Foo()

Public constructors

- +
-

<init>

+

Foo

Foo()

See Also

-- cgit v1.2.3 From 1e42b16f028c1f90b3fc43416b81ec072914d7ff Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Fri, 12 Feb 2021 18:25:31 -0800 Subject: [LSC] Add LOCAL_LICENSE_KINDS to external/dokka Added SPDX-license-identifier-Apache-2.0 to: Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I903ebc835286fbb618037e56e02f1916aadf4581 --- Android.bp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Android.bp b/Android.bp index e613720d8..ba7933be7 100644 --- a/Android.bp +++ b/Android.bp @@ -12,6 +12,29 @@ // See the License for the specific language governing permissions and // limitations under the License. +package { + default_applicable_licenses: ["external_dokka_license"], +} + +// Added automatically by a large-scale-change +// +// large-scale-change included anything that looked like it might be a license +// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. +// +// Please consider removing redundant or irrelevant files from 'license_text:'. +// See: http://go/android-license-faq +license { + name: "external_dokka_license", + visibility: [":__subpackages__"], + license_kinds: [ + "SPDX-license-identifier-Apache-2.0", + ], + license_text: [ + "LICENSE", + "NOTICE", + ], +} + java_binary_host { name: "dokka", srcs: [ -- cgit v1.2.3 From 1ba19b6c059519854879eef5f0ddb4937f22779a Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Tue, 20 Apr 2021 14:03:08 -0700 Subject: Annotate two properties in DokkaTask DokkaTask#outputDirectory as internal DokkaTask#reportNotDocumented as input Gradle 7.0 requires explict marking of all properties. Test: None Change-Id: I00e13eff666a965dc31b70ac31eb506522836b56 --- gradle.properties | 2 +- runners/gradle-plugin/src/main/kotlin/main.kt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 263eb1530..2117d734f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -dokka_version=0.9.17-g013 +dokka_version=0.9.17-g014 dokka_publication_channel=dokka #Kotlin compiler and plugin diff --git a/runners/gradle-plugin/src/main/kotlin/main.kt b/runners/gradle-plugin/src/main/kotlin/main.kt index 74a2af46b..9555fa828 100644 --- a/runners/gradle-plugin/src/main/kotlin/main.kt +++ b/runners/gradle-plugin/src/main/kotlin/main.kt @@ -79,6 +79,7 @@ open class DokkaTask : DefaultTask() { var moduleName: String = "" @Input var outputFormat: String = "html" + @get:Internal // handled by getOutputDirectoryAsFile var outputDirectory: String = "" @@ -118,6 +119,7 @@ open class DokkaTask : DefaultTask() { @Input var outlineRoot: String = "" @Input var dacRoot: String = "" + @get:Input @Deprecated(`deprecationMessage reportNotDocumented`, replaceWith = ReplaceWith("reportUndocumented")) var reportNotDocumented get() = reportUndocumented -- cgit v1.2.3 From e685f310ce1f492132cc49e5074c9a0779f57b53 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Mon, 10 May 2021 15:43:05 -0700 Subject: Make dokka compile with Kotlin 1.5 Update a number of implicit receivers to explicit ones. Test: make dokka -> now passes Change-Id: Ie5778923137694ca0c896de1717e75b95d9d710a --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 58 +++++++++++----------- .../JavaLayoutHtmlFormatOutputBuilder.kt | 52 +++++++++---------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index bc6429bf5..e2399435b 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -281,7 +281,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } override fun FlowContent.classLikeSummaries(page: Page.ClassPage) = with(page) { - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( nestedClasses, header = "Nested classes", summaryId = "nestedclasses", @@ -291,7 +291,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( nestedClassSummaryRow(it) } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( attributes, header="XML attributes", summaryId="lattrs", @@ -301,7 +301,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( xmlAttributeRow(it) } - expandableSummaryNodeGroupForInheritedMembers( + this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedAttributes.entries, header="Inherited XML attributes", tableId="inhattrs", @@ -309,7 +309,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedXmlAttributeRow(it)} ) - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( constants, header = "Constants", summaryId = "constants", @@ -317,7 +317,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( headerAsRow = true ) { propertyLikeSummaryRow(it) } - expandableSummaryNodeGroupForInheritedMembers( + this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedConstants.entries, header = "Inherited constants", tableId = "inhconstants", @@ -326,7 +326,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) constructors.forEach { (visibility, group) -> - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( group, header = "${visibility.capitalize()} constructors", summaryId = "${visibility.take(3)}ctors", @@ -337,7 +337,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( enumValues, header = "Enum values", summaryId = "enumvalues", @@ -348,7 +348,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } functions.forEach { (visibility, group) -> - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( group, header = "${visibility.capitalize()} methods", summaryId = "${visibility.take(3)}methods", @@ -359,7 +359,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( companionFunctions, header = "Companion functions", summaryId = "compmethods", @@ -369,7 +369,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - expandableSummaryNodeGroupForInheritedMembers( + this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedFunctionsByReceiver.entries, header = "Inherited functions", tableId = "inhmethods", @@ -377,7 +377,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( extensionFunctions.entries, header = "Extension functions", summaryId = "extmethods", @@ -388,7 +388,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedExtensionFunctions.entries, header = "Inherited extension functions", summaryId = "inhextmethods", @@ -401,7 +401,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } fields.forEach { (visibility, group) -> - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( group, header = "${visibility.capitalize()} fields", summaryId = "${visibility.take(3)}fields", @@ -410,7 +410,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) { propertyLikeSummaryRow(it) } } - expandableSummaryNodeGroupForInheritedMembers( + this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedFieldsByReceiver.entries, header = "Inherited fields", tableId = "inhfields", @@ -418,7 +418,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( properties, header = "Properties", summaryId = "properties", @@ -427,7 +427,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) { propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( companionProperties, "Companion properties", headerAsRow = true @@ -435,7 +435,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - expandableSummaryNodeGroupForInheritedMembers( + this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedPropertiesByReceiver.entries, header = "Inherited properties", tableId = "inhfields", @@ -443,7 +443,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( extensionProperties.entries, "Extension properties", headerAsRow = true @@ -453,7 +453,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedExtensionProperties.entries, "Inherited extension properties", headerAsRow = true @@ -514,14 +514,14 @@ class DevsiteLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) - summaryNodeGroup(page.interfaces.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Interfaces", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.classes.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Classes", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.exceptions.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Exceptions", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.typeAliases.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Type-aliases", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.annotations.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Annotations", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.enums.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Enums", headerAsRow = false) { classLikeRow(it) } - - summaryNodeGroup( + this@composePage.summaryNodeGroup(page.interfaces.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Interfaces", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.classes.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Classes", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.exceptions.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Exceptions", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.typeAliases.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Type-aliases", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.annotations.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Annotations", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.enums.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Enums", headerAsRow = false) { classLikeRow(it) } + + this@composePage.summaryNodeGroup( page.constants.sortedBy { it.name }, "Top-level constants summary", headerAsRow = false @@ -529,7 +529,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.functions.sortedBy { it.name }, "Top-level functions summary", headerAsRow = false @@ -537,7 +537,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.properties.sortedBy { it.name }, "Top-level properties summary", headerAsRow = false diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index f12128f64..2711a2df9 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -392,14 +392,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) - summaryNodeGroup(page.interfaces, "Interfaces", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.classes, "Classes", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.exceptions, "Exceptions", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.typeAliases, "Type-aliases", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.annotations, "Annotations", headerAsRow = false) { classLikeRow(it) } - summaryNodeGroup(page.enums, "Enums", headerAsRow = false) { classLikeRow(it) } - - summaryNodeGroup( + this@composePage.summaryNodeGroup(page.interfaces, "Interfaces", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.classes, "Classes", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.exceptions, "Exceptions", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.typeAliases, "Type-aliases", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.annotations, "Annotations", headerAsRow = false) { classLikeRow(it) } + this@composePage.summaryNodeGroup(page.enums, "Enums", headerAsRow = false) { classLikeRow(it) } + + this@composePage.summaryNodeGroup( page.constants, "Top-level constants summary", headerAsRow = false @@ -407,7 +407,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.functions, "Top-level functions summary", headerAsRow = false @@ -415,7 +415,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.properties, "Top-level properties summary", headerAsRow = false @@ -423,7 +423,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.extensionFunctions.entries, "Extension functions summary", headerAsRow = false @@ -433,7 +433,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } } - summaryNodeGroup( + this@composePage.summaryNodeGroup( page.extensionProperties.entries, "Extension properties summary", headerAsRow = false @@ -528,7 +528,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } protected open fun FlowContent.classLikeSummaries(page: Page.ClassPage) = with(page) { - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( nestedClasses, "Nested classes", headerAsRow = true @@ -536,14 +536,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( nestedClassSummaryRow(it) } - summaryNodeGroup(enumValues, "Enum values") { + this@classLikeSummaries.summaryNodeGroup(enumValues, "Enum values") { propertyLikeSummaryRow(it) } - summaryNodeGroup(constants, "Constants") { propertyLikeSummaryRow(it) } + this@classLikeSummaries.summaryNodeGroup(constants, "Constants") { propertyLikeSummaryRow(it) } constructors.forEach { (visibility, group) -> - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( group, "${visibility.capitalize()} constructors", headerAsRow = true @@ -553,7 +553,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } functions.forEach { (visibility, group) -> - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( group, "${visibility.capitalize()} functions", headerAsRow = true @@ -562,14 +562,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( companionFunctions, "Companion functions", headerAsRow = true ) { functionLikeSummaryRow(it) } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedFunctionsByReceiver.entries, "Inherited functions", headerAsRow = true @@ -578,7 +578,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( extensionFunctions.entries, "Extension functions", headerAsRow = true @@ -587,7 +587,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedExtensionFunctions.entries, "Inherited extension functions", headerAsRow = true @@ -598,8 +598,8 @@ open class JavaLayoutHtmlFormatOutputBuilder( } - summaryNodeGroup(properties, "Properties", headerAsRow = true) { propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup(properties, "Properties", headerAsRow = true) { propertyLikeSummaryRow(it) } + this@classLikeSummaries.summaryNodeGroup( companionProperties, "Companion properties", headerAsRow = true @@ -607,7 +607,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedPropertiesByReceiver.entries, "Inherited properties", headerAsRow = true @@ -616,7 +616,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( extensionProperties.entries, "Extension properties", headerAsRow = true @@ -625,7 +625,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } } - summaryNodeGroup( + this@classLikeSummaries.summaryNodeGroup( inheritedExtensionProperties.entries, "Inherited extension properties", headerAsRow = true -- cgit v1.2.3 From 2d1d7e3f3541bf2610ae9bc0658641c9b4aff0c9 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Wed, 12 May 2021 21:55:53 +0000 Subject: Revert "Make dokka compile with Kotlin 1.5" This reverts commit e685f310ce1f492132cc49e5074c9a0779f57b53. Reason for revert: b/187908823 Change-Id: I0e5af68fcd8aa687b8a289503f2edf310b567af2 --- core/src/main/kotlin/Formats/DacHtmlFormat.kt | 58 +++++++++++----------- .../JavaLayoutHtmlFormatOutputBuilder.kt | 52 +++++++++---------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/core/src/main/kotlin/Formats/DacHtmlFormat.kt b/core/src/main/kotlin/Formats/DacHtmlFormat.kt index e2399435b..bc6429bf5 100644 --- a/core/src/main/kotlin/Formats/DacHtmlFormat.kt +++ b/core/src/main/kotlin/Formats/DacHtmlFormat.kt @@ -281,7 +281,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } override fun FlowContent.classLikeSummaries(page: Page.ClassPage) = with(page) { - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( nestedClasses, header = "Nested classes", summaryId = "nestedclasses", @@ -291,7 +291,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( nestedClassSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( attributes, header="XML attributes", summaryId="lattrs", @@ -301,7 +301,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( xmlAttributeRow(it) } - this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( + expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedAttributes.entries, header="Inherited XML attributes", tableId="inhattrs", @@ -309,7 +309,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedXmlAttributeRow(it)} ) - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( constants, header = "Constants", summaryId = "constants", @@ -317,7 +317,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( headerAsRow = true ) { propertyLikeSummaryRow(it) } - this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( + expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedConstants.entries, header = "Inherited constants", tableId = "inhconstants", @@ -326,7 +326,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) constructors.forEach { (visibility, group) -> - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( group, header = "${visibility.capitalize()} constructors", summaryId = "${visibility.take(3)}ctors", @@ -337,7 +337,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( enumValues, header = "Enum values", summaryId = "enumvalues", @@ -348,7 +348,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } functions.forEach { (visibility, group) -> - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( group, header = "${visibility.capitalize()} methods", summaryId = "${visibility.take(3)}methods", @@ -359,7 +359,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( companionFunctions, header = "Companion functions", summaryId = "compmethods", @@ -369,7 +369,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( + expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedFunctionsByReceiver.entries, header = "Inherited functions", tableId = "inhmethods", @@ -377,7 +377,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( extensionFunctions.entries, header = "Extension functions", summaryId = "extmethods", @@ -388,7 +388,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedExtensionFunctions.entries, header = "Inherited extension functions", summaryId = "inhextmethods", @@ -401,7 +401,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } fields.forEach { (visibility, group) -> - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( group, header = "${visibility.capitalize()} fields", summaryId = "${visibility.take(3)}fields", @@ -410,7 +410,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) { propertyLikeSummaryRow(it) } } - this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( + expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedFieldsByReceiver.entries, header = "Inherited fields", tableId = "inhfields", @@ -418,7 +418,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( properties, header = "Properties", summaryId = "properties", @@ -427,7 +427,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( ) { propertyLikeSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( companionProperties, "Companion properties", headerAsRow = true @@ -435,7 +435,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - this@classLikeSummaries.expandableSummaryNodeGroupForInheritedMembers( + expandableSummaryNodeGroupForInheritedMembers( superClasses = inheritedPropertiesByReceiver.entries, header = "Inherited properties", tableId = "inhfields", @@ -443,7 +443,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( row = { inheritedMemberRow(it) } ) - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( extensionProperties.entries, "Extension properties", headerAsRow = true @@ -453,7 +453,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedExtensionProperties.entries, "Inherited extension properties", headerAsRow = true @@ -514,14 +514,14 @@ class DevsiteLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) - this@composePage.summaryNodeGroup(page.interfaces.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Interfaces", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.classes.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Classes", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.exceptions.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Exceptions", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.typeAliases.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Type-aliases", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.annotations.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Annotations", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.enums.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Enums", headerAsRow = false) { classLikeRow(it) } - - this@composePage.summaryNodeGroup( + summaryNodeGroup(page.interfaces.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Interfaces", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.classes.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Classes", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.exceptions.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Exceptions", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.typeAliases.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Type-aliases", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.annotations.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Annotations", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.enums.sortedBy { it.nameWithOuterClass().toLowerCase() }, "Enums", headerAsRow = false) { classLikeRow(it) } + + summaryNodeGroup( page.constants.sortedBy { it.name }, "Top-level constants summary", headerAsRow = false @@ -529,7 +529,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.functions.sortedBy { it.name }, "Top-level functions summary", headerAsRow = false @@ -537,7 +537,7 @@ class DevsiteLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.properties.sortedBy { it.name }, "Top-level properties summary", headerAsRow = false diff --git a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt index 2711a2df9..f12128f64 100644 --- a/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt +++ b/core/src/main/kotlin/Formats/JavaLayoutHtml/JavaLayoutHtmlFormatOutputBuilder.kt @@ -392,14 +392,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( bodyContent = { h1 { +page.node.name } nodeContent(page.node) - this@composePage.summaryNodeGroup(page.interfaces, "Interfaces", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.classes, "Classes", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.exceptions, "Exceptions", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.typeAliases, "Type-aliases", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.annotations, "Annotations", headerAsRow = false) { classLikeRow(it) } - this@composePage.summaryNodeGroup(page.enums, "Enums", headerAsRow = false) { classLikeRow(it) } - - this@composePage.summaryNodeGroup( + summaryNodeGroup(page.interfaces, "Interfaces", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.classes, "Classes", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.exceptions, "Exceptions", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.typeAliases, "Type-aliases", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.annotations, "Annotations", headerAsRow = false) { classLikeRow(it) } + summaryNodeGroup(page.enums, "Enums", headerAsRow = false) { classLikeRow(it) } + + summaryNodeGroup( page.constants, "Top-level constants summary", headerAsRow = false @@ -407,7 +407,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.functions, "Top-level functions summary", headerAsRow = false @@ -415,7 +415,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.properties, "Top-level properties summary", headerAsRow = false @@ -423,7 +423,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.extensionFunctions.entries, "Extension functions summary", headerAsRow = false @@ -433,7 +433,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } } - this@composePage.summaryNodeGroup( + summaryNodeGroup( page.extensionProperties.entries, "Extension properties summary", headerAsRow = false @@ -528,7 +528,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } protected open fun FlowContent.classLikeSummaries(page: Page.ClassPage) = with(page) { - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( nestedClasses, "Nested classes", headerAsRow = true @@ -536,14 +536,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( nestedClassSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup(enumValues, "Enum values") { + summaryNodeGroup(enumValues, "Enum values") { propertyLikeSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup(constants, "Constants") { propertyLikeSummaryRow(it) } + summaryNodeGroup(constants, "Constants") { propertyLikeSummaryRow(it) } constructors.forEach { (visibility, group) -> - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( group, "${visibility.capitalize()} constructors", headerAsRow = true @@ -553,7 +553,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( } functions.forEach { (visibility, group) -> - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( group, "${visibility.capitalize()} functions", headerAsRow = true @@ -562,14 +562,14 @@ open class JavaLayoutHtmlFormatOutputBuilder( } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( companionFunctions, "Companion functions", headerAsRow = true ) { functionLikeSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedFunctionsByReceiver.entries, "Inherited functions", headerAsRow = true @@ -578,7 +578,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( extensionFunctions.entries, "Extension functions", headerAsRow = true @@ -587,7 +587,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( functionLikeSummaryRow(it) } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedExtensionFunctions.entries, "Inherited extension functions", headerAsRow = true @@ -598,8 +598,8 @@ open class JavaLayoutHtmlFormatOutputBuilder( } - this@classLikeSummaries.summaryNodeGroup(properties, "Properties", headerAsRow = true) { propertyLikeSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup(properties, "Properties", headerAsRow = true) { propertyLikeSummaryRow(it) } + summaryNodeGroup( companionProperties, "Companion properties", headerAsRow = true @@ -607,7 +607,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedPropertiesByReceiver.entries, "Inherited properties", headerAsRow = true @@ -616,7 +616,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( extensionProperties.entries, "Extension properties", headerAsRow = true @@ -625,7 +625,7 @@ open class JavaLayoutHtmlFormatOutputBuilder( propertyLikeSummaryRow(it) } } - this@classLikeSummaries.summaryNodeGroup( + summaryNodeGroup( inheritedExtensionProperties.entries, "Inherited extension properties", headerAsRow = true -- cgit v1.2.3