diff options
author | Kate Stone <katherine.stone@apple.com> | 2014-11-17 19:06:59 +0000 |
---|---|---|
committer | Kate Stone <katherine.stone@apple.com> | 2014-11-17 19:06:59 +0000 |
commit | e30f11d9ee08309d545224091bad706b9a8d4eca (patch) | |
tree | c0f6ed7b1e016ce9ad3451d31a2cad609963f823 /lldb/source/Commands | |
parent | 278ddec22c8b95d9849fb74450b7f9f18c80421c (diff) | |
download | bcm5719-llvm-e30f11d9ee08309d545224091bad706b9a8d4eca.tar.gz bcm5719-llvm-e30f11d9ee08309d545224091bad706b9a8d4eca.zip |
Complete rewrite of interactive editing support for single- and multi-line input.
Improvements include:
* Use of libedit's wide character support, which is imperfect but a distinct improvement over ASCII-only
* Fallback for ASCII editing path
* Support for a "faint" prompt clearly distinguished from input
* Breaking lines and insert new lines in the middle of a batch by simply pressing return
* Joining lines with forward and backward character deletion
* Detection of paste to suppress automatic formatting and statement completion tests
* Correctly reformatting when lines grow or shrink to occupy different numbers of rows
* Saving multi-line history, and correctly preserving the "tip" of history during editing
* Displaying visible ^C and ^D indications when interrupting input or sending EOF
* Fledgling VI support for multi-line editing
* General correctness and reliability improvements
llvm-svn: 222163
Diffstat (limited to 'lldb/source/Commands')
-rw-r--r-- | lldb/source/Commands/CommandObjectCommands.cpp | 4 | ||||
-rw-r--r-- | lldb/source/Commands/CommandObjectExpression.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectCommands.cpp b/lldb/source/Commands/CommandObjectCommands.cpp index c7341c27d8f..22cfc653edf 100644 --- a/lldb/source/Commands/CommandObjectCommands.cpp +++ b/lldb/source/Commands/CommandObjectCommands.cpp @@ -1030,11 +1030,15 @@ protected: if (argc == 1) { Debugger &debugger = m_interpreter.GetDebugger(); + bool color_prompt = debugger.GetUseColor(); const bool multiple_lines = true; // Get multiple lines IOHandlerSP io_handler_sp (new IOHandlerEditline (debugger, + IOHandler::Type::Other, "lldb-regex", // Name of input reader for history "\033[K> ", // Prompt and clear line + NULL, // Continuation prompt multiple_lines, + color_prompt, 0, // Don't show line numbers *this)); diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp index 079c62ddfdf..d36e3dbbc5d 100644 --- a/lldb/source/Commands/CommandObjectExpression.cpp +++ b/lldb/source/Commands/CommandObjectExpression.cpp @@ -425,11 +425,15 @@ CommandObjectExpression::GetMultilineExpression () m_expr_line_count = 0; Debugger &debugger = GetCommandInterpreter().GetDebugger(); + bool color_prompt = debugger.GetUseColor(); const bool multiple_lines = true; // Get multiple lines IOHandlerSP io_handler_sp (new IOHandlerEditline (debugger, + IOHandler::Type::Expression, "lldb-expr", // Name of input reader for history NULL, // No prompt + NULL, // Continuation prompt multiple_lines, + color_prompt, 1, // Show line numbers starting at 1 *this)); |