Compare soft margins when checking differences with Default code style

This commit is contained in:
Rustam Vishnyakov
2017-10-16 19:46:08 +03:00
parent 823d882c78
commit 5bd3f3e386
3 changed files with 13 additions and 0 deletions
@@ -1249,6 +1249,7 @@ public class CodeStyleSettings extends CommonCodeStyleSettings
public boolean equals(Object obj) {
if (!(obj instanceof CodeStyleSettings)) return false;
if (!ReflectionUtil.comparePublicNonFinalFields(this, obj)) return false;
if (!mySoftMargins.equals(((CodeStyleSettings)obj).mySoftMargins)) return false;
if (!OTHER_INDENT_OPTIONS.equals(((CodeStyleSettings)obj).OTHER_INDENT_OPTIONS)) return false;
if (!myCommonSettingsManager.equals(((CodeStyleSettings)obj).myCommonSettingsManager)) return false;
for (CustomCodeStyleSettings customSettings : myCustomSettings.values()) {
@@ -1062,6 +1062,7 @@ public class CommonCodeStyleSettings {
if (obj instanceof CommonCodeStyleSettings) {
if (
ReflectionUtil.comparePublicNonFinalFields(this, obj) &&
mySoftMargins.equals(((CommonCodeStyleSettings)obj).mySoftMargins) &&
myIndentOptions.equals(((CommonCodeStyleSettings)obj).getIndentOptions()) &&
arrangementSettingsEqual((CommonCodeStyleSettings)obj)
) {
@@ -21,6 +21,7 @@ import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.impl.source.codeStyle.CodeStyleSchemeImpl;
import java.util.Arrays;
import java.util.List;
public class CodeStyleSchemesModelTest extends CodeStyleTestCase {
@@ -101,6 +102,16 @@ public class CodeStyleSchemesModelTest extends CodeStyleTestCase {
assertFalse(myModel.differsFromDefault(scheme));
}
public void testVisualGuidesDifferFromDefault() {
CodeStyleScheme scheme = myModel.getSelectedScheme();
CodeStyleSettings settings = myModel.getCloneSettings(scheme);
assertFalse(myModel.differsFromDefault(scheme));
settings.setDefaultSoftMargins(Arrays.asList(100,150));
assertTrue(myModel.differsFromDefault(scheme));
myModel.reset();
assertFalse(myModel.differsFromDefault(scheme));
}
public void testListOrder() {
CodeStyleScheme scheme1 = myModel.createNewScheme("New Scheme", myModel.getSelectedScheme());
CodeStyleScheme scheme2 = myModel.createNewScheme("Another Scheme", myModel.getSelectedScheme());