From 82eb40b633d0e6846b14ddbbce3a79ff40955408 Mon Sep 17 00:00:00 2001 From: "nsingh@pivotal.io" Date: Wed, 9 Jan 2019 08:53:16 -0800 Subject: [PATCH] PT 162742296 - Add separator between boot LS hover content and JDT --- .../ls/jdt/SpringBootJavaHoverProvider.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/jdt/SpringBootJavaHoverProvider.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/jdt/SpringBootJavaHoverProvider.java index 5fdc128f3..0ffecf0c8 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/jdt/SpringBootJavaHoverProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/jdt/SpringBootJavaHoverProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2018 Pivotal, Inc. + * Copyright (c) 2017, 2019 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -40,29 +40,29 @@ public class SpringBootJavaHoverProvider extends JavadocHover { // Launch javadoc hover computation in async fashion CompletableFuture javadocHoverFuture = CompletableFuture.supplyAsync( () -> (JavadocBrowserInformationControlInput) super.getHoverInfo2(textViewer, hoverRegion)); - String content = this.lsBasedHover.getHoverInfo(textViewer, hoverRegion); - if (content != null && !content.isEmpty()) { + String bootContent = this.lsBasedHover.getHoverInfo(textViewer, hoverRegion); + if (bootContent != null && !bootContent.isEmpty()) { IJavaElement javaElement = null; JavadocBrowserInformationControlInput previous = null; int leadingImageWidth = 0; JavadocBrowserInformationControlInput input; - String html = ""; + String htmlContentFromOtherLs = ""; try { input = javadocHoverFuture.get(500, TimeUnit.MILLISECONDS); if (input != null) { previous = (JavadocBrowserInformationControlInput) input.getPrevious(); javaElement = input.getElement(); leadingImageWidth = input.getLeadingImageWidth(); - html = input.getHtml(); + htmlContentFromOtherLs = input.getHtml(); } } catch (InterruptedException e) { - html = noJavadocMessage("Javadoc unavailable."); + htmlContentFromOtherLs = noJavadocMessage("Javadoc unavailable."); } catch (ExecutionException e) { - html = noJavadocMessage("Javadoc unavailable. Failed to obtain it."); + htmlContentFromOtherLs = noJavadocMessage("Javadoc unavailable. Failed to obtain it."); } catch (TimeoutException e) { - html = noJavadocMessage("Javadoc unavailable. Took too long to obtain it."); + htmlContentFromOtherLs = noJavadocMessage("Javadoc unavailable. Took too long to obtain it."); } - content = content + html; + String content = formatContent(bootContent, htmlContentFromOtherLs); return new JavadocBrowserInformationControlInput(previous, javaElement, content, leadingImageWidth); } else { javadocHoverFuture.cancel(true); @@ -70,6 +70,17 @@ public class SpringBootJavaHoverProvider extends JavadocHover { return null; } + private String formatContent(String content, String contentFromElsewhere) { + if (content != null && content.trim().length() > 0 && contentFromElsewhere != null + && contentFromElsewhere.trim().length() > 0) { + // PT 162742296 - Introduce a separator between our content and content from + // elsewhere + return content + "
" + contentFromElsewhere; + } else { + return content + contentFromElsewhere; + } + } + private String noJavadocMessage(String message) { StringBuilder sb = new StringBuilder(); sb.append("

");