diff --git a/src/browser/ColorManager.test.ts b/src/browser/ColorManager.test.ts index dfcc9ec8f3..3fbd92f1c4 100644 --- a/src/browser/ColorManager.test.ts +++ b/src/browser/ColorManager.test.ts @@ -315,14 +315,14 @@ describe('ColorManager', () => { extendedAnsi: DEFAULT_ANSI_COLORS.map(a => a.css).slice().reverse() }); - for (let ansiColor = 16; ansiColor <= 255; ansiColor++){ + for (let ansiColor = 16; ansiColor <= 255; ansiColor++) { assert.equal(cm.colors.ansi[ansiColor].css, DEFAULT_ANSI_COLORS[255 + 16 - ansiColor].css); } }); it('should set one extended ansi colors and keep the other default', () => { cm.setTheme({ - extendedAnsi: [ '#ffffff' ] + extendedAnsi: ['#ffffff'] }); assert.equal(cm.colors.ansi[16].css, '#ffffff'); diff --git a/src/browser/ColorManager.ts b/src/browser/ColorManager.ts index 1d1b567229..84e5d58d44 100644 --- a/src/browser/ColorManager.ts +++ b/src/browser/ColorManager.ts @@ -168,9 +168,9 @@ export class ColorManager implements IColorManager { this.colors.ansi[14] = this._parseColor(theme.brightCyan, DEFAULT_ANSI_COLORS[14]); this.colors.ansi[15] = this._parseColor(theme.brightWhite, DEFAULT_ANSI_COLORS[15]); if (theme.extendedAnsi) { - const colorCount = Math.max(theme.extendedAnsi.length + 16, 256); - for (let i = 16; i < colorCount; i++) { - this.colors.ansi[i] = this._parseColor(theme.extendedAnsi[i - 16], DEFAULT_ANSI_COLORS[i]); + const colorCount = Math.min(this.colors.ansi.length - 16, theme.extendedAnsi.length); + for (let i = 0; i < colorCount; i++) { + this.colors.ansi[i + 16] = this._parseColor(theme.extendedAnsi[i], DEFAULT_ANSI_COLORS[i + 16]); } } // Clear our the cache