From b4b4512ccd94d1ea2bee94b333d1c3ad0106937e Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Mon, 20 Nov 2017 10:40:42 -0800 Subject: [PATCH] Simplify boot java hover providers api. Remove unused and pointless CompletableFuture wrappers. --- .../boot/java/autowired/AutowiredHoverProvider.java | 5 ++--- .../conditionals/ConditionalsLiveHoverProvider.java | 6 +++--- .../boot/java/handlers/BootJavaHoverProvider.java | 12 ++++++------ .../ide/vscode/boot/java/handlers/HoverProvider.java | 2 +- .../livehover/AbstractInjectedIntoHoverProvider.java | 5 ++--- .../boot/java/livehover/ActiveProfilesProvider.java | 6 +++--- .../requestmapping/RequestMappingHoverProvider.java | 6 +++--- .../vscode/boot/java/value/ValueHoverProvider.java | 6 +++--- 8 files changed, 23 insertions(+), 25 deletions(-) diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java index b2443edc2..a57da1205 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/autowired/AutowiredHoverProvider.java @@ -77,7 +77,7 @@ public class AutowiredHoverProvider implements HoverProvider { } @Override - public CompletableFuture provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, + public Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps) { if (runningApps.length > 0) { @@ -110,8 +110,7 @@ public class AutowiredHoverProvider implements HoverProvider { } } if (hasInterestingApp && hasAutowiring) { - return CompletableFuture - .completedFuture(new Hover(ImmutableList.of(Either.forLeft(hover.toString())))); + return new Hover(ImmutableList.of(Either.forLeft(hover.toString()))); } } } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionals/ConditionalsLiveHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionals/ConditionalsLiveHoverProvider.java index f938b1427..0188d0b11 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionals/ConditionalsLiveHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionals/ConditionalsLiveHoverProvider.java @@ -44,7 +44,7 @@ import com.google.common.collect.ImmutableList; public class ConditionalsLiveHoverProvider implements HoverProvider { @Override - public CompletableFuture provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, + public Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps) { return provideHover(annotation, doc, runningApps); } @@ -85,7 +85,7 @@ public class ConditionalsLiveHoverProvider implements HoverProvider { return Optional.empty(); } - private CompletableFuture provideHover(Annotation annotation, TextDocument doc, + private Hover provideHover(Annotation annotation, TextDocument doc, SpringBootApp[] runningApps) { try { @@ -102,7 +102,7 @@ public class ConditionalsLiveHoverProvider implements HoverProvider { hover.setContents(hoverContent); hover.setRange(hoverRange); - return CompletableFuture.completedFuture(hover); + return hover; } catch (Exception e) { Log.log(e); } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java index ca5dcd0a5..d22b0fbca 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/BootJavaHoverProvider.java @@ -70,9 +70,9 @@ public class BootJavaHoverProvider implements HoverHandler { TextDocument doc = documents.get(params).copy(); try { int offset = doc.toOffset(params.getPosition()); - CompletableFuture hoverResult = provideHover(doc, offset); + Hover hoverResult = provideHover(doc, offset); if (hoverResult != null) { - return hoverResult; + return CompletableFuture.completedFuture(hoverResult); } } catch (Exception e) { @@ -155,7 +155,7 @@ public class BootJavaHoverProvider implements HoverHandler { } } - private CompletableFuture provideHover(TextDocument document, int offset) throws Exception { + private Hover provideHover(TextDocument document, int offset) throws Exception { IJavaProject project = getProject(document).orElse(null); if (project!=null) { CompilationUnit cu = server.getCompilationUnitCache().getCompilationUnit(document); @@ -167,7 +167,7 @@ public class BootJavaHoverProvider implements HoverHandler { return null; } - private CompletableFuture provideHoverForAnnotation(ASTNode node, int offset, TextDocument doc, IJavaProject project) { + private Hover provideHoverForAnnotation(ASTNode node, int offset, TextDocument doc, IJavaProject project) { Annotation annotation = null; while (node != null && !(node instanceof Annotation)) { @@ -200,13 +200,13 @@ public class BootJavaHoverProvider implements HoverHandler { return null; } - private CompletableFuture actuatorWarning(IJavaProject project) { + private Hover actuatorWarning(IJavaProject project) { String hoverText = "**No live hover information available**.\n"+ "\n" + "Live hover providers use various `spring-boot-actuator` endpoints to retrieve information. "+ "Consider adding `spring-boot-actuator` as a dependency to your project `"+project.getElementName()+"`"; - return CompletableFuture.completedFuture(new Hover(ImmutableList.of(Either.forLeft(hoverText)))); + return new Hover(ImmutableList.of(Either.forLeft(hoverText))); } private boolean hasActuatorDependency(IJavaProject project) { diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/HoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/HoverProvider.java index 71d60ebb2..badef24c5 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/HoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/handlers/HoverProvider.java @@ -27,7 +27,7 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument; */ public interface HoverProvider { - CompletableFuture provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps); + Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps); Collection getLiveHoverHints(Annotation annotation, TextDocument doc, SpringBootApp[] runningApps); } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/AbstractInjectedIntoHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/AbstractInjectedIntoHoverProvider.java index 6ce016531..1f2a8a857 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/AbstractInjectedIntoHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/AbstractInjectedIntoHoverProvider.java @@ -58,7 +58,7 @@ public abstract class AbstractInjectedIntoHoverProvider implements HoverProvider } @Override - public CompletableFuture provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, + public Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps) { if (runningApps.length > 0) { @@ -87,8 +87,7 @@ public abstract class AbstractInjectedIntoHoverProvider implements HoverProvider } } if (hasInterestingApp) { - return CompletableFuture - .completedFuture(new Hover(ImmutableList.of(Either.forLeft(hover.toString())))); + return new Hover(ImmutableList.of(Either.forLeft(hover.toString()))); } } } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ActiveProfilesProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ActiveProfilesProvider.java index 3a72e2ca6..8d05e0996 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ActiveProfilesProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/livehover/ActiveProfilesProvider.java @@ -43,7 +43,7 @@ import com.google.common.collect.ImmutableSet; public class ActiveProfilesProvider implements HoverProvider { @Override - public CompletableFuture provideHover( + public Hover provideHover( ASTNode node, Annotation annotation, ITypeBinding type, @@ -67,9 +67,9 @@ public class ActiveProfilesProvider implements HoverProvider { markdown.append("\n"); } } - return CompletableFuture.completedFuture(new Hover( + return new Hover( ImmutableList.of(Either.forLeft(markdown.toString())) - )); + ); } return null; } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java index c2eead0d9..d3e8ca6b9 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/requestmapping/RequestMappingHoverProvider.java @@ -49,7 +49,7 @@ import reactor.util.function.Tuples; public class RequestMappingHoverProvider implements HoverProvider { @Override - public CompletableFuture provideHover(ASTNode node, Annotation annotation, + public Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps) { return provideHover(annotation, doc, runningApps); } @@ -72,7 +72,7 @@ public class RequestMappingHoverProvider implements HoverProvider { return null; } - private CompletableFuture provideHover(Annotation annotation, TextDocument doc, SpringBootApp[] runningApps) { + private Hover provideHover(Annotation annotation, TextDocument doc, SpringBootApp[] runningApps) { try { List> hoverContent = new ArrayList<>(); @@ -89,7 +89,7 @@ public class RequestMappingHoverProvider implements HoverProvider { hover.setContents(hoverContent); hover.setRange(hoverRange); - return CompletableFuture.completedFuture(hover); + return hover; } catch (Exception e) { Log.log(e); } diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueHoverProvider.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueHoverProvider.java index 3d034e081..e076ee130 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueHoverProvider.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueHoverProvider.java @@ -37,7 +37,7 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument; public class ValueHoverProvider implements HoverProvider { @Override - public CompletableFuture provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, + public Hover provideHover(ASTNode node, Annotation annotation, ITypeBinding type, int offset, TextDocument doc, IJavaProject project, SpringBootApp[] runningApps) { try { @@ -67,7 +67,7 @@ public class ValueHoverProvider implements HoverProvider { return null; } - private CompletableFuture provideHover(String value, int offset, int nodeStartOffset, TextDocument doc, SpringBootApp[] runningApps) { + private Hover provideHover(String value, int offset, int nodeStartOffset, TextDocument doc, SpringBootApp[] runningApps) { try { LocalRange range = getPropertyRange(value, offset); @@ -104,7 +104,7 @@ public class ValueHoverProvider implements HoverProvider { hover.setContents(hoverContent); hover.setRange(hoverRange); - return CompletableFuture.completedFuture(hover); + return hover; } } }