1
0
Fork 0

Support bg colors and more clearing values in html output formatter

pull/4141/head
Jordi Boggiano 2015-06-12 17:23:18 +01:00
parent 29dbc3835f
commit 89540c5690
2 changed files with 8 additions and 4 deletions

View File

@ -59,7 +59,8 @@ class HtmlOutputFormatter extends OutputFormatter
{ {
$formatted = parent::format($message); $formatted = parent::format($message);
return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[(?:39|49|0|22|24|25|27|28)m}s", array($this, 'formatHtml'), $formatted); $clearEscapeCodes = '(?:39|49|0|22|24|25|27|28)';
return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[(?:".$clearEscapeCodes.";)*?".$clearEscapeCodes."m}s", array($this, 'formatHtml'), $formatted);
} }
private function formatHtml($matches) private function formatHtml($matches)

View File

@ -13,16 +13,19 @@
namespace Composer; namespace Composer;
use Composer\Console\HtmlOutputFormatter; use Composer\Console\HtmlOutputFormatter;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
class HtmlOutputFormatterTest extends \PHPUnit_Framework_TestCase class HtmlOutputFormatterTest extends \PHPUnit_Framework_TestCase
{ {
public function testFormatting() public function testFormatting()
{ {
$formatter = new HtmlOutputFormatter; $formatter = new HtmlOutputFormatter(array(
'warning' => new OutputFormatterStyle('black', 'yellow'),
));
return $this->assertEquals( return $this->assertEquals(
'Reading composer.json of <span style="color:green;">https://github.com/ccqgithub/sherry-php</span> (<span style="color:yellow;">master</span>)', 'text <span style="color:green;">green</span> <span style="color:yellow;">yellow</span> <span style="color:black;background-color:yellow;">black w/ yello bg</span>',
$formatter->format('Reading composer.json of <info>https://github.com/ccqgithub/sherry-php</info> (<comment>master</comment>)') $formatter->format('text <info>green</info> <comment>yellow</comment> <warning>black w/ yello bg</warning>')
); );
} }
} }