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=4566b51946e9bc297de325cfa858b742b46cd21d;hb=moo;hpb=6631e15ccd2313ff350fd9bfa44c1ccdbac77100 diff --git a/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm b/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm index 4566b51..bbbb0f4 100644 --- a/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm +++ b/lib/Devel/REPL/Plugin/CompletionDriver/Methods.pm @@ -1,11 +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 qw( - Devel::REPL::Plugin::Completion - Devel::REPL::Plugin::FindVariable -); +sub BEFORE_PLUGIN { + my $self = shift; + for (qw/Completion FindVariable/) { + $self->load_plugin($_); + } +} around complete => sub { my $orig = shift; @@ -49,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;