@@ -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 {
0 commit comments