Automatically substitute a read-only scheme with its editable copy

This commit is contained in:
Rustam Vishnyakov
2016-09-16 00:38:26 +03:00
parent 9054f58d63
commit f851a9e6d2
2 changed files with 12 additions and 1 deletions
@@ -532,7 +532,7 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
}
mySelectedScheme = mySchemes.get(EditorColorsManager.getInstance().getGlobalScheme().getName());
//assert mySelectedScheme != null : EditorColorsManager.getInstance().getGlobalScheme().getName() + "; myschemes=" + mySchemes;
assert mySelectedScheme != null : EditorColorsManager.getInstance().getGlobalScheme().getName() + "; myschemes=" + mySchemes;
}
private static void initScheme(@NotNull MyColorScheme scheme) {
@@ -314,6 +314,17 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers
@Override
public EditorColorsScheme getGlobalScheme() {
EditorColorsScheme scheme = mySchemeManager.getCurrentScheme();
String editableCopyName = null;
if (scheme instanceof DefaultColorsScheme && ((DefaultColorsScheme)scheme).hasEditableCopy()) {
editableCopyName = ((DefaultColorsScheme)scheme).getEditableCopyName();
}
else if (scheme instanceof BundledScheme) {
editableCopyName = ((BundledScheme)scheme).getEditableCopyName();
}
if (editableCopyName != null) {
EditorColorsScheme editableCopy = getScheme(editableCopyName);
if (editableCopy != null) return editableCopy;
}
return scheme == null ? getDefaultScheme() : scheme;
}