public function setHelpWriter(writer $writer = null)
{
if ($writer === null) {
$labelColorizer = new cli\colorizer('0;32');
$labelColorizer->setPattern('/(^[^:]+: )/');
$argumentColorizer = new cli\colorizer('0;32');
$argumentColorizer->setPattern('/((?:^| )[-+]+[-a-z]+)/');
$valueColorizer = new cli\colorizer('0;34');
$valueColorizer->setPattern('/(<[^>]+>(?:\\.\\.\\.)?)/');
$writer = new writers\std\out();
$writer->addDecorator($labelColorizer)->addDecorator($valueColorizer)->addDecorator($argumentColorizer)->addDecorator(new writer\decorators\rtrim())->addDecorator(new writer\decorators\eol())->addDecorator(new cli\clear());
}
$this->helpWriter = $writer;
return $this;
}