Short documentation for completion proposals

This commit is contained in:
BoykoAlex
2016-12-07 11:33:24 -05:00
parent 8c10b582c4
commit 6058f12b73
3 changed files with 60 additions and 10 deletions

View File

@@ -32,19 +32,25 @@ public abstract class AbstractPropertyRenderableProvider {
if (type==null) {
type = Object.class.getName();
}
renderableBuilder.add(lineBreak());
actionLink(renderableBuilder, type);
String deflt = formatDefaultValue(getDefaultValue());
if (deflt!=null) {
renderableBuilder.add(lineBreak());
renderableBuilder.add(lineBreak());
defaultValueRenderable(renderableBuilder, deflt);
}
if (isDeprecated()) {
renderableBuilder.add(lineBreak());
renderableBuilder.add(lineBreak());
depreactionRenderable(renderableBuilder);
}
Renderable description = getDescription();
if (description!=null) {
renderableBuilder.add(lineBreak());
descriptionRenderable(renderableBuilder, description);
}
@@ -97,20 +103,15 @@ public abstract class AbstractPropertyRenderableProvider {
* link then the provided runnable is to be executed.
*/
public void actionLink(Builder<Renderable> renderableBuilder, String displayString) {
renderableBuilder.add(lineBreak());
renderableBuilder.add(link(displayString, "null"));
}
private void defaultValueRenderable(Builder<Renderable> renderableBuilder, String defaultValue) {
renderableBuilder.add(lineBreak());
renderableBuilder.add(lineBreak());
protected void defaultValueRenderable(Builder<Renderable> renderableBuilder, String defaultValue) {
renderableBuilder.add(text("Default: "));
renderableBuilder.add(italic(text(defaultValue)));
}
private void depreactionRenderable(Builder<Renderable> renderableBuilder) {
renderableBuilder.add(lineBreak());
renderableBuilder.add(lineBreak());
protected void depreactionRenderable(Builder<Renderable> renderableBuilder) {
String reason = getDeprecationReason();
if (StringUtil.hasText(reason)) {
renderableBuilder.add(bold(text("Deprecated: ")));
@@ -120,8 +121,7 @@ public abstract class AbstractPropertyRenderableProvider {
}
}
private void descriptionRenderable(Builder<Renderable> renderableBuilder, Renderable description) {
renderableBuilder.add(lineBreak());
protected void descriptionRenderable(Builder<Renderable> renderableBuilder, Renderable description) {
renderableBuilder.add(paragraph(description));
}

View File

@@ -133,7 +133,7 @@ public class PropertyCompletionFactory {
super(doc, applier);
this.typeUtil = typeUtil;
this.match = match;
this.propertyRenderable = Suppliers.memoize(() -> new PropertyRenderableProvider(documentContextFinder.find(fDoc), match.data));
this.propertyRenderable = Suppliers.memoize(() -> new ShortDocumentationRenderableProvider(documentContextFinder.find(fDoc), match.data));
if (match.data.isDeprecated()) {
deprecate();
}

View File

@@ -0,0 +1,50 @@
package org.springframework.ide.vscode.boot.common;
import static org.springframework.ide.vscode.commons.util.Renderables.concat;
import static org.springframework.ide.vscode.commons.util.Renderables.lineBreak;
import org.springframework.ide.vscode.application.properties.metadata.PropertyInfo;
import org.springframework.ide.vscode.commons.java.IJavaProject;
import org.springframework.ide.vscode.commons.util.Renderable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
public class ShortDocumentationRenderableProvider extends PropertyRenderableProvider {
public ShortDocumentationRenderableProvider(IJavaProject project, PropertyInfo data) {
super(project, data);
}
@Override
public Renderable getRenderable() {
Builder<Renderable> renderableBuilder = ImmutableList.builder();
Renderable description = getDescription();
if (description!=null) {
descriptionRenderable(renderableBuilder, description);
}
String deflt = formatDefaultValue(getDefaultValue());
if (deflt!=null) {
if (description != null) {
renderableBuilder.add(lineBreak());
}
defaultValueRenderable(renderableBuilder, deflt);
}
if (isDeprecated()) {
if (description != null) {
renderableBuilder.add(lineBreak());
}
depreactionRenderable(renderableBuilder);
}
ImmutableList<Renderable> pieces = renderableBuilder.build();
return pieces.isEmpty() ? null : concat(pieces);
}
}