Close #92 PR: Closing before and reopening the style after a line break.

This commit is contained in:
Martin Heidegger 2016-01-17 12:35:27 +01:00 committed by Sindre Sorhus
parent 139f8b68cc
commit 05f87e25e1
2 changed files with 9 additions and 0 deletions

View file

@ -79,6 +79,11 @@ function applyStyle() {
// otherwise only the part of the string until said closing code
// will be colored, and the rest will simply be 'plain'.
str = code.open + str.replace(code.closeRe, code.open) + code.close;
// Close the coloring before a line break and reopening after next line
// To fix a bleed issue on macs
// see https://github.com/chalk/chalk/pull/92
str = str.replace(/\n/gm, code.close + '\n' + code.open);
}
// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.

View file

@ -68,6 +68,10 @@ describe('chalk', function () {
assert.equal(chalk.reset(chalk.red.bgGreen.underline.bind(null)('foo') + 'foo'), '\u001b[0m\u001b[31m\u001b[42m\u001b[4mfoo\u001b[24m\u001b[49m\u001b[39mfoo\u001b[0m');
assert.equal(chalk.red.blue.black.call(null), '');
});
it('line breaks should open and close colors', function () {
assert.equal(chalk.grey('hello\nworld'), '\u001b[90mhello\u001b[39m\n\u001b[90mworld\u001b[39m');
});
});
describe('chalk on windows', function () {