From dc58eac990626a032a396e50b4de18cd0775a132 Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Wed, 13 Feb 2019 17:39:21 +0300 Subject: [PATCH] Bug fix: other languages' properties are applied to a wrong language --- .../extended/EditorConfigCodeStyleSettingsModifier.java | 7 ++++++- .../extended/EditorConfigIntellijNameUtil.java | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigCodeStyleSettingsModifier.java b/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigCodeStyleSettingsModifier.java index 7d375db7adb9..fc8d02756d6e 100644 --- a/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigCodeStyleSettingsModifier.java +++ b/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigCodeStyleSettingsModifier.java @@ -83,7 +83,7 @@ public class EditorConfigCodeStyleSettingsModifier implements CodeStyleSettingsM String ideLangPrefix = EditorConfigIntellijNameUtil.getIdeLangPrefix(mapper); boolean isModified = false; for (OutPair option : editorConfigOptions) { - if (!languageSpecific || option.getKey().startsWith(ideLangPrefix)) { + if (!languageSpecific && isGeneric(option.getKey()) || option.getKey().startsWith(ideLangPrefix)) { String intellijName = EditorConfigIntellijNameUtil.toIntellijName(mapper, option.getKey()); if (intellijName != null) { CodeStylePropertyAccessor accessor = mapper.getAccessor(intellijName); @@ -96,6 +96,11 @@ public class EditorConfigCodeStyleSettingsModifier implements CodeStyleSettingsM return isModified; } + private static boolean isGeneric(@NotNull String optionKey) { + return !optionKey.startsWith(EditorConfigIntellijNameUtil.IDE_PREFIX) || + optionKey.startsWith(EditorConfigIntellijNameUtil.GENERIC_OPTION_KEY_PREFIX); + } + private static List getEditorConfigOptions(@NotNull Project project, @NotNull PsiFile psiFile, @NotNull ParserCallback callback) throws EditorConfigException { String filePath = Utils.getFilePath(project, psiFile.getVirtualFile()); diff --git a/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigIntellijNameUtil.java b/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigIntellijNameUtil.java index baeac2e35954..798191ca8f16 100644 --- a/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigIntellijNameUtil.java +++ b/plugins/editorconfig/src/org/editorconfig/configmanagement/extended/EditorConfigIntellijNameUtil.java @@ -10,8 +10,9 @@ import org.jetbrains.annotations.Nullable; import java.util.List; public class EditorConfigIntellijNameUtil { - private final static String IDE_PREFIX = "ij_"; - private final static String GENERIC_PROPERTY_PREFIX = "any_"; + final static String IDE_PREFIX = "ij_"; + final static String GENERIC_PROPERTY_PREFIX = "any_"; + final static String GENERIC_OPTION_KEY_PREFIX = IDE_PREFIX + GENERIC_PROPERTY_PREFIX; private EditorConfigIntellijNameUtil() { }