From dce6b105f7c60abc3f38e933838c0648a24ca08b Mon Sep 17 00:00:00 2001 From: aboyko Date: Thu, 16 Mar 2023 17:18:03 -0400 Subject: [PATCH] 'jdt' scheme URI links turned into 'command' scheme URIs --- .../vscode/boot/java/links/JavaServerSourceLinks.java | 11 +++++++++-- vscode-extensions/vscode-spring-boot/lib/Main.ts | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java index 82bce577a..c6c871b32 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/links/JavaServerSourceLinks.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2018, 2019 Pivotal, Inc. + * Copyright (c) 2018, 2023 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 @@ -10,6 +10,8 @@ *******************************************************************************/ package org.springframework.ide.vscode.boot.java.links; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -42,7 +44,12 @@ public class JavaServerSourceLinks implements SourceLinks { CompletableFuture> link = server.getClient().javadocHoverLink(new JavaDataParams(projectUri, bindingKey.toString(), true)) .thenApply(l -> Optional.ofNullable(l)); try { - return link.get(10, TimeUnit.SECONDS); + return link.get(10, TimeUnit.SECONDS).map(s -> { + if (s.startsWith("jdt:/")) { + return "command:java.open.file?" + URLEncoder.encode("[\"" + URLEncoder.encode(s, StandardCharsets.UTF_8) + "\"]", StandardCharsets.UTF_8); + } + return s; + }); } catch (InterruptedException | ExecutionException | TimeoutException e) { log.error("", e); } diff --git a/vscode-extensions/vscode-spring-boot/lib/Main.ts b/vscode-extensions/vscode-spring-boot/lib/Main.ts index 93786cee0..0d19300d8 100644 --- a/vscode-extensions/vscode-spring-boot/lib/Main.ts +++ b/vscode-extensions/vscode-spring-boot/lib/Main.ts @@ -63,6 +63,9 @@ export function activate(context: VSCode.ExtensionContext): Thenable { /*