提交 ca84943b 编写于 作者: M Martin Aeschlimann

[theme] clean up css rules for colors in editorColorRegistry

上级 b9189cad
......@@ -71,9 +71,6 @@
*/
background: #fffffe;
}
.monaco-editor-background {
background: #fffffe;
}
.monaco-editor.ime-input .inputarea {
background: rgba(255, 255, 255, 0.85);
}
......@@ -84,9 +81,6 @@
color: #BBB;
background: #1E1E1E;
}
.monaco-editor.vs-dark .monaco-editor-background {
background: #1E1E1E;
}
.monaco-editor.vs-dark.ime-input .inputarea {
background: rgba(0, 0, 0, 0.65);
}
......@@ -97,9 +91,6 @@
color: #fff;
background: #000;
}
.monaco-editor.hc-black .monaco-editor-background {
background: #000;
}
/* -------------------- Misc -------------------- */
......@@ -114,12 +105,6 @@
top: 0;
}
/* -------------------- Highlight a range -------------------- */
.monaco-editor.vs .rangeHighlight { background: rgba(253, 255, 0, 0.2); }
.monaco-editor.vs-dark .rangeHighlight { background: rgba(255, 255, 255, 0.044); }
.monaco-editor.hc-black .rangeHighlight { border: 1px dotted #f38518; }
/* -------------------- Squigglies -------------------- */
.monaco-editor.vs .redsquiggly,
......
......@@ -3,25 +3,14 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/**
* Definition of the editor colors
*/
import nls = require('vs/nls');
import * as colorRegistry from 'vs/platform/theme/common/colorRegistry';
import { Registry } from 'vs/platform/platform';
import { ITheme, ICssStyleCollector, Extensions as ThemingExtensions, IThemingRegistry } from 'vs/platform/theme/common/themeService';
import { registerColor, editorBackground, highContrastOutline } from 'vs/platform/theme/common/colorRegistry';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { Color } from 'vs/base/common/color';
let colorReg = <colorRegistry.IColorRegistry>Registry.as(colorRegistry.Extensions.ColorContribution);
let themingReg = <IThemingRegistry>Registry.as(ThemingExtensions.ThemingContribution);
themingReg.onThemeChange(applyEditorStyles);
function registerColor(id: string, defaults: colorRegistry.ColorDefaults, description: string): colorRegistry.ColorIdentifier {
return colorReg.registerColor(id, defaults, description);
}
/**
* Definition of the editor colors
*/
export const editorLineHighlight = registerColor('editorLineHighlight', { dark: null, light: null, hc: null }, nls.localize('lineHighlight', 'Editor line highlight color'));
export const editorLineHighlightBorder = registerColor('editorLineHighlightBorderCox', { dark: '#282828', light: '#eeeeee', hc: '#f38518' }, nls.localize('lineHighlightBorderBox', 'Editor line highlight border box color'));
export const editorRangeHighlight = registerColor('editorRangeHighlight', { dark: '#ffffff0b', light: '#fdff0033', hc: null }, nls.localize('rangeHighlight', 'Background color of range highlighted, like by Quick open and Find features'));
......@@ -29,34 +18,27 @@ export const editorCursor = registerColor('editorCursor', { dark: '#AEAFAD', lig
export const editorInvisibles = registerColor('editorInvisibles', { dark: '#e3e4e229', light: '#33333333', hc: '#e3e4e229' }, nls.localize('invisibles', 'Editor invisibles color'));
export const editorGuide = registerColor('editorGuide', { dark: editorInvisibles, light: editorInvisibles, hc: editorInvisibles }, nls.localize('guide', 'Editor guide color'));
// TBD: split up and place each rule in the owning part
function applyEditorStyles(theme: ITheme, collector: ICssStyleCollector) {
// contains all color rules that used to defined in editor/browser/widget/editor.css
registerThemingParticipant((theme, collector) => {
let background = theme.getColor(colorRegistry.editorBackground);
let background = theme.getColor(editorBackground);
if (background) {
addBackgroundColorRule(theme, '.monaco-editor-background', background, collector);
collector.addRule(`.${theme.selector} .monaco-workbench .monaco-editor-background { background-color: ${background}; }`);
collector.addRule(`.monaco-editor.${theme.selector} .monaco-editor-background { background-color: ${background}; }`);
}
let lineHighlight = theme.getColor(editorLineHighlight);
if (lineHighlight) {
collector.addRule(`.monaco-editor.${theme.selector} .view-overlays .current-line { background-color: ${lineHighlight}; border: none; }`);
collector.addRule(`.monaco-editor.${theme.selector} .margin-view-overlays .current-line-margin { background-color: ${lineHighlight}; border: none; }`);
} else {
// to do editor line border
let rangeHighlight = theme.getColor(editorRangeHighlight);
if (rangeHighlight) {
collector.addRule(`.monaco-editor.${theme.selector} .rangeHighlight { background-color: ${rangeHighlight}; }`);
}
let outline = theme.getColor(highContrastOutline);
if (outline) {
collector.addRule(`.monaco-editor.${theme.selector} .rangeHighlight { border: 1px dotted ${outline}; }; }`);
}
addBackgroundColorRule(theme, '.rangeHighlight', theme.getColor(editorRangeHighlight), collector);
let invisibles = theme.getColor(editorInvisibles);
if (invisibles) {
collector.addRule(`.vs-whitespace { color: ${invisibles} !important; }`);
}
}
function addBackgroundColorRule(theme: ITheme, selector: string, color: Color, collector: ICssStyleCollector): void {
if (color) {
collector.addRule(`.monaco-editor.${theme.selector} ${selector} { background-color: ${color}; }`);
}
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册