aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorAurimas Liutikas <aurimas@google.com>2020-01-29 11:52:22 -0800
committerAurimas Liutikas <aurimas@google.com>2020-01-29 15:17:28 -0800
commitadf8cd7d913a55cd2b080967e3a6dee7168b1736 (patch)
tree894976de1ee282275e25a4177fa81995c3773446 /core
parent5291d504c5d5192df860c62564b5f5c1ce741cb6 (diff)
downloaddokka-adf8cd7d913a55cd2b080967e3a6dee7168b1736.tar.gz
Start showing visibility modifiers in full method details.
This matches how doclava and koltin html output handles it. The logic closely matches KotlinLanguageService#renderFunction Bug: 146661040 Test: Modified test data for DacAsJavaFormatTest to match the new expectation of having new visibility modifiers in the method description. Alsod added a new test to test all method visibilities Change-Id: Ie2e15fa9f915f20b2b1ff9b72b2e1e55f60d2f17
Diffstat (limited to 'core')
-rw-r--r--core/src/main/kotlin/Languages/NewJavaLanguageService.kt10
-rw-r--r--core/src/test/kotlin/format/DacAsJavaFormatTest.kt4
-rw-r--r--core/testdata/format/dac-as-java/javaConstructor.html2
-rw-r--r--core/testdata/format/dac-as-java/javaDefaultConstructor.html2
-rw-r--r--core/testdata/format/dac-as-java/javaMethodVisibilities.html113
-rw-r--r--core/testdata/format/dac-as-java/javaMethodVisibilities.java5
-rw-r--r--core/testdata/format/dac-as-java/javaSeeTag.html4
7 files changed, 133 insertions, 7 deletions
diff --git a/core/src/main/kotlin/Languages/NewJavaLanguageService.kt b/core/src/main/kotlin/Languages/NewJavaLanguageService.kt
index 793706a89..10715d0da 100644
--- a/core/src/main/kotlin/Languages/NewJavaLanguageService.kt
+++ b/core/src/main/kotlin/Languages/NewJavaLanguageService.kt
@@ -8,7 +8,7 @@ import org.jetbrains.dokka.LanguageService.RenderMode
*/
class NewJavaLanguageService : CommonLanguageService() {
override fun showModifierInSummary(node: DocumentationNode): Boolean {
- return true
+ return node.name !in fullOnlyModifiers
}
private val fullOnlyModifiers = setOf("public", "protected", "private")
@@ -25,7 +25,7 @@ class NewJavaLanguageService : CommonLanguageService() {
NodeKind.UpperBound -> renderType(node)
NodeKind.Parameter -> renderParameter(node)
NodeKind.Constructor,
- NodeKind.Function -> renderFunction(node)
+ NodeKind.Function -> renderFunction(node, renderMode)
NodeKind.Property -> renderProperty(node)
NodeKind.Field -> renderField(node, renderMode)
NodeKind.EnumItem -> renderClass(node, renderMode)
@@ -191,7 +191,11 @@ class NewJavaLanguageService : CommonLanguageService() {
}
}
- private fun ContentBlock.renderFunction(node: DocumentationNode) {
+ private fun ContentBlock.renderFunction(
+ node: DocumentationNode,
+ renderMode: RenderMode
+ ) {
+ renderModifiersForNode(node, renderMode)
when (node.kind) {
NodeKind.Constructor -> identifier(node.owner?.name ?: "")
NodeKind.Function -> {
diff --git a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
index e47240fda..7c625c9b2 100644
--- a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
+++ b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
@@ -31,4 +31,8 @@ class DacAsJavaFormatTest: DacFormatTestCase() {
@Test fun javaDefaultConstructor() {
verifyJavaHtmlNode("javaDefaultConstructor")
}
+
+ @Test fun javaMethodVisibilities() {
+ verifyJavaHtmlNode("javaMethodVisibilities")
+ }
} \ No newline at end of file
diff --git a/core/testdata/format/dac-as-java/javaConstructor.html b/core/testdata/format/dac-as-java/javaConstructor.html
index a28232bf7..5717ecf6b 100644
--- a/core/testdata/format/dac-as-java/javaConstructor.html
+++ b/core/testdata/format/dac-as-java/javaConstructor.html
@@ -35,7 +35,7 @@
<a name="Foo()"></a>
<div class="api apilevel-" data-version-added="">
<h3 class="api-name">Foo</h3>
- <pre class="api-signature no-pretty-print"><span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
</div>
</body>
</html>
diff --git a/core/testdata/format/dac-as-java/javaDefaultConstructor.html b/core/testdata/format/dac-as-java/javaDefaultConstructor.html
index a28232bf7..5717ecf6b 100644
--- a/core/testdata/format/dac-as-java/javaDefaultConstructor.html
+++ b/core/testdata/format/dac-as-java/javaDefaultConstructor.html
@@ -35,7 +35,7 @@
<a name="Foo()"></a>
<div class="api apilevel-" data-version-added="">
<h3 class="api-name">Foo</h3>
- <pre class="api-signature no-pretty-print"><span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
</div>
</body>
</html>
diff --git a/core/testdata/format/dac-as-java/javaMethodVisibilities.html b/core/testdata/format/dac-as-java/javaMethodVisibilities.html
new file mode 100644
index 000000000..7f494c467
--- /dev/null
+++ b/core/testdata/format/dac-as-java/javaMethodVisibilities.html
@@ -0,0 +1,113 @@
+<html devsite="true">
+ <head>
+ <title>Foo</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "_shared/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="api-info-block"></div>
+ <h1>Foo</h1>
+ <pre><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Foo</span> <span class="keyword">implements</span> <span class="identifier">java.lang.Object</span></pre>
+ <table class="jd-inheritance-table">
+ <tr>
+ <td class="jd-inheritance-class-cell" colSpan="1"><a href="#">Foo</a></td>
+ </tr>
+ </table>
+ <h2>Summary</h2>
+ <table class="responsive" id="pubctors">
+ <tbody>
+ <tr>
+ <th colSpan="2">
+ <devsite-heading ds-is="heading" text="Public constructors" id="pubctors" level="h3" toc="" class="">
+ <h3 is-upgraded="">Public constructors</h3>
+ </devsite-heading>
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <div><code><a href="#Foo()">Foo</a>()</code></div>
+ <p></p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table class="responsive" id="pubmethods">
+ <tbody>
+ <tr>
+ <th colSpan="2">
+ <devsite-heading ds-is="heading" text="Public methods" id="pubmethods" level="h3" toc="" class="">
+ <h3 is-upgraded="">Public methods</h3>
+ </devsite-heading>
+ </th>
+ </tr>
+ <tr>
+ <td><span class="identifier">void</span></td>
+ <td>
+ <div><code><a href="#publicBar()">publicBar</a>()</code></div>
+ <p></p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table class="responsive" id="promethods">
+ <tbody>
+ <tr>
+ <th colSpan="2">
+ <devsite-heading ds-is="heading" text="Protected methods" id="promethods" level="h3" toc="" class="">
+ <h3 is-upgraded="">Protected methods</h3>
+ </devsite-heading>
+ </th>
+ </tr>
+ <tr>
+ <td><span class="identifier">void</span></td>
+ <td>
+ <div><code><a href="#protectedBar()">protectedBar</a>()</code></div>
+ <p></p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table class="responsive" id="primethods">
+ <tbody>
+ <tr>
+ <th colSpan="2">
+ <devsite-heading ds-is="heading" text="Private methods" id="primethods" level="h3" toc="" class="">
+ <h3 is-upgraded="">Private methods</h3>
+ </devsite-heading>
+ </th>
+ </tr>
+ <tr>
+ <td><span class="identifier">void</span></td>
+ <td>
+ <div><code><a href="#privateBar()">privateBar</a>()</code></div>
+ <p></p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <h2>Public constructors</h2>
+<a name="Foo()"></a>
+ <div class="api apilevel-" data-version-added="">
+ <h3 class="api-name">Foo</h3>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ </div>
+ <h2>Public methods</h2>
+<a name="publicBar()"></a>
+ <div class="api apilevel-" data-version-added="">
+ <h3 class="api-name">publicBar</h3>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">void</span> <span class="identifier">publicBar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ </div>
+ <h2>Protected methods</h2>
+<a name="protectedBar()"></a>
+ <div class="api apilevel-" data-version-added="">
+ <h3 class="api-name">protectedBar</h3>
+ <pre class="api-signature no-pretty-print"><span class="keyword">protected</span> <span class="identifier">void</span> <span class="identifier">protectedBar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ </div>
+ <h2>Private methods</h2>
+<a name="privateBar()"></a>
+ <div class="api apilevel-" data-version-added="">
+ <h3 class="api-name">privateBar</h3>
+ <pre class="api-signature no-pretty-print"><span class="keyword">private</span> <span class="identifier">void</span> <span class="identifier">privateBar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ </div>
+ </body>
+</html>
diff --git a/core/testdata/format/dac-as-java/javaMethodVisibilities.java b/core/testdata/format/dac-as-java/javaMethodVisibilities.java
new file mode 100644
index 000000000..936632df9
--- /dev/null
+++ b/core/testdata/format/dac-as-java/javaMethodVisibilities.java
@@ -0,0 +1,5 @@
+public class Foo {
+ public void publicBar() {}
+ protected void protectedBar() {}
+ private void privateBar() {}
+} \ No newline at end of file
diff --git a/core/testdata/format/dac-as-java/javaSeeTag.html b/core/testdata/format/dac-as-java/javaSeeTag.html
index 44ac16841..6a6b5045c 100644
--- a/core/testdata/format/dac-as-java/javaSeeTag.html
+++ b/core/testdata/format/dac-as-java/javaSeeTag.html
@@ -53,13 +53,13 @@
<a name="Foo()"></a>
<div class="api apilevel-" data-version-added="">
<h3 class="api-name">Foo</h3>
- <pre class="api-signature no-pretty-print"><span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">Foo</span><span class="symbol">(</span><span class="symbol">)</span></pre>
</div>
<h2>Public methods</h2>
<a name="bar()"></a>
<div class="api apilevel-" data-version-added="">
<h3 class="api-name">bar</h3>
- <pre class="api-signature no-pretty-print"><span class="identifier">void</span> <span class="identifier">bar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ <pre class="api-signature no-pretty-print"><span class="keyword">public</span> <span class="identifier">void</span> <span class="identifier">bar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
</div>
</body>
</html>