r61338@onn: sartak | 2008-05-31 11:57:10 -0400
Sartak [Sat, 31 May 2008 15:57:22 +0000 (15:57 +0000)]
 Fake $_REPL being in the lexical environment for some completion stuff

git-svn-id: http://dev.catalyst.perl.org/repos/bast/trunk/Devel-REPL@4443 bd8105ee-0ff8-0310-8827-fb3f25b6796d

lib/Devel/REPL/Plugin/CompletionDriver/LexEnv.pm
lib/Devel/REPL/Plugin/FindVariable.pm

index 87a588f..44de708 100644 (file)
@@ -27,7 +27,7 @@ around complete => sub {
          map  { $sigil eq '%' ? '%' . $_ : $_ }
          grep { /$re/ }
          map  { substr($_, 1) } # drop lexical's sigil
-         keys %{$self->lexical_environment->get_context('_')};
+         '$_REPL', keys %{$self->lexical_environment->get_context('_')};
 };
 
 1;
index ef6314a..d704dea 100644 (file)
@@ -6,6 +6,8 @@ use namespace::clean -except => [ 'meta' ];
 sub find_variable {
     my ($self, $name) = @_;
 
+    return \$self if $name eq '$_REPL';
+
     # XXX: this code needs to live in LexEnv
     if ($self->can('lexical_environment')) {
         return \( $self->lexical_environment->get_context('_')->{$name} )