diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InWorkspaceSymbolsProvider.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InWorkspaceSymbolsProvider.java index 6ed3545d9..e1d7d63a0 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InWorkspaceSymbolsProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.gotosymbol/src/org/springframework/tooling/ls/eclipse/gotosymbol/dialogs/InWorkspaceSymbolsProvider.java @@ -12,6 +12,7 @@ package org.springframework.tooling.ls.eclipse.gotosymbol.dialogs; import java.time.Duration; import java.util.List; +import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -22,6 +23,7 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4j.DocumentSymbol; +import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.WorkspaceSymbolParams; import org.eclipse.lsp4j.jsonrpc.messages.Either; @@ -40,14 +42,18 @@ import reactor.core.publisher.Mono; @SuppressWarnings("restriction") public class InWorkspaceSymbolsProvider implements SymbolsProvider { + private static final Predicate WS_SYMBOL_CAP = capabilities -> Boolean.TRUE.equals(capabilities.getWorkspaceSymbolProvider()); + public static InWorkspaceSymbolsProvider createFor(Supplier _project) { return new InWorkspaceSymbolsProvider(() -> { IProject project = _project.get(); if (project!=null) { return LanguageServiceAccessor.getLanguageServers(project, - capabilities -> Boolean.TRUE.equals(capabilities.getWorkspaceSymbolProvider()), true); + WS_SYMBOL_CAP, true); + } else { + System.out.println("project = null"); + return LanguageServiceAccessor.getActiveLanguageServers(WS_SYMBOL_CAP); } - return ImmutableList.of(); }); }