+use strict;
+use warnings;
package Devel::REPL::Plugin::CompletionDriver::Globals;
use Devel::REPL::Plugin;
-use namespace::clean -except => [ 'meta' ];
+use namespace::autoclean;
+
+sub BEFORE_PLUGIN {
+ my $self = shift;
+ $self->load_plugin('Completion');
+}
around complete => sub {
my $orig = shift;
my $last = $self->last_ppi_element($document);
return $orig->(@_)
- unless $last->isa('PPI::Token::Symbol');
+ unless $last->isa('PPI::Token::Symbol')
+ || $last->isa('PPI::Token::Word');
- my $sigil = substr($last, 0, 1, '');
+ my $sigil = $last =~ s/^[\$\@\%\&\*]// ? $1 : undef;
my $re = qr/^\Q$last/;
my @package_fragments = split qr/::|'/, $last;
1;
+__END__
+
+=head1 NAME
+
+Devel::REPL::Plugin::CompletionDriver::Globals - Complete global variables, packages, namespaced functions
+
+=head1 AUTHOR
+
+Shawn M Moore, C<< <sartak at gmail dot com> >>
+
+=cut
+