From fc0ed8840f64a140ebc6ad07663b593b8a4e38ba Mon Sep 17 00:00:00 2001 From: aboyko Date: Mon, 15 Apr 2024 17:49:42 -0400 Subject: [PATCH] JDT LS Extension builds on 2023-12 and supports JDT LS from 2024-03 --- .../jdt/ls/extension/JavadocHoverLinkHandler.java | 11 +++++++++-- headless-services/jdt-ls-extension/pom.xml | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/JavadocHoverLinkHandler.java b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/JavadocHoverLinkHandler.java index d4f717279..56836b45f 100644 --- a/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/JavadocHoverLinkHandler.java +++ b/headless-services/jdt-ls-extension/org.springframework.tooling.jdt.ls.extension/src/org/springframework/tooling/jdt/ls/extension/JavadocHoverLinkHandler.java @@ -10,13 +10,14 @@ *******************************************************************************/ package org.springframework.tooling.jdt.ls.extension; +import java.lang.reflect.Method; import java.net.URI; import java.util.List; import java.util.Map; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.internal.ui.viewsupport.CoreJavaElementLinks; +import org.eclipse.jdt.ls.core.internal.javadoc.JavaElementLinks; import org.eclipse.jdt.ls.core.internal.IDelegateCommandHandler; import org.springframework.tooling.jdt.ls.commons.java.JavaData; @@ -34,7 +35,13 @@ public class JavadocHoverLinkHandler implements IDelegateCommandHandler { if (element != null) { // Bug in JDT server one '(' not encoded while everything else in the query is // encoded - return CoreJavaElementLinks.createURI(null, element).replace("(", "%28"); + try { + Class clazz = getClass().getClassLoader().loadClass("org.eclipse.jdt.internal.ui.viewsupport.CoreJavaElementLinks"); + Method method = clazz.getDeclaredMethod("createURI", String.class, IJavaElement.class); + return method.invoke(null, null, element); + } catch (Exception e) { + return JavaElementLinks.createURI(null, element).replace("(", "%28"); + } } } catch (Exception e) { JdtLsExtensionPlugin.getInstance().getLog().error("Failed to compute java data for " + bindingKey + " in project " + uri, e); diff --git a/headless-services/jdt-ls-extension/pom.xml b/headless-services/jdt-ls-extension/pom.xml index 832c9a8da..2cb12d125 100644 --- a/headless-services/jdt-ls-extension/pom.xml +++ b/headless-services/jdt-ls-extension/pom.xml @@ -97,14 +97,14 @@ eclipse-2023-09 p2 - https://download.eclipse.org/releases/2024-03 + https://download.eclipse.org/releases/2023-12 JDT.LS p2 - https://download.eclipse.org/jdtls/milestones/1.34.0/repository/ + https://download.eclipse.org/jdtls/milestones/1.30.1/repository/