--- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysis.java Tue Nov 01 14:47:07 2016 -0700
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysis.java Wed Nov 02 07:38:37 2016 +0100
@@ -63,12 +63,16 @@
public abstract List<Suggestion> completionSuggestions(String input, int cursor, int[] anchor);
/**
- * Compute a description/help string for the given user's input.
+ * Compute documentation for the given user's input. Multiple {@code Documentation} objects may
+ * be returned when multiple elements match the user's input (like for overloaded methods).
* @param input the snippet the user wrote so far
* @param cursor the current position of the cursors in the given {@code input} text
- * @return description/help string for the given user's input
+ * @param computeJavadoc true if the javadoc for the given input should be computed in
+ * addition to the signature
+ * @return the documentations for the given user's input, if multiple elements match the input,
+ * multiple {@code Documentation} objects are returned.
*/
- public abstract String documentation(String input, int cursor);
+ public abstract List<Documentation> documentation(String input, int cursor, boolean computeJavadoc);
/**
* Infer the type of the given expression. The expression spans from the beginning of {@code code}
@@ -266,6 +270,26 @@
}
/**
+ * A documentation for a candidate for continuation of the given user's input.
+ */
+ public interface Documentation {
+
+ /**
+ * The signature of the given element.
+ *
+ * @return the signature
+ */
+ String signature();
+
+ /**
+ * The javadoc of the given element.
+ *
+ * @return the javadoc, or null if not found or not requested
+ */
+ String javadoc();
+ }
+
+ /**
* List of possible qualified names.
*/
public static final class QualifiedNames {