From 06627cb0bb2f20ed3be555585152356241acc3ab Mon Sep 17 00:00:00 2001 From: Simon Lamon Date: Tue, 19 Jul 2022 17:22:54 +0000 Subject: [PATCH 1/2] Allow unsetting extending ansicolors --- src/browser/ColorManager.test.ts | 22 +++++++++++++++++++++- src/browser/ColorManager.ts | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/browser/ColorManager.test.ts b/src/browser/ColorManager.test.ts index 3fbd92f1..2a1c3fba 100644 --- a/src/browser/ColorManager.test.ts +++ b/src/browser/ColorManager.test.ts @@ -320,7 +320,7 @@ describe('ColorManager', () => { } }); - it('should set one extended ansi colors and keep the other default', () => { + it('should set one extended ansi color and keep the other default', () => { cm.setTheme({ extendedAnsi: ['#ffffff'] }); @@ -328,5 +328,25 @@ describe('ColorManager', () => { assert.equal(cm.colors.ansi[16].css, '#ffffff'); assert.equal(cm.colors.ansi[17].css, DEFAULT_ANSI_COLORS[17].css); }); + + it('should set extended ansi colors to the default after setting to something', () => { + cm.setTheme({ + extendedAnsi: ['#ffffff'] + }); + assert.equal(cm.colors.ansi[16].css, '#ffffff'); + + cm.setTheme({ + extendedAnsi: [] + }); + assert.equal(cm.colors.ansi[16].css, DEFAULT_ANSI_COLORS[16].css); + + cm.setTheme({ + extendedAnsi: ['#ffffff'] + }); + assert.equal(cm.colors.ansi[16].css, '#ffffff'); + + cm.setTheme({}); + assert.equal(cm.colors.ansi[16].css, DEFAULT_ANSI_COLORS[16].css); + }); }); }); diff --git a/src/browser/ColorManager.ts b/src/browser/ColorManager.ts index 84e5d58d..9e9891c3 100644 --- a/src/browser/ColorManager.ts +++ b/src/browser/ColorManager.ts @@ -151,6 +151,7 @@ export class ColorManager implements IColorManager { const opacity = 0.3; this.colors.selectionTransparent = color.opacity(this.colors.selectionTransparent, opacity); } + this.colors.ansi = DEFAULT_ANSI_COLORS.slice(); this.colors.ansi[0] = this._parseColor(theme.black, DEFAULT_ANSI_COLORS[0]); this.colors.ansi[1] = this._parseColor(theme.red, DEFAULT_ANSI_COLORS[1]); this.colors.ansi[2] = this._parseColor(theme.green, DEFAULT_ANSI_COLORS[2]); From 1fdbd504c74c6f34191daacdd0cf45eec649a517 Mon Sep 17 00:00:00 2001 From: Simon Lamon Date: Tue, 19 Jul 2022 17:37:02 +0000 Subject: [PATCH 2/2] Add another unit test to test partial unset --- src/browser/ColorManager.test.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/browser/ColorManager.test.ts b/src/browser/ColorManager.test.ts index 2a1c3fba..019bf42a 100644 --- a/src/browser/ColorManager.test.ts +++ b/src/browser/ColorManager.test.ts @@ -329,7 +329,7 @@ describe('ColorManager', () => { assert.equal(cm.colors.ansi[17].css, DEFAULT_ANSI_COLORS[17].css); }); - it('should set extended ansi colors to the default after setting to something', () => { + it('should set extended ansi colors to the default when they are unset', () => { cm.setTheme({ extendedAnsi: ['#ffffff'] }); @@ -348,5 +348,19 @@ describe('ColorManager', () => { cm.setTheme({}); assert.equal(cm.colors.ansi[16].css, DEFAULT_ANSI_COLORS[16].css); }); + + it('should set extended ansi colors to the default when they are partially unset', () => { + cm.setTheme({ + extendedAnsi: ['#ffffff', '#000000'] + }); + assert.equal(cm.colors.ansi[16].css, '#ffffff'); + assert.equal(cm.colors.ansi[17].css, '#000000'); + + cm.setTheme({ + extendedAnsi: ['#ffffff'] + }); + assert.equal(cm.colors.ansi[16].css, '#ffffff'); + assert.equal(cm.colors.ansi[17].css, DEFAULT_ANSI_COLORS[17].css); + }); }); });