diff --git a/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java b/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java index bd24227a6cea..4ceeae277550 100644 --- a/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java +++ b/java/java-impl/src/com/intellij/psi/codeStyle/JavaCodeStyleSettings.java @@ -16,6 +16,7 @@ package com.intellij.psi.codeStyle; import com.intellij.application.options.CodeStyle; +import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; @@ -318,6 +319,10 @@ public class JavaCodeStyleSettings extends CustomCodeStyleSettings implements Im JD_PARAM_DESCRIPTION_ON_NEW_LINE = rootSettings.JD_PARAM_DESCRIPTION_ON_NEW_LINE; JD_INDENT_ON_CONTINUATION = rootSettings.JD_INDENT_ON_CONTINUATION; + + if (rootSettings.WRAP_COMMENTS) { + rootSettings.getCommonSettings(JavaLanguage.INSTANCE).WRAP_COMMENTS = rootSettings.WRAP_COMMENTS; + } } @Override diff --git a/java/java-tests/testData/codeStyle/importPre173Settings.xml b/java/java-tests/testData/codeStyle/importPre173Settings.xml new file mode 100644 index 000000000000..f87b714f0e34 --- /dev/null +++ b/java/java-tests/testData/codeStyle/importPre173Settings.xml @@ -0,0 +1,242 @@ + + + + \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/JavaCodeStyleSettingsTest.java b/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/JavaCodeStyleSettingsTest.java index 53a98386aa02..58f9d7df9da1 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/JavaCodeStyleSettingsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/JavaCodeStyleSettingsTest.java @@ -16,6 +16,11 @@ package com.intellij.java.psi.codeStyle; import com.intellij.ide.codeStyleSettings.CodeStyleTestCase; +import com.intellij.lang.java.JavaLanguage; +import com.intellij.openapi.application.ex.PathManagerEx; +import com.intellij.openapi.options.SchemeImportException; +import com.intellij.psi.codeStyle.CodeStyleSettings; +import com.intellij.psi.codeStyle.CommonCodeStyleSettings; import com.intellij.psi.codeStyle.JavaCodeStyleSettings; import com.intellij.psi.codeStyle.PackageEntry; @@ -53,7 +58,20 @@ public class JavaCodeStyleSettingsTest extends CodeStyleTestCase { } } + public void testImportPre173Settings() throws SchemeImportException { + CodeStyleSettings imported = importSettings(); + CommonCodeStyleSettings commonSettings = imported.getCommonSettings(JavaLanguage.INSTANCE); + assertEquals("testprefix", imported.getCustomSettings(JavaCodeStyleSettings.class).FIELD_NAME_PREFIX); + assertTrue(commonSettings.WRAP_COMMENTS); + assertFalse(imported.WRAP_COMMENTS); + } + private static boolean isPrimitiveOrString(Class type) { return type.isPrimitive() || type.equals(String.class); } + + @Override + protected String getBasePath() { + return PathManagerEx.getTestDataPath() + "/codeStyle"; + } } diff --git a/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleTestCase.java b/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleTestCase.java index a7fb884ccf9b..fc6668985a20 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleTestCase.java +++ b/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleTestCase.java @@ -16,7 +16,15 @@ package com.intellij.ide.codeStyleSettings; import com.intellij.openapi.application.ex.PathManagerEx; +import com.intellij.openapi.options.SchemeFactory; +import com.intellij.openapi.options.SchemeImportException; import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.codeStyle.CodeStyleScheme; +import com.intellij.psi.codeStyle.CodeStyleSettings; +import com.intellij.psi.impl.source.codeStyle.CodeStyleSchemeImpl; +import com.intellij.psi.impl.source.codeStyle.CodeStyleSchemeXmlImporter; import com.intellij.testFramework.LightPlatformTestCase; import com.intellij.testFramework.LightProjectDescriptor; import org.jdom.Element; @@ -58,7 +66,7 @@ public abstract class CodeStyleTestCase extends LightPlatformTestCase { @NotNull protected final String getTestDataPath() { String testDir = getTestDir(); - return BASE_PATH + (testDir != null ? testDir : "") + File.separator; + return getBasePath() + (testDir != null ? testDir : "") + File.separator; } @NotNull @@ -74,4 +82,23 @@ public abstract class CodeStyleTestCase extends LightPlatformTestCase { } protected void setupProject() throws Exception {} + + protected CodeStyleSettings importSettings() throws SchemeImportException { + final CodeStyleScheme targetScheme = new CodeStyleSchemeImpl("Test", false, null); + SchemeFactory schemeFactory = new SchemeFactory() { + @Override + public CodeStyleScheme createNewScheme(@Nullable String name) { + return targetScheme; + } + }; + File ioFile = new File(getTestDataPath() + getTestName(true) + ".xml"); + assertExists(ioFile); + VirtualFile vFile = VfsUtil.findFileByIoFile(ioFile, true); + CodeStyleSchemeXmlImporter importer = new CodeStyleSchemeXmlImporter(); + return importer.importScheme(getProject(), vFile, targetScheme, schemeFactory).getCodeStyleSettings(); + } + + protected String getBasePath() { + return BASE_PATH; + } } diff --git a/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleXmlImporterTest.java b/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleXmlImporterTest.java index 4e57e0d8352e..85e529e11f30 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleXmlImporterTest.java +++ b/platform/platform-tests/testSrc/com/intellij/ide/codeStyleSettings/CodeStyleXmlImporterTest.java @@ -15,18 +15,10 @@ */ package com.intellij.ide.codeStyleSettings; -import com.intellij.openapi.options.SchemeFactory; import com.intellij.openapi.options.SchemeImportException; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.codeStyle.CodeStyleScheme; import com.intellij.psi.codeStyle.CodeStyleSettings; -import com.intellij.psi.impl.source.codeStyle.CodeStyleSchemeImpl; -import com.intellij.psi.impl.source.codeStyle.CodeStyleSchemeXmlImporter; import org.jetbrains.annotations.Nullable; -import java.io.File; - public class CodeStyleXmlImporterTest extends CodeStyleTestCase { public void testStandardCodeStyleXml() throws SchemeImportException { CodeStyleSettings settings= importSettings(); @@ -47,21 +39,6 @@ public class CodeStyleXmlImporterTest extends CodeStyleTestCase { assertEquals(140, settings.getDefaultRightMargin()); assertEquals(true, settings.FORMATTER_TAGS_ENABLED); } - - private CodeStyleSettings importSettings() throws SchemeImportException { - final CodeStyleScheme targetScheme = new CodeStyleSchemeImpl("Test", false, null); - SchemeFactory schemeFactory = new SchemeFactory() { - @Override - public CodeStyleScheme createNewScheme(@Nullable String name) { - return targetScheme; - } - }; - File ioFile = new File(getTestDataPath() + getTestName(true) + ".xml"); - assertExists(ioFile); - VirtualFile vFile = VfsUtil.findFileByIoFile(ioFile, true); - CodeStyleSchemeXmlImporter importer = new CodeStyleSchemeXmlImporter(); - return importer.importScheme(getProject(), vFile, targetScheme, schemeFactory).getCodeStyleSettings(); - } @Nullable @Override