No need for a "relativeTo" folder for parsing sources
This commit is contained in:
@@ -10,7 +10,6 @@
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.commons.rewrite;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -158,7 +157,7 @@ public class ORDocUtils {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static Optional<WorkspaceEdit> createWorkspaceEdit(Path absoluteProjectDir, SimpleTextDocumentService documents, List<Result> results, ChangeAnnotation changeAnnotation) {
|
||||
public static Optional<WorkspaceEdit> createWorkspaceEdit(SimpleTextDocumentService documents, List<Result> results, ChangeAnnotation changeAnnotation) {
|
||||
if (results.isEmpty()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
@@ -168,7 +167,7 @@ public class ORDocUtils {
|
||||
we.setChangeAnnotations(Map.of(changeAnnotationId, changeAnnotation));
|
||||
for (Result result : results) {
|
||||
if (result.getBefore() == null) {
|
||||
String docUri = absoluteProjectDir.resolve(result.getAfter().getSourcePath()).toUri().toASCIIString();
|
||||
String docUri = result.getAfter().getSourcePath().toUri().toASCIIString();
|
||||
CreateFile ro = new CreateFile();
|
||||
ro.setUri(docUri);
|
||||
we.getDocumentChanges().add(Either.forRight(ro));
|
||||
@@ -179,10 +178,10 @@ public class ORDocUtils {
|
||||
te.setEdits(List.of(new AnnotatedTextEdit(new Range(cursor, cursor), result.getAfter().printAll(), changeAnnotationId)));
|
||||
we.getDocumentChanges().add(Either.forLeft(te));
|
||||
} else if (result.getAfter() == null) {
|
||||
String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString();
|
||||
String docUri = result.getBefore().getSourcePath().toUri().toASCIIString();
|
||||
we.getDocumentChanges().add(Either.forRight(new DeleteFile(docUri)));
|
||||
} else {
|
||||
String docUri = absoluteProjectDir.resolve(result.getBefore().getSourcePath()).toUri().toASCIIString();
|
||||
String docUri = result.getBefore().getSourcePath().toUri().toASCIIString();
|
||||
TextDocument doc = documents.getLatestSnapshot(docUri);
|
||||
if (doc == null) {
|
||||
doc = new TextDocument(docUri, null, 0, result.getBefore().printAll());
|
||||
|
||||
@@ -64,19 +64,19 @@ public abstract class ProjectParser {
|
||||
javaParser.setClasspath(mainClasspath);
|
||||
|
||||
List<SourceFile> javaSources = ListUtils.map(javaParser.parseInputs(
|
||||
() -> getInputs(ss.javaSources.stream()).iterator(), projectDir, ctx).collect(Collectors.toList()), addProvenance(projectProvenance));
|
||||
() -> getInputs(ss.javaSources.stream()).iterator(), null, ctx).collect(Collectors.toList()), addProvenance(projectProvenance));
|
||||
JavaSourceSet javaSourceSet = ORAstUtils.addJavaSourceSet(javaSources, ss.name(),
|
||||
mainClasspath);
|
||||
sources.addAll(javaSources);
|
||||
|
||||
List<Input> resources = getInputs(ss.resources().stream()).collect(Collectors.toList());
|
||||
parseResources(resources, projectDir, sources, projectProvenance, javaSourceSet, ctx);
|
||||
parseResources(resources, null, sources, projectProvenance, javaSourceSet, ctx);
|
||||
}
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
||||
private void parseResources(List<Parser.Input> resources, Path projectDirectory, List<SourceFile> sourceFiles, List<Marker> projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) {
|
||||
private void parseResources(List<Parser.Input> resources, Path relativeTo, List<SourceFile> sourceFiles, List<Marker> projectProvenance, JavaSourceSet sourceSet, ExecutionContext ctx) {
|
||||
List<Marker> provenance = new ArrayList<>(projectProvenance);
|
||||
provenance.add(sourceSet);
|
||||
|
||||
@@ -89,7 +89,7 @@ public abstract class ProjectParser {
|
||||
p.getPath().getFileName().toString().endsWith(".xsl") ||
|
||||
p.getPath().getFileName().toString().endsWith(".xslt"))
|
||||
.collect(Collectors.toList()),
|
||||
projectDirectory,
|
||||
relativeTo,
|
||||
ctx
|
||||
).collect(Collectors.toList()), addProvenance(provenance)));
|
||||
|
||||
@@ -97,7 +97,7 @@ public abstract class ProjectParser {
|
||||
resources.stream()
|
||||
.filter(p -> p.getPath().getFileName().toString().endsWith(".yml") || p.getPath().getFileName().toString().endsWith(".yaml"))
|
||||
.collect(Collectors.toList()),
|
||||
projectDirectory,
|
||||
relativeTo,
|
||||
ctx
|
||||
).collect(Collectors.toList()), addProvenance(provenance)));
|
||||
|
||||
@@ -105,7 +105,7 @@ public abstract class ProjectParser {
|
||||
resources.stream()
|
||||
.filter(p -> p.getPath().getFileName().toString().endsWith(".properties"))
|
||||
.collect(Collectors.toList()),
|
||||
projectDirectory,
|
||||
relativeTo,
|
||||
ctx
|
||||
).collect(Collectors.toList()), addProvenance(provenance)));
|
||||
|
||||
@@ -113,7 +113,7 @@ public abstract class ProjectParser {
|
||||
resources.stream()
|
||||
.filter(p -> p.getPath().getFileName().toString().endsWith(".factories"))
|
||||
.collect(Collectors.toList()),
|
||||
projectDirectory,
|
||||
relativeTo,
|
||||
ctx
|
||||
).collect(Collectors.toList()), addProvenance(provenance)));
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public class MavenIJavaProjectParser extends AbstractJavaProjectParser {
|
||||
@Override
|
||||
protected List<? extends SourceFile> parseBuildFiles(Path projectDir, ExecutionContext ctx) {
|
||||
MavenParser mavenParser = mavenParserBuilder.build();
|
||||
return mavenParser.parseInputs(() -> getInputs(Stream.of(Paths.get(jp.getProjectBuild().getBuildFile()))).iterator(), projectDir, ctx).collect(Collectors.toList());
|
||||
return mavenParser.parseInputs(() -> getInputs(Stream.of(Paths.get(jp.getProjectBuild().getBuildFile()))).iterator(), null, ctx).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private static ResolvedPom getModel(Xml.Document maven) {
|
||||
|
||||
@@ -460,7 +460,7 @@ public class RewriteRecipeRepository {
|
||||
List<Result> results = reciperun.getChangeset().getAllResults();
|
||||
ChangeAnnotation changeAnnotation = new ChangeAnnotation("Apply Recipe '" + r.getDisplayName() + "'");
|
||||
changeAnnotation.setNeedsConfirmation(needsConfirmation);
|
||||
return ORDocUtils.createWorkspaceEdit(absoluteProjectDir, server.getTextDocumentService(), results, changeAnnotation);
|
||||
return ORDocUtils.createWorkspaceEdit(server.getTextDocumentService(), results, changeAnnotation);
|
||||
}
|
||||
|
||||
private void reportParseErrors(List<ParseError> parseErrors) {
|
||||
|
||||
Reference in New Issue
Block a user