LLVM 19.0.0git
Classes | Public Member Functions | Static Public Member Functions | List of all members
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

 LineEditor (StringRef ProgName, StringRef HistoryPath="", FILE *In=stdin, FILE *Out=stdout, FILE *Err=stderr)
 Create a LineEditor object.
 
 ~LineEditor ()
 
std::optional< std::string > readLine () const
 Reads a line.
 
void saveHistory ()
 
void loadHistory ()
 
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.
 
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 std::string getDefaultHistoryPath (StringRef ProgName)
 

Detailed Description

Definition at line 22 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 281 of file LineEditor.cpp.

◆ ~LineEditor()

LineEditor::~LineEditor ( )

Definition at line 288 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 81 of file LineEditor.cpp.

References llvm::LineEditor::CompletionAction::AK_ShowCompletions.

◆ getDefaultHistoryPath()

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

Definition at line 24 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 105 of file LineEditor.h.

◆ loadHistory()

void LineEditor::loadHistory ( )

Definition at line 293 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 295 of file LineEditor.cpp.

◆ saveHistory()

void LineEditor::saveHistory ( )

Definition at line 292 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 84 of file LineEditor.h.

◆ 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 92 of file LineEditor.h.

◆ setPrompt()

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

Definition at line 106 of file LineEditor.h.

References P.


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