[Bast-commits] r4340 - trunk/Devel-REPL/lib/Devel/REPL/Plugin/CompletionDriver

nothingmuch at dev.catalyst.perl.org nothingmuch at dev.catalyst.perl.org
Tue May 6 03:06:01 BST 2008


Author: nothingmuch
Date: 2008-05-06 03:06:01 +0100 (Tue, 06 May 2008)
New Revision: 4340

Added:
   trunk/Devel-REPL/lib/Devel/REPL/Plugin/CompletionDriver/Turtles.pm
Log:
Add CompletionDriver::Turtles

Added: trunk/Devel-REPL/lib/Devel/REPL/Plugin/CompletionDriver/Turtles.pm
===================================================================
--- trunk/Devel-REPL/lib/Devel/REPL/Plugin/CompletionDriver/Turtles.pm	                        (rev 0)
+++ trunk/Devel-REPL/lib/Devel/REPL/Plugin/CompletionDriver/Turtles.pm	2008-05-06 02:06:01 UTC (rev 4340)
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+package Devel::REPL::Plugin::CompletionDriver::Turtles;
+use Devel::REPL::Plugin;
+
+with qw(
+  Devel::REPL::Plugin::Completion
+  Devel::REPL::Plugin::Turtles
+);
+
+around complete => sub {
+  my $orig = shift;
+  my ($self, $text, $document) = @_;
+
+  my $prefix = $self->default_command_prefix;
+  my $line_re = qr/^($prefix)(\w+)/;
+
+  my @orig = $self->$orig($text, $document);
+
+  if ( my ( $pre, $method ) = ( $text =~ $line_re ) ) {
+    my $filter = qr/^\Q$method/;
+    return (
+      @orig,
+      (
+        map { "$pre$_" }
+        grep { $_ =~ $filter }
+        map { /^expr?_command_(\w+)/ ? $1 : () }
+        map { $_->{name} }
+        $self->meta->compute_all_applicable_methods
+      ),
+    );
+  } else {
+    return @orig;
+  }
+};
+
+__PACKAGE__
+
+__END__
+
+




More information about the Bast-commits mailing list