Move to Moo for fast bootstrapping.
[p5sagit/Devel-REPL.git] / lib / Devel / REPL / Plugin / CompletionDriver / Turtles.pm
CommitLineData
20377446 1package Devel::REPL::Plugin::CompletionDriver::Turtles;
2use Devel::REPL::Plugin;
e2d0b019 3use namespace::sweep;
c015ad3b 4
75a08365 5sub BEFORE_PLUGIN {
6 my $self = shift;
7 $self->load_plugin('Completion');
8}
9
20377446 10around complete => sub {
11 my $orig = shift;
12 my ($self, $text, $document) = @_;
13
14 my $prefix = $self->default_command_prefix;
15 my $line_re = qr/^($prefix)(\w+)/;
16
17 my @orig = $self->$orig($text, $document);
18
19 if ( my ( $pre, $method ) = ( $text =~ $line_re ) ) {
20 my $filter = qr/^\Q$method/;
21 return (
22 @orig,
23 (
24 map { "$pre$_" }
25 grep { $_ =~ $filter }
26 map { /^expr?_command_(\w+)/ ? $1 : () }
32d646c7 27 map { $_->name }
28 $self->meta->get_all_methods
20377446 29 ),
30 );
31 } else {
32 return @orig;
33 }
34};
35
36__PACKAGE__
37
38__END__
39
cfd1094b 40=head1 NAME
41
42Devel::REPL::Plugin::CompletionDriver::Turtles - Complete Turtles-based commands
43
30b459d4 44=head1 AUTHOR
45
46Yuval Kogman E<lt>nothingmuch@woobling.orgE<gt>
47
cfd1094b 48=cut
20377446 49