From ea1a6d5f90328d5422a570e98601592550ecb9d3 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Thu, 20 Apr 2023 14:11:48 +0200 Subject: [PATCH] added test code that dumps the bean model when displaying project-related symbols in dialog or view - to be removed later --- .../dialogs/InProjectSymbolsProvider.java | 33 +++++++++++++++++++ .../handlers/GotoSymbolHandler.java | 3 +- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java index c00d13756..742e9af72 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InProjectSymbolsProvider.java @@ -12,6 +12,7 @@ package org.springframework.tooling.ls.eclipse.gotosymbol.dialogs; import java.time.Duration; import java.util.List; +import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -24,6 +25,9 @@ import org.eclipse.lsp4j.WorkspaceSymbol; import org.eclipse.lsp4j.WorkspaceSymbolParams; import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.eclipse.lsp4j.services.LanguageServer; +import org.springframework.ide.vscode.commons.protocol.spring.Bean; +import org.springframework.ide.vscode.commons.protocol.spring.SpringModelLanguageServer; +import org.springframework.ide.vscode.commons.protocol.spring.SpringModelService; import org.springframework.tooling.ls.eclipse.gotosymbol.GotoSymbolPlugin; import org.springsource.ide.eclipse.commons.livexp.core.LiveExpression; import org.springsource.ide.eclipse.commons.livexp.util.ExceptionUtil; @@ -88,6 +92,8 @@ public class InProjectSymbolsProvider implements SymbolsProvider { IProject project = this.project.get(); if (project != null) { + dumpBeansModel(project.getName()); + String projectLocationPrefix = LSPEclipseUtils.toUri(project).toASCIIString(); query = "locationPrefix:" + projectLocationPrefix + "?" + query; @@ -122,4 +128,31 @@ public class InProjectSymbolsProvider implements SymbolsProvider { GotoSymbolPlugin.getInstance().getLog().log(ExceptionUtil.status(e)); } + @SuppressWarnings("removal") + private void dumpBeansModel(String projectName) { + List activeLanguageServers = LanguageServiceAccessor.getActiveLanguageServers(null); + + for (LanguageServer languageServer : activeLanguageServers) { + if (languageServer instanceof SpringModelLanguageServer) { + SpringModelLanguageServer springServer = (SpringModelLanguageServer) languageServer; + SpringModelService service = springServer.getSpringModelService(); + CompletableFuture> beansFuture = service.beans(projectName); + + try { + List beans = beansFuture.get(); + + for (Bean bean : beans) { + System.out.println(bean); + } + + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (java.util.concurrent.ExecutionException e) { + e.printStackTrace(); + } + } + } + + } + } diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/handlers/GotoSymbolHandler.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/handlers/GotoSymbolHandler.java index 15d141129..7c91412b5 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/handlers/GotoSymbolHandler.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/handlers/GotoSymbolHandler.java @@ -22,9 +22,7 @@ import org.eclipse.jface.bindings.TriggerSequence; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4e.LanguageServiceAccessor.LSPDocumentInfo; -import org.eclipse.lsp4j.Location; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.HandlerUtil; @@ -78,6 +76,7 @@ public class GotoSymbolHandler extends AbstractHandler { } debug("<<