Skip to content

Commit 58869d6

Browse files
committed
Fix UnsupportedOperationException when creating 'scratch file' in IntelliJ IDEA
Signed-off-by: Dmytro Nosan <[email protected]>
1 parent e0f7699 commit 58869d6

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

spring-javaformat-intellij-idea/spring-javaformat-intellij-idea-plugin/src/main/java/io/spring/format/formatter/intellij/formatting/SpringJavaFormatFormattingService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public boolean canFormat(@NotNull PsiFile file) {
7878
public void formatDocument(@NotNull Document document, @NotNull List<TextRange> formattingRanges,
7979
@NotNull FormattingContext formattingContext, boolean canChangeWhiteSpaceOnly, boolean quickFormat) {
8080
VirtualFile file = formattingContext.getVirtualFile();
81-
Path path = (file != null) ? file.toNioPath() : null;
81+
Path path = (file != null) ? file.getFileSystem().getNioPath(file) : null;
8282
JavaFormatConfig config = JavaFormatConfig.findFrom(path);
8383
Formatter formatter = new Formatter(config);
8484
String source = document.getText();

spring-javaformat-intellij-idea/spring-javaformat-intellij-idea-plugin/src/test/java/io/spring/format/formatter/intellij/formatting/SpringJavaFormatFormattingServiceTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import com.intellij.openapi.fileTypes.FileTypeManager;
2626
import com.intellij.openapi.fileTypes.PlainTextFileType;
2727
import com.intellij.openapi.project.Project;
28+
import com.intellij.openapi.vfs.VirtualFile;
29+
import com.intellij.openapi.vfs.VirtualFileSystem;
2830
import com.intellij.psi.PsiFile;
2931
import org.junit.jupiter.api.Test;
3032

@@ -78,6 +80,9 @@ void formatDocumentAppliesFormatting() {
7880
String text = "public class Hello {}";
7981
given(document.getText()).willReturn(text);
8082
FormattingContext formattingContext = mock(FormattingContext.class);
83+
VirtualFile virtualFile = mock(VirtualFile.class);
84+
given(virtualFile.getFileSystem()).willReturn(mock(VirtualFileSystem.class));
85+
given(formattingContext.getVirtualFile()).willReturn(virtualFile);
8186
this.service.formatDocument(document, Collections.emptyList(), formattingContext, false, false);
8287
verify(document).replaceString(20, 20, "\n\n");
8388
}

0 commit comments

Comments
 (0)