[Bug 27365] New: [PATCH] Additional commands for multi-line mode

Bug ID 27365
Summary [PATCH] Additional commands for multi-line mode
Product lldb
Version unspecified
Hardware PC
OS Linux
Status NEW
Severity enhancement
Priority P
Component All Bugs
Assignee lldb-dev@lists.llvm.org
Reporter bawr@hszm.pl
CC llvm-bugs@lists.llvm.org
Classification Unclassified

Created attachment 16220 [details]
Editline patch.

This patch makes two small changes to the multi-line debugger mode, aimed at
fixing some usability issues with the Swift REPL, which uses this mode
exclusively.

1. A command (bound to Alt-Enter by default) to immediately execute a buffer,
if possible, as opposed to breaking the current line.

2. Two commands (bound to Alt-Up/Down by default) to immediately move around in
command history, without having to scroll through multiple lines with keyboard
arrows. Because the REPL uses multi-line mode, it's not possible to achieve
this using standard editline bindings.

I don't particularly care about having specific keys bound by default, this can
be done in .editrc, if suitable commands are available in the first place.

Note: The comment in the line-break command states that "the completion test is
allowed to change the input lines when complete", but the command itself makes
no effort to redisplay them if they actually *are* changed.

I've opted to do this in BufferRun, but since I'm not sure about the approach,
I haven't changed any pre-existing commands.

If this needs cleaning up or some follow-up explanation, do ask.