LLVM API Documentation
#include <LineEditor.h>
Classes | |
struct | CompleterConcept |
struct | CompleterModel |
struct | Completion |
A possible completion at a given cursor position. More... | |
struct | CompletionAction |
The action to perform upon a completion request. More... | |
struct | InternalData |
struct | ListCompleterConcept |
struct | ListCompleterModel |
Public Member Functions | |
LineEditor (StringRef ProgName, StringRef HistoryPath="", FILE *In=stdin, FILE *Out=stdout, FILE *Err=stderr) | |
~LineEditor () | |
llvm::Optional< std::string > | readLine () const |
void | saveHistory () |
void | loadHistory () |
template<typename T > | |
void | setCompleter (T Comp) |
template<typename T > | |
void | setListCompleter (T Comp) |
CompletionAction | getCompletionAction (StringRef Buffer, size_t Pos) const |
const std::string & | getPrompt () const |
void | setPrompt (const std::string &P) |
Static Public Member Functions | |
static std::string | getDefaultHistoryPath (StringRef ProgName) |
Definition at line 22 of file LineEditor.h.
LineEditor::LineEditor | ( | StringRef | ProgName, |
StringRef | HistoryPath = "" , |
||
FILE * | In = stdin , |
||
FILE * | Out = stdout , |
||
FILE * | Err = stderr |
||
) |
Create a LineEditor object.
ProgName | The name of the current program. Used to form a default prompt. |
HistoryPath | Path to the file in which to store history data, if possible. |
In | The input stream used by the editor. |
Out | The output stream used by the editor. |
Err | The error stream used by the editor. |
Definition at line 281 of file LineEditor.cpp.
References llvm::tgtok::In, llvm::LineEditor::InternalData::In, and llvm::LineEditor::InternalData::Out.
Definition at line 288 of file LineEditor.cpp.
References llvm::LibFunc::fwrite, and llvm::LineEditor::InternalData::Out.
LineEditor::CompletionAction LineEditor::getCompletionAction | ( | StringRef | Buffer, |
size_t | Pos | ||
) | const |
Use the current completer to produce a CompletionAction for the given completion request. If the current completer is a list completer, this will return an AK_Insert CompletionAction if each completion has a common prefix, or an AK_ShowCompletions CompletionAction otherwise.
Buffer | The string to complete |
Pos | The zero-based cursor position in the StringRef |
Definition at line 82 of file LineEditor.cpp.
References llvm::LineEditor::CompletionAction::AK_ShowCompletions, and llvm::LineEditor::CompletionAction::Kind.
std::string LineEditor::getDefaultHistoryPath | ( | StringRef | ProgName | ) | [static] |
Definition at line 22 of file LineEditor.cpp.
References llvm::sys::path::append(), llvm::sys::path::home_directory(), and llvm::SmallString< InternalLen >::str().
const std::string& llvm::LineEditor::getPrompt | ( | ) | const [inline] |
Definition at line 105 of file LineEditor.h.
void LineEditor::loadHistory | ( | ) |
Definition at line 293 of file LineEditor.cpp.
Optional< std::string > LineEditor::readLine | ( | ) | const |
Reads a line.
Definition at line 295 of file LineEditor.cpp.
References llvm::LibFunc::fgets, llvm::LibFunc::fprintf, llvm::LineEditor::InternalData::In, and llvm::LineEditor::InternalData::Out.
void LineEditor::saveHistory | ( | ) |
Definition at line 292 of file LineEditor.cpp.
void llvm::LineEditor::setCompleter | ( | T | Comp | ) | [inline] |
Set the completer for this LineEditor. A completer is a function object which takes arguments of type StringRef (the string to complete) and size_t (the zero-based cursor position in the StringRef) and returns a CompletionAction.
Definition at line 84 of file LineEditor.h.
void llvm::LineEditor::setListCompleter | ( | T | Comp | ) | [inline] |
Set the completer for this LineEditor to the given list completer. A list completer is a function object which takes arguments of type StringRef (the string to complete) and size_t (the zero-based cursor position in the StringRef) and returns a std::vector<Completion>.
Definition at line 92 of file LineEditor.h.
void llvm::LineEditor::setPrompt | ( | const std::string & | P | ) | [inline] |
Definition at line 106 of file LineEditor.h.