X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FColors.pm;h=46b30bb30490bd082cdc0b40473510e7e8d6a841;hb=9b7bfb6ac233dca407f12db47aa8dda7c9c1d338;hp=898437db9a9f106c2c224e312882a05d2dc897a6;hpb=81d2f8e6b31c924b068e571a2b861f1ebaadf1af;p=p5sagit%2FDevel-REPL.git diff --git a/lib/Devel/REPL/Plugin/Colors.pm b/lib/Devel/REPL/Plugin/Colors.pm index 898437d..46b30bb 100644 --- a/lib/Devel/REPL/Plugin/Colors.pm +++ b/lib/Devel/REPL/Plugin/Colors.pm @@ -1,8 +1,8 @@ package Devel::REPL::Plugin::Colors; -use Moose::Role; +use Devel::REPL::Plugin; use Term::ANSIColor; -use namespace::clean -except => [ 'meta' ]; +use namespace::autoclean; has normal_color => ( is => 'rw', lazy => 1, @@ -14,7 +14,7 @@ has error_color => ( default => 'bold red', ); -around error_return => sub { +around format_error => sub { my $orig = shift; my $self = shift; return color($self->error_color) @@ -23,12 +23,15 @@ around error_return => sub { }; # we can't just munge @_ because that screws up DDS -around print => sub { +around format_result => sub { my $orig = shift; my $self = shift; - print {$self->out_fh} color($self->normal_color); - $orig->($self, @_); - print {$self->out_fh} color('reset'); + no warnings 'uninitialized'; + return join "", ( + color($self->normal_color), + $orig->($self, @_), + color('reset'), + ); }; # make arbitrary warns colored -- somewhat difficult because warn doesn't