X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FCompletionDriver%2FMethods.pm;h=bbbb0f44aaa6a16147c71831ab56b2865dc99cc9;hp=aa09f0e9083e043f435696bdcdca744465ffcb55;hb=e2d0b0198529e2e06593df8ebab7a8413bc932e1;hpb=cfd1094b45c394258ccda08216f1435bf40e1d50 diff --git a/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm b/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm index aa09f0e..bbbb0f4 100644 --- a/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm +++ b/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm @@ -1,8 +1,15 @@ package Devel::REPL::Plugin::CompletionDriver::Methods; use Devel::REPL::Plugin; -use namespace::clean -except => [ 'meta' ]; +use namespace::sweep; +use Package::Stash; +use Scalar::Util qw(blessed); -with 'Devel::REPL::Plugin::FindVariable'; +sub BEFORE_PLUGIN { + my $self = shift; + for (qw/Completion FindVariable/) { + $self->load_plugin($_); + } +} around complete => sub { my $orig = shift; @@ -46,14 +53,13 @@ around complete => sub { # now we have $class->$incomplete - my $metaclass = Class::MOP::Class->initialize($class); + my $metaclass = Package::Stash->new($class); my $re = qr/^\Q$incomplete/; return $orig->(@_), grep { $_ =~ $re } - map { $_->{name} } - $metaclass->compute_all_applicable_methods; + $metaclass->list_all_symbols('CODE'); }; 1; @@ -64,5 +70,9 @@ __END__ Devel::REPL::Plugin::CompletionDriver::Methods - Complete class or object method names +=head1 AUTHOR + +Shawn M Moore, C<< >> + =cut