App-EvalServerAdvanced-REPL

 view release on metacpan or  search on metacpan

lib/App/EvalServerAdvanced/REPL.pm  view on Meta::CPAN

use open qw/:std :utf8/;

use App::EvalServerAdvanced::Protocol;
use Exporter 'import';
our @EXPORT = qw/start_repl/;

our $VERSION = '0.004';

# ABSTRACT: Example client for App::EvalServerAdvanced

sub fake_prompt {
    my $prompt = shift;
    my @rl_term_set = @Term::ReadLine::TermCap::rl_term_set;
    print $rl_term_set[3], $rl_term_set[0], $prompt, $rl_term_set[1], $rl_term_set[2];
}

sub start_repl {
  my (@args) = @_;

  my $loop = IO::Async::Loop->new();
  my $term = Term::ReadLine->new("Erepl");
  my $seq = 1;

  my $connect_future = $loop->new_future();

lib/App/EvalServerAdvanced/REPL.pm  view on Meta::CPAN

                      $$bufref = $nbuf;
                      my @rl_term_set = @Term::ReadLine::TermCap::rl_term_set;

                      $|++;
                      if (ref($message) =~ /EvalResponse$/) {
                          print "\n"; # go to a new line
                          my $eseq = $message->sequence;
                          if (!$message->{canceled}) {
                              my $lines = $message->get_contents;
                              print $rl_term_set[3], "$eseq < ", $lines,  "\n\n";
                              fake_prompt("$seq> ");
                          } else {
                              print $rl_term_set[3],"\n$eseq was canceled\n";
                              fake_prompt("$seq> ");
                          }
                      } elsif (ref($message) =~ /Warning$/) {
                          my $eseq = $message->sequence;
                          my $warning = $message->message;
                          print $rl_term_set[3],"\nWARN <$eseq> ", $warning, "\n";
                          fake_prompt("$seq> ");
                      } else {
                          die "Unhandled message: ". Dumper($message);
                      }
                  }

                  return 1;
              }
          );

          $loop->add($stream);



( run in 0.876 second using v1.01-cache-2.11-cpan-6aa56a78535 )