mirror of
https://github.com/Microsoft/vscode
synced 2024-10-05 19:02:54 +00:00
registerColor: Allow to pass in a single default color (#214438)
This commit is contained in:
parent
43c8fe13e0
commit
7496c883cc
|
@ -20,7 +20,7 @@ export const editorSymbolHighlightBorder = registerColor('editor.symbolHighlight
|
|||
|
||||
export const editorCursorForeground = registerColor('editorCursor.foreground', { dark: '#AEAFAD', light: Color.black, hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('caret', 'Color of the editor cursor.'));
|
||||
export const editorCursorBackground = registerColor('editorCursor.background', null, nls.localize('editorCursorBackground', 'The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.'));
|
||||
export const editorMultiCursorPrimaryForeground = registerColor('editorMultiCursor.primary.foreground', { dark: editorCursorForeground, light: editorCursorForeground, hcDark: editorCursorForeground, hcLight: editorCursorForeground }, nls.localize('editorMultiCursorPrimaryForeground', 'Color of the primary editor cursor when multiple cursors are present.'));
|
||||
export const editorMultiCursorPrimaryForeground = registerColor('editorMultiCursor.primary.foreground', editorCursorForeground, nls.localize('editorMultiCursorPrimaryForeground', 'Color of the primary editor cursor when multiple cursors are present.'));
|
||||
export const editorMultiCursorPrimaryBackground = registerColor('editorMultiCursor.primary.background', { dark: editorCursorBackground, light: editorCursorBackground, hcDark: editorCursorBackground, hcLight: editorCursorBackground }, nls.localize('editorMultiCursorPrimaryBackground', 'The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));
|
||||
export const editorMultiCursorSecondaryForeground = registerColor('editorMultiCursor.secondary.foreground', { dark: editorCursorForeground, light: editorCursorForeground, hcDark: editorCursorForeground, hcLight: editorCursorForeground }, nls.localize('editorMultiCursorSecondaryForeground', 'Color of secondary editor cursors when multiple cursors are present.'));
|
||||
export const editorMultiCursorSecondaryBackground = registerColor('editorMultiCursor.secondary.background', { dark: editorCursorBackground, light: editorCursorBackground, hcDark: editorCursorBackground, hcLight: editorCursorBackground }, nls.localize('editorMultiCursorSecondaryBackground', 'The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.'));
|
||||
|
|
|
@ -62,6 +62,10 @@ export type ColorTransform =
|
|||
| { op: ColorTransformType.LessProminent; value: ColorValue; background: ColorValue; factor: number; transparency: number }
|
||||
| { op: ColorTransformType.IfDefinedThenElse; if: ColorIdentifier; then: ColorValue; else: ColorValue };
|
||||
|
||||
export function isColorTransform(value: unknown): value is ColorTransform {
|
||||
return typeof value === 'object' && !!value && 'op' in value && typeof value.op === 'number';
|
||||
}
|
||||
|
||||
export interface ColorDefaults {
|
||||
light: ColorValue | null;
|
||||
dark: ColorValue | null;
|
||||
|
@ -75,6 +79,10 @@ export interface ColorDefaults {
|
|||
*/
|
||||
export type ColorValue = Color | string | ColorIdentifier | ColorTransform;
|
||||
|
||||
export function isColorValue(value: unknown): value is ColorValue {
|
||||
return typeof value === 'string' || value instanceof Color || isColorTransform(value);
|
||||
}
|
||||
|
||||
// color registry
|
||||
export const Extensions = {
|
||||
ColorContribution: 'base.contributions.colors'
|
||||
|
@ -229,7 +237,15 @@ const colorRegistry = new ColorRegistry();
|
|||
platform.Registry.add(Extensions.ColorContribution, colorRegistry);
|
||||
|
||||
|
||||
export function registerColor(id: string, defaults: ColorDefaults | null, description: string, needsTransparency?: boolean, deprecationMessage?: string): ColorIdentifier {
|
||||
export function registerColor(id: string, defaults: ColorDefaults | ColorValue | null, description: string, needsTransparency?: boolean, deprecationMessage?: string): ColorIdentifier {
|
||||
if (isColorValue(defaults)) {
|
||||
defaults = {
|
||||
dark: defaults,
|
||||
light: defaults,
|
||||
hcDark: defaults,
|
||||
hcLight: defaults
|
||||
} satisfies ColorDefaults;
|
||||
}
|
||||
return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue