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