1 package Sepia
::ReadLine
;
10 my ($text, $line, $start) = @_;
12 if (substr($line, 0, $start) =~ /^\s*$/ && $text =~ /^,(\S*)$/) {
14 @xs = map ",$_", grep /$x/, keys %Sepia::REPL
;
16 my ($type, $str) = (substr $line, $start ?
(($start-1), length($text)+1)
17 : ($start, length($text)))
18 =~ /^([\$\@\%\&]?)(.*)/;
19 my %h = qw(@ ARRAY % HASH & CODE * IO $ VARIABLE);
20 @xs = Sepia
::completions
$h{$type||'&'}, $str;
27 { package main
; do $_ for @ARGV }
28 $TERM = new Term
::ReadLine
$0;
29 my $rl = Term
::ReadLine
->ReadLine;
31 my $attr = $TERM->Attribs;
32 $attr->{completion_function
} = \
&rl_complete
;
33 } elsif ($rl =~ /Perl/) {
34 $readline::rl_completion_function
= \
&rl_complete
;
35 $readline::var_TcshCompleteMode
= 1;
36 # XXX: probably helpful...
37 # } elsif (grep -x "$_/rlwrap", split ':', $ENV{PATH}) {
38 # warn "Sepia::ReadLine: Falling back to rlwrap.\n";
40 warn "Sepia::ReadLine: No completion with $rl.\n";
42 $Sepia::READLINE
= sub { $TERM->readline(Sepia
::prompt
()) };