XML LS extension for namespace resolution
This commit is contained in:
@@ -6,4 +6,5 @@ bin.includes = META-INF/,\
|
||||
servers/,\
|
||||
syntaxes/,\
|
||||
icons/,\
|
||||
about.html
|
||||
about.html,\
|
||||
jars/
|
||||
|
||||
@@ -355,5 +355,14 @@
|
||||
class="org.springframework.tooling.boot.ls.prefs.RemoteAppsFromPrefsDataContributor">
|
||||
</injection>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.wildwebdeveloper.xml.lemminxExtension">
|
||||
<jar
|
||||
path="jars/commons-lsp-extensions.jar">
|
||||
</jar>
|
||||
<jar
|
||||
path="jars/xml-ls-extension.jar">
|
||||
</jar>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
||||
@@ -43,6 +43,33 @@
|
||||
<outputDirectory>${project.build.directory}/../servers/spring-boot-language-server</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>xml-extension</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.springframework.ide.vscode</groupId>
|
||||
<artifactId>xml-ls-extension</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<overWrite>true</overWrite>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.springframework.ide.vscode</groupId>
|
||||
<artifactId>commons-lsp-extensions</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<overWrite>true</overWrite>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<stripVersion>true</stripVersion>
|
||||
<overWriteReleases>true</overWriteReleases>
|
||||
<overWriteSnapshots>true</overWriteSnapshots>
|
||||
<outputDirectory>${project.build.directory}/../jars</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
@@ -71,6 +98,9 @@
|
||||
<fileset>
|
||||
<directory>servers</directory>
|
||||
</fileset>
|
||||
<fileset>
|
||||
<directory>jars</directory>
|
||||
</fileset>
|
||||
</filesets>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -165,6 +165,11 @@
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/tm4e/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wwd</id>
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/wildwebdeveloper/releases/latest/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</profile>
|
||||
|
||||
@@ -210,6 +215,11 @@
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/tm4e/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wwd</id>
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/wildwebdeveloper/releases/latest/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</profile>
|
||||
|
||||
@@ -260,6 +270,11 @@
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/tm4e/snapshots/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wwd</id>
|
||||
<layout>p2</layout>
|
||||
<url>https://download.eclipse.org/wildwebdeveloper/releases/latest/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</profile>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user