KT-32163: Open Quick Documentation when cursor inside function / constructor brackets (#2502)

* Show function docs when cursor is in args of the function call

* Show constructor docs when cursor is in args of the constructor call

* Show function docs when cursor is in args of the kt function call

* Add some tests

* Use JavaDocumentationProvider to fetch java method document

* Support caret in params

#KT-32163 fixed
This commit is contained in:
Yuku Kotani
2020-04-28 00:15:24 +09:00
committed by GitHub
parent 6b5b23f37b
commit de28a41caa
8 changed files with 107 additions and 1 deletions
@@ -0,0 +1,7 @@
fun testing() {
SomeClassWithParen("param", 1<caret>)
}
//INFO: <div class='definition'><pre><a href="psi_element://SomeClassWithParen"><code>SomeClassWithParen</code></a><br><i>@Contract(pure = true)</i>&nbsp;
//INFO: public&nbsp;<b>SomeClassWithParen</b>(<a href="psi_element://java.lang.String"><code>String</code></a>&nbsp;str,
//INFO: int&nbsp;num)</pre></div><table class='sections'><p><tr><td valign='top' class='section'><p><i>Inferred</i> annotations:</td><td valign='top'><p><i>@org.jetbrains.annotations.Contract(pure = true)</i></td></table>
@@ -0,0 +1,11 @@
/**
* Some Java Class
*/
public class SomeClassWithParen {
String str;
int num;
public SomeClassWithParen(String str, int num) {
this.str = str;
this.num = num;
}
}
@@ -0,0 +1,10 @@
fun ktTestWithParen() {
TestWithParen.foo("SomeTest", 1<caret>)
}
//INFO: <div class='definition'><pre><a href="psi_element://TestWithParen"><code>TestWithParen</code></a><br><i>@Contract(value = &quot;_, _ -&gt; new&quot;,&nbsp;pure = true)</i>&nbsp;
//INFO: <i>@<a href="psi_element://org.jetbrains.annotations.NotNull"><code>NotNull</code></a></i>&nbsp;
//INFO: public static&nbsp;<a href="psi_element://java.lang.Object"><code>Object</code></a>[]&nbsp;<b>foo</b>(<a href="psi_element://java.lang.String"><code>String</code></a>&nbsp;str,
//INFO: int&nbsp;num)</pre></div><div class='content'>
//INFO: Java Method
//INFO: <p></div><table class='sections'><p><tr><td valign='top' class='section'><p><i>Inferred</i> annotations:</td><td valign='top'><p><i>@org.jetbrains.annotations.Contract(value = &quot;_, _ -&gt; new&quot;,&nbsp;pure = true)</i> <i>@<a href="psi_element://org.jetbrains.annotations.NotNull">org.jetbrains.annotations.NotNull</a></i></td></table>
@@ -0,0 +1,8 @@
class TestWithParen {
/**
* Java Method
*/
public static Object[] foo(String str, int num) {
return new Object[0];
}
}
+18
View File
@@ -0,0 +1,18 @@
/**
Some documentation
* @param a Some int
* @param b String
*/
fun testMethod(a: Int, b: String) {
}
fun test() {
testMethod(<caret>1, "value")
}
//INFO: <div class='definition'><pre><font color="808080"><i>OnMethodUsageInParen.kt</i></font><br>public fun <b>testMethod</b>(
//INFO: a: Int,
//INFO: b: String
//INFO: ): Unit</pre></div><div class='content'><p>Some documentation</p></div><table class='sections'><tr><td valign='top' class='section'><p>Params:</td><td valign='top'><p><code>a</code> - Some int<p><code>b</code> - String</td></table>