Skip to content

Commit 22697aa

Browse files
committed
fix: save document when workspace editor comes from rename files.
Signed-off-by: azerr <[email protected]>
1 parent aa6a439 commit 22697aa

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/main/java/com/redhat/devtools/lsp4ij/LSPIJUtils.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -929,11 +929,16 @@ private static int getRightOffsetOfPart(Document document, int offset) {
929929
}
930930

931931
public static void applyWorkspaceEdit(@NotNull WorkspaceEdit edit) {
932-
applyWorkspaceEdit(edit, null);
932+
applyWorkspaceEdit(edit, false);
933+
}
934+
935+
public static void applyWorkspaceEdit(@NotNull WorkspaceEdit edit, boolean saveDocument) {
936+
applyWorkspaceEdit(edit, null, saveDocument);
933937
}
934938

935939
public static void applyWorkspaceEdit(@NotNull WorkspaceEdit edit,
936-
@Nullable String label) {
940+
@Nullable String label,
941+
boolean saveDocument) {
937942
if (edit.getDocumentChanges() != null) {
938943
for (Either<TextDocumentEdit, ResourceOperation> change : edit.getDocumentChanges()) {
939944
if (change.isLeft()) {
@@ -942,13 +947,13 @@ public static void applyWorkspaceEdit(@NotNull WorkspaceEdit edit,
942947
if (file != null) {
943948
Document document = getDocument(file);
944949
if (document != null) {
945-
applyEdits(null, document, textDocumentEdit.getEdits(), false);
950+
applyEdits(null, document, textDocumentEdit.getEdits(), saveDocument);
946951
}
947952
}
948953
} else if (change.isRight()) {
949954
ResourceOperation resourceOperation = change.getRight();
950955
if (resourceOperation instanceof CreateFile createFile) {
951-
applyCreateFile(createFile);
956+
applyCreateFile(createFile, saveDocument);
952957
} else if (resourceOperation instanceof DeleteFile deleteFile) {
953958
applyDeleteFile(deleteFile);
954959
} else if (resourceOperation instanceof RenameFile renameFile) {
@@ -970,21 +975,21 @@ public static void applyWorkspaceEdit(@NotNull WorkspaceEdit edit,
970975
if (file != null) {
971976
Document document = getDocument(file);
972977
if (document != null) {
973-
applyEdits(null, document, change.getValue(), false);
978+
applyEdits(null, document, change.getValue(), saveDocument);
974979
}
975980
}
976981
}
977982
}
978983
}
979984

980-
private static void applyCreateFile(CreateFile createFile) {
985+
private static void applyCreateFile(CreateFile createFile, boolean saveDocument) {
981986
VirtualFile targetFile = findResourceFor(createFile.getUri());
982987
if (targetFile != null && createFile.getOptions() != null) {
983988
if (!createFile.getOptions().getIgnoreIfExists()) {
984989
Document document = getDocument(targetFile);
985990
if (document != null) {
986991
TextEdit textEdit = new TextEdit(new Range(toPosition(0, document), toPosition(document.getTextLength(), document)), "");
987-
applyEdits(null, document, Collections.singletonList(textEdit), false);
992+
applyEdits(null, document, Collections.singletonList(textEdit), saveDocument);
988993
}
989994
}
990995
} else {

src/main/java/com/redhat/devtools/lsp4ij/features/files/AbstractLSPFileListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ private static void applyWorkspaceEdit(CompletableFuture<WorkspaceEdit> future)
254254
if (CompletableFutures.isDoneNormally(future)) {
255255
var workspaceEdit = future.getNow(null);
256256
if (workspaceEdit != null) {
257-
LSPIJUtils.applyWorkspaceEdit(workspaceEdit);
257+
LSPIJUtils.applyWorkspaceEdit(workspaceEdit, true);
258258
}
259259
}
260260
}

0 commit comments

Comments
 (0)