Bug 563802 - If no LS hover let JDT hover providers work
Change-Id: I1716e0216b5f9cb85b8155de94895760bab66992
Signed-off-by: BoykoAlex <aboyko@pivotal.io>
diff --git a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaHoverProvider.java b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaHoverProvider.java
index 6709af5..50d2785 100644
--- a/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaHoverProvider.java
+++ b/org.eclipse.lsp4e.jdt/src/org/eclipse/lsp4e/jdt/LSJavaHoverProvider.java
@@ -69,6 +69,10 @@
lsHoverFuture.thenAccept(lsHtmlHoverContent::set)
).get(1000, TimeUnit.MILLISECONDS);
+ if (lsHtmlHoverContent.get() == null) {
+ // No hover content from Language Servers. Return null to let JDT compute the hover using its own Hover Providers
+ return null;
+ }
input = jdtHoverControlInput.get();
if (input != null) {
previous = (JavadocBrowserInformationControlInput) input.getPrevious();
@@ -78,9 +82,13 @@
}
} catch (InterruptedException | ExecutionException e) {
- jdtHtmlHoverContent = noJavadocMessage("Javadoc unavailable. Failed to obtain it.");
+ LanguageServerPlugin.logWarning("Javadoc unavailable. Failed to obtain it.", e);
+ // Return null to let JDT compute the hover using its own Hover Providers
+ return null;
} catch (TimeoutException e) {
- jdtHtmlHoverContent = noJavadocMessage("Javadoc unavailable. Took too long to obtain it.");
+ LanguageServerPlugin.logWarning("Timeout waiting for data to generate LS hover", e);
+ // Return null to let JDT compute the hover using its own Hover Providers
+ return null;
}
/*
@@ -151,14 +159,6 @@
return lsHtml + SEPARATOR + jdtHtml;
}
- private String noJavadocMessage(String message) {
- StringBuilder sb = new StringBuilder();
- sb.append("<h4>");
- sb.append(message);
- sb.append("</h4>");
- return wrapHtml(sb.toString()).toString();
- }
-
@Override
public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
return this.lsBasedHover.getHoverRegion(textViewer, offset);