LLVM 22.0.0git
llvm::LineEditor Class Reference

#include "llvm/LineEditor/LineEditor.h"

Classes

struct  Completion
 A possible completion at a given cursor position. More...
struct  CompletionAction
 The action to perform upon a completion request. More...
struct  InternalData

Public Member Functions

LLVM_ABI LineEditor (StringRef ProgName, StringRef HistoryPath="", FILE *In=stdin, FILE *Out=stdout, FILE *Err=stderr)
 Create a LineEditor object.
LLVM_ABI ~LineEditor ()
LLVM_ABI std::optional< std::string > readLine () const
 Reads a line.
LLVM_ABI void saveHistory ()
LLVM_ABI void loadHistory ()
LLVM_ABI void setHistorySize (int size)
template<typename T>
void setCompleter (T Comp)
 Set the completer for this LineEditor.
template<typename T>
void setListCompleter (T Comp)
 Set the completer for this LineEditor to the given list completer.
LLVM_ABI CompletionAction getCompletionAction (StringRef Buffer, size_t Pos) const
 Use the current completer to produce a CompletionAction for the given completion request.
const std::string & getPrompt () const
void setPrompt (const std::string &P)

Static Public Member Functions

static LLVM_ABI std::string getDefaultHistoryPath (StringRef ProgName)

Detailed Description

Definition at line 23 of file LineEditor.h.

Constructor & Destructor Documentation

◆ LineEditor()

LineEditor::LineEditor ( StringRef ProgName,
StringRef HistoryPath = "",
FILE * In = stdin,
FILE * Out = stdout,
FILE * Err = stderr )

Create a LineEditor object.

Parameters
ProgNameThe name of the current program. Used to form a default prompt.
HistoryPathPath to the file in which to store history data, if possible.
InThe input stream used by the editor.
OutThe output stream used by the editor.
ErrThe error stream used by the editor.

Definition at line 287 of file LineEditor.cpp.

◆ ~LineEditor()

LineEditor::~LineEditor ( )

Definition at line 294 of file LineEditor.cpp.

Member Function Documentation

◆ getCompletionAction()

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.

Parameters
BufferThe string to complete
PosThe 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.

◆ getDefaultHistoryPath()

std::string LineEditor::getDefaultHistoryPath ( StringRef ProgName)
static

Definition at line 25 of file LineEditor.cpp.

References llvm::sys::path::append(), and llvm::sys::path::home_directory().

◆ getPrompt()

const std::string & llvm::LineEditor::getPrompt ( ) const
inline

Definition at line 108 of file LineEditor.h.

◆ loadHistory()

void LineEditor::loadHistory ( )

Definition at line 299 of file LineEditor.cpp.

◆ readLine()

std::optional< std::string > LineEditor::readLine ( ) const

Reads a line.

Returns
The line, or std::optional<std::string>() on EOF.

Definition at line 302 of file LineEditor.cpp.

◆ saveHistory()

void LineEditor::saveHistory ( )

Definition at line 298 of file LineEditor.cpp.

◆ setCompleter()

template<typename T>
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 86 of file LineEditor.h.

References T.

◆ setHistorySize()

void LineEditor::setHistorySize ( int size)

Definition at line 300 of file LineEditor.cpp.

References llvm::size().

◆ setListCompleter()

template<typename T>
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 94 of file LineEditor.h.

References T.

◆ setPrompt()

void llvm::LineEditor::setPrompt ( const std::string & P)
inline

Definition at line 109 of file LineEditor.h.

References P.


The documentation for this class was generated from the following files: