XML LS extension for namespace resolution
This commit is contained in:
@@ -91,6 +91,10 @@
|
||||
class="org.springframework.tooling.ls.eclipse.commons.commands.OpenResourceInEditor"
|
||||
commandId="org.springframework.tooling.ls.eclipse.commons.commands.OpenResourceInEditor">
|
||||
</handler>
|
||||
<handler
|
||||
class="org.springframework.tooling.ls.eclipse.commons.commands.JavaWorkspaceCommandHanlder"
|
||||
commandId="java.execute.workspaceCommand">
|
||||
</handler>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.commands">
|
||||
|
||||
@@ -93,7 +93,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
@SuppressWarnings("restriction")
|
||||
public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4LanguageClient {
|
||||
|
||||
private static ReusableClasspathListenerHandler classpathService = new ReusableClasspathListenerHandler (
|
||||
public static final ReusableClasspathListenerHandler CLASSPATH_SERVICE = new ReusableClasspathListenerHandler (
|
||||
Logger.forEclipsePlugin(LanguageServerCommonsActivator::getInstance),
|
||||
new LSP4ECommandExecutor(),
|
||||
() -> new ProjectSorter()
|
||||
@@ -371,7 +371,7 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
|
||||
|
||||
public STS4LanguageClientImpl() {
|
||||
classpathService.addNotificationsSentCallback(projectNames -> {
|
||||
CLASSPATH_SERVICE.addNotificationsSentCallback(projectNames -> {
|
||||
List<IProject> projects = projectNames.stream().map(projectName -> ResourcesPlugin.getWorkspace().getRoot().getProject(projectName)).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
for (IWorkbenchWindow ww : PlatformUI.getWorkbench().getWorkbenchWindows()) {
|
||||
for (IWorkbenchPage page : ww.getPages()) {
|
||||
@@ -397,12 +397,12 @@ public class STS4LanguageClientImpl extends LanguageClientImpl implements STS4La
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Object> addClasspathListener(ClasspathListenerParams params) {
|
||||
return CompletableFuture.completedFuture(classpathService.addClasspathListener(params.getCallbackCommandId(), params.isBatched()));
|
||||
return CompletableFuture.completedFuture(CLASSPATH_SERVICE.addClasspathListener(params.getCallbackCommandId(), params.isBatched()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Object> removeClasspathListener(ClasspathListenerParams params) {
|
||||
return CompletableFuture.completedFuture(classpathService.removeClasspathListener(params.getCallbackCommandId()));
|
||||
return CompletableFuture.completedFuture(CLASSPATH_SERVICE.removeClasspathListener(params.getCallbackCommandId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package org.springframework.tooling.ls.eclipse.commons.commands;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.commands.ExecutionEvent;
|
||||
import org.eclipse.core.commands.ExecutionException;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.lsp4e.command.LSPCommandHandler;
|
||||
import org.eclipse.lsp4j.Command;
|
||||
import org.springframework.tooling.ls.eclipse.commons.STS4LanguageClientImpl;
|
||||
|
||||
public class JavaWorkspaceCommandHanlder extends LSPCommandHandler {
|
||||
|
||||
public static final String JAVA_WORKSPACE_COMMAND = "java.execute.workspaceCommand";
|
||||
|
||||
public static final String ADD_CLASSPATH_LISTENER_COMMAND = "sts.java.addClasspathListener";
|
||||
public static final String REMOVE_CLASSPATH_LISTENER_COMMAND = "sts.java.removeClasspathListener";
|
||||
|
||||
@Override
|
||||
public Object execute(ExecutionEvent event, Command command, IPath path) throws ExecutionException {
|
||||
if (JAVA_WORKSPACE_COMMAND.equals(command.getCommand())) {
|
||||
String cmdId = (String) command.getArguments().get(0);
|
||||
List<Object> arguments = command.getArguments().subList(1, command.getArguments().size());
|
||||
|
||||
switch (cmdId) {
|
||||
case ADD_CLASSPATH_LISTENER_COMMAND:
|
||||
String callbackCommandIdForAdd = (String) arguments.get(0);
|
||||
Boolean batched = (Boolean) arguments.get(1);
|
||||
return STS4LanguageClientImpl.CLASSPATH_SERVICE.addClasspathListener(callbackCommandIdForAdd, batched);
|
||||
case REMOVE_CLASSPATH_LISTENER_COMMAND:
|
||||
String callbackCommandIdForRemove = (String) arguments.get(0);
|
||||
return STS4LanguageClientImpl.CLASSPATH_SERVICE.removeClasspathListener(callbackCommandIdForRemove);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user