LLDB mainline
Editline.cpp File Reference
#include <climits>
#include <iomanip>
#include <optional>
#include "lldb/Host/Editline.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Host/StreamFile.h"
#include "lldb/Utility/AnsiTerminal.h"
#include "lldb/Utility/CompletionRequest.h"
#include "lldb/Utility/FileSpec.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/SelectHelper.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/StringList.h"
#include "lldb/Utility/Timeout.h"
#include "lldb/lldb-forward.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Locale.h"
#include "llvm/Support/Threading.h"

Go to the source code of this file.

Classes

class  ScopedOptional< T >
class  lldb_private::line_editor::EditlineHistory

Namespaces

namespace  lldb_private
 A class that represents a running process on the host machine.
namespace  lldb_private::line_editor

Macros

#define ESCAPE   "\x1b"
 https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
#define ANSI_CLEAR_BELOW   ESCAPE "[J"
#define ANSI_CLEAR_RIGHT   ESCAPE "[K"
#define ANSI_SET_COLUMN_N   ESCAPE "[%dG"
#define ANSI_UP_N_ROWS   ESCAPE "[%dA"
#define ANSI_DOWN_N_ROWS   ESCAPE "[%dB"
#define EditLineConstString(str)
#define EditLineStringFormatSpec   "%s"
#define history_w   history
#define history_winit   history_init
#define history_wend   history_end
#define HistoryW   History
#define HistEventW   HistEvent
#define LineInfoW   LineInfo
#define el_wgets   el_gets
#define el_wgetc   el_getc
#define el_wpush   el_push
#define el_wparse   el_parse
#define el_wset   el_set
#define el_wget   el_get
#define el_wline   el_line
#define el_winsertstr   el_insertstr
#define el_wdeletestr   el_deletestr

Typedefs

typedef std::weak_ptr< EditlineHistorylldb_private::line_editor::EditlineHistoryWP

Functions

bool IsOnlySpaces (const EditLineStringType &content)
static int GetOperation (HistoryOperation op)
EditLineStringType CombineLines (const std::vector< EditLineStringType > &lines)
std::vector< EditLineStringTypeSplitLines (const EditLineStringType &input)
EditLineStringType FixIndentation (const EditLineStringType &line, int indent_correction)
int GetIndentation (const EditLineStringType &line)
bool IsInputPending (FILE *file)
static size_t PrintCompletion (FILE *output_file, llvm::ArrayRef< CompletionResult::Completion > results, size_t max_completion_length, size_t max_length, std::optional< size_t > max_height=std::nullopt)
 Prints completions and their descriptions to the given file.

Macro Definition Documentation

◆ ANSI_CLEAR_BELOW

#define ANSI_CLEAR_BELOW   ESCAPE "[J"

Definition at line 43 of file Editline.cpp.

◆ ANSI_CLEAR_RIGHT

#define ANSI_CLEAR_RIGHT   ESCAPE "[K"

Definition at line 44 of file Editline.cpp.

◆ ANSI_DOWN_N_ROWS

#define ANSI_DOWN_N_ROWS   ESCAPE "[%dB"

Definition at line 47 of file Editline.cpp.

Referenced by lldb_private::Editline::MoveCursor().

◆ ANSI_SET_COLUMN_N

◆ ANSI_UP_N_ROWS

◆ EditLineConstString

◆ EditLineStringFormatSpec

#define EditLineStringFormatSpec   "%s"

Definition at line 57 of file Editline.cpp.

Referenced by lldb_private::Editline::DisplayInput().

◆ el_wdeletestr

#define el_wdeletestr   el_deletestr

Definition at line 76 of file Editline.cpp.

◆ el_wget

#define el_wget   el_get

Definition at line 73 of file Editline.cpp.

◆ el_wgetc

#define el_wgetc   el_getc

Definition at line 69 of file Editline.cpp.

Referenced by lldb_private::Editline::DisplayCompletions().

◆ el_wgets

#define el_wgets   el_gets

◆ el_winsertstr

◆ el_wline

◆ el_wparse

#define el_wparse   el_parse

Definition at line 71 of file Editline.cpp.

◆ el_wpush

#define el_wpush   el_push

Definition at line 70 of file Editline.cpp.

Referenced by lldb_private::Editline::GetLines().

◆ el_wset

◆ ESCAPE

#define ESCAPE   "\x1b"

◆ HistEventW

#define HistEventW   HistEvent

Definition at line 65 of file Editline.cpp.

◆ history_w

◆ history_wend

#define history_wend   history_end

◆ history_winit

#define history_winit   history_init

◆ HistoryW

#define HistoryW   History

◆ LineInfoW

Function Documentation

◆ CombineLines()

EditLineStringType CombineLines ( const std::vector< EditLineStringType > & lines)

Definition at line 133 of file Editline.cpp.

Referenced by lldb_private::Editline::GetLines().

◆ FixIndentation()

EditLineStringType FixIndentation ( const EditLineStringType & line,
int indent_correction )

Definition at line 161 of file Editline.cpp.

Referenced by lldb_private::Editline::BreakLineCommand().

◆ GetIndentation()

int GetIndentation ( const EditLineStringType & line)

Definition at line 170 of file Editline.cpp.

Referenced by lldb_private::Editline::BreakLineCommand().

◆ GetOperation()

◆ IsInputPending()

◆ IsOnlySpaces()

bool IsOnlySpaces ( const EditLineStringType & content)

Definition at line 93 of file Editline.cpp.

◆ PrintCompletion()

size_t PrintCompletion ( FILE * output_file,
llvm::ArrayRef< CompletionResult::Completion > results,
size_t max_completion_length,
size_t max_length,
std::optional< size_t > max_height = std::nullopt )
static

Prints completions and their descriptions to the given file.

Only the completions in the interval [start, end) are printed.

Definition at line 953 of file Editline.cpp.

Referenced by lldb_private::Editline::DisplayCompletions().

◆ SplitLines()

std::vector< EditLineStringType > SplitLines ( const EditLineStringType & input)