From 3dd95fa0e0f5c21f468a00e51385d7f5b66adead Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 25 Sep 2024 23:10:20 -0400 Subject: [PATCH] JDT semantic tokens provider for non-eclipse clients only --- eclipse-language-servers/local-build.sh | 2 +- .../vscode/commons/languageserver/util/LspClient.java | 11 +++++++++++ .../ide/vscode/boot/app/JdtConfig.java | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/eclipse-language-servers/local-build.sh b/eclipse-language-servers/local-build.sh index b61e56175..f4b3b4f36 100755 --- a/eclipse-language-servers/local-build.sh +++ b/eclipse-language-servers/local-build.sh @@ -5,4 +5,4 @@ cd ../headless-services ./mvnw clean install -Dmaven.test.skip=true cd $workdir -./mvnw -Psnapshot -Pe431 clean install -Dmaven.test.skip=true +./mvnw -Psnapshot -Pe432 clean install -Dmaven.test.skip=true diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/LspClient.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/LspClient.java index d07ffe526..0cddeb557 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/LspClient.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/util/LspClient.java @@ -10,6 +10,10 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.languageserver.util; +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.type.AnnotatedTypeMetadata; + /** * LSP Client information utilities * @@ -43,5 +47,12 @@ public class LspClient { } return client; } + + public static class OnNotEclipseClient implements Condition { + @Override + public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { + return LspClient.currentClient() != Client.ECLIPSE; + } + } } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/JdtConfig.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/JdtConfig.java index e4864e007..70f66a815 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/JdtConfig.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/JdtConfig.java @@ -14,6 +14,7 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.ide.vscode.boot.java.cron.CronReconciler; import org.springframework.ide.vscode.boot.java.cron.CronSemanticTokens; @@ -51,6 +52,7 @@ import org.springframework.ide.vscode.boot.java.spel.JdtSpelReconciler; import org.springframework.ide.vscode.boot.java.spel.JdtSpelSemanticTokensProvider; import org.springframework.ide.vscode.boot.java.spel.SpelReconciler; import org.springframework.ide.vscode.boot.java.spel.SpelSemanticTokens; +import org.springframework.ide.vscode.commons.languageserver.util.LspClient; import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer; @Configuration(proxyBeanMethods = false) @@ -124,6 +126,7 @@ public class JdtConfig { return new EntityIdForRepoReconciler(); } + @Conditional(LspClient.OnNotEclipseClient.class) @Bean JavaSemanticTokensProvider javaSemanticTokens() { return new JavaSemanticTokensProvider(); }