diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java index 0058edc938e1..c6224ffcf09c 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java @@ -103,7 +103,7 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { @Override public void optimizeImports(@NotNull PsiFile file) throws IncorrectOperationException { CheckUtil.checkWritable(file); - if (file instanceof PsiJavaFile) { + if (file instanceof PsiJavaFile && CodeStyle.isFormattingEnabled(file)) { PsiImportList newList = prepareOptimizeImportsResult((PsiJavaFile)file); if (newList != null) { final PsiImportList importList = ((PsiJavaFile)file).getImportList(); diff --git a/java/java-tests/testData/psi/optimizeImports/DisabledFormatting.java b/java/java-tests/testData/psi/optimizeImports/DisabledFormatting.java new file mode 100644 index 000000000000..24ea8bdbde81 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/DisabledFormatting.java @@ -0,0 +1,9 @@ +import java.util.Date; +import java.util.ArrayList; +import java.util.List; + +public class Main { + public List foo(){ + return new ArrayList<>(); + } +} diff --git a/java/java-tests/testData/psi/optimizeImports/DisabledFormatting_after.java b/java/java-tests/testData/psi/optimizeImports/DisabledFormatting_after.java new file mode 100644 index 000000000000..24ea8bdbde81 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/DisabledFormatting_after.java @@ -0,0 +1,9 @@ +import java.util.Date; +import java.util.ArrayList; +import java.util.List; + +public class Main { + public List foo(){ + return new ArrayList<>(); + } +} diff --git a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java index 2fdd2464237e..d4f415e824f4 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java @@ -15,7 +15,10 @@ */ package com.intellij.java.psi; +import com.intellij.application.options.CodeStyle; +import com.intellij.formatting.fileSet.NamedScopeDescriptor; import com.intellij.openapi.application.ex.PathManagerEx; +import com.intellij.psi.codeStyle.CodeStyleSettings; public class OptimizeImportsTest extends OptimizeImportsTestCase { private static final String BASE_PATH = PathManagerEx.getTestDataPath() + "/psi/optimizeImports"; @@ -61,6 +64,14 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { doTest(); } + public void testDisabledFormatting() { + CodeStyleSettings temp = new CodeStyleSettings(); + NamedScopeDescriptor descriptor = new NamedScopeDescriptor("Test"); + descriptor.setPattern("file:*.java"); + temp.getExcludedFiles().addDescriptor(descriptor); + CodeStyle.doWithTemporarySettings(getProject(), temp, () -> doTest()); + } + private void doTest() { doTest(".java"); }