LLVM 20.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 ()
 
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.
 
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 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 106 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 85 of file LineEditor.h.

◆ setHistorySize()

void LineEditor::setHistorySize ( int  size)

Definition at line 300 of file LineEditor.cpp.

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

◆ setPrompt()

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

Definition at line 107 of file LineEditor.h.

References P.


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