=head1 REPL LINE EDITOR

The read-eval-print-loop (aka. the REPL) has the abilty to load a line editor
module if one is available.  This makes facilities such as line editing,
persistent history, and symbol completion.

If you don't have any line editing modules installed, you may use C<rlwrap> to
provide much of the same functionality.

=head2 AVAILABLE EDITORS

Right now, there are three line editor modules available: C<Readline>,
C<Linenoise>, and C<LineEditor> (installed via C<Terminal::LineEditor>).  They
have roughly the same functionality, but C<Linenoise> provides tab completion,
while C<Readline> and C<LineEditor> both have an easier time with multibyte
input.

=head2 ENVIRONMENT VARIABLES

The line editor used by the REPL can be configured via various environment
variables, listed here.

=over 4

=item RAKUDO_DISABLE_MULTILINE

This disables multi-line input for the REPL if truthy.

=item RAKUDO_HIST

This specifies the location of the history file used by the line editor; the
default is C<~/.raku/rakudo-history>.  Before Rakudo version 2020.02 the
default was C<~/.perl6/rakudo-history>.  If the older default file exists and
the newer one does not, it will be automatically migrated.


=item RAKUDO_LINE_EDITOR

This specifies the preferred line editor to use; valid values are C<Readline>,
C<Linenoise>, C<LineEditor>, and C<none>.  A value of C<none> is useful if you
want to avoid the recommendation message upon REPL startup.

=item INSIDE_EMACS

This disables line editor while executing REPL inside Emacs, see for further
reference:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Interactive-Shell.html

=back

=cut
