IDEA-225545 vcs: prefer active Editor color scheme for commit message editor

Only fallback to UI-theme based scheme if they have high Light/Dark contrast.

GitOrigin-RevId: e2668dc0fc07ee4343298a317566e9bd00a229d2
This commit is contained in:
Aleksey Pivovarov
2019-12-20 19:03:03 +00:00
committed by intellij-monorepo-bot
parent f1d2b4dd42
commit 5d665a2a05
@@ -18,6 +18,7 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.SpellCheckingEditorCustomizationProvider;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.editor.impl.EditorMarkupModelImpl;
import com.intellij.openapi.fileTypes.FileTypes;
@@ -32,6 +33,7 @@ import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.ui.*;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.components.BorderLayoutPanel;
import com.intellij.vcs.commit.CommitMessageUi;
import com.intellij.vcs.commit.message.BodyLimitSettings;
@@ -60,9 +62,18 @@ public class CommitMessage extends JPanel implements Disposable, DataProvider, C
private static final EditorCustomization COLOR_SCHEME_FOR_CURRENT_UI_THEME_CUSTOMIZATION = editor -> {
editor.setBackgroundColor(null); // to use background from set color scheme
editor.setColorsScheme(EditorColorsManager.getInstance().getSchemeForCurrentUITheme());
editor.setColorsScheme(getCommitMessageColorScheme());
};
@NotNull
private static EditorColorsScheme getCommitMessageColorScheme() {
boolean isLaFDark = ColorUtil.isDark(UIUtil.getPanelBackground());
boolean isEditorDark = EditorColorsManager.getInstance().isDarkEditor();
return isLaFDark == isEditorDark
? EditorColorsManager.getInstance().getGlobalScheme()
: EditorColorsManager.getInstance().getSchemeForCurrentUITheme();
}
@NotNull private final EditorTextField myEditorField;
@Nullable private final TitledSeparator mySeparator;