Devel::REPL::Plugin::FancyPrompt - facilitate user-defined prompts
use Devel::REPL; my $repl = Devel::REPL->new; $repl->load_plugin('MultiLine::PPI'); # for indent depth $repl->load_plugin('Packages'); # for current package $repl->load_plugin('FancyPrompt'); $repl->run;
FancyPrompt helps you write your own prompts. The default fancy prompt resembles irb's default prompt. The default fancy_prompt looks like this:
irb
fancy_prompt
re.pl(main):001:0> 2 + 2 4
re.pl is a constant. main is the current package. The first number is how many lines have been read so far. The second number (only if you have a MultiLine plugin) is how deep you are; intuitively, your indent level. This default can be implemented with:
re.pl
main
MultiLine
$_REPL->fancy_prompt(sub { my $self = shift; sprintf 're.pl(%s):%03d%s> ', $self->can('current_package') ? $self->current_package : 'main', $self->lines_read, $self->can('line_depth') ? ':' . $self->line_depth : ''; });
current_package is provided by Devel::REPL::Plugin::Packages (which tracks the current package). line_depth is provided by a MultiLine plugin (probably MultiLine::PPI).
current_package
line_depth
MultiLine::PPI
You may also set a fancy_continuation_prompt. The default is very similar to fancy_prompt's default (except * instead of >).
fancy_continuation_prompt
*
>
Devel::REPL
Shawn M Moore, <sartak at gmail dot com>
<sartak at gmail dot com>
Copyright (C) 2007 by Shawn M Moore
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Devel::REPL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Devel::REPL
CPAN shell
perl -MCPAN -e shell install Devel::REPL
For more information on module installation, please visit the detailed CPAN module installation guide.