editline-0.2.1.1: Bindings to the editline library (libedit).

Portability | non-portable (requires libedit)
Stability | provisional
Maintainer | judah.jacobson@gmail.com
Safe Haskell | None

System.Console.Editline.Readline

Description

This module provides a subset of the functions from System.Console.Readline, which is distributed in the readline package. However, because this package links against editline (http://www.thrysoee.dk/editline/) instead of readline, programs using this module are not required to be distributed under the GPL.

An example of a typical use of the readline API with history functionality is illustrated in the following read, eval, print loop:

     readEvalPrintLoop :: IO ()
     readEvalPrintLoop = do
       maybeLine <- readline "% "
       case maybeLine of
        Nothing     -> return () -- EOF / control-d
        Just "exit" -> return ()
        Just line -> do addHistory line
                        putStrLn $ "The user input: " ++ (show line)
                        readEvalPrintLoop

Synopsis

- readline :: String -> IO (Maybe String)
- addHistory :: String -> IO ()
- readHistory :: FilePath -> IO Bool
- writeHistory :: FilePath -> IO Bool
- clearHistory :: IO ()
- stifleHistory :: Int -> IO ()
- unstifleHistory :: IO Int
- historyIsStifled :: IO Bool
- historyMaxEntries :: IO Int
- getLineBuffer :: IO String
- getPoint :: IO Int
- setPoint :: Int -> IO ()
- getEnd :: IO Int
- setEnd :: Int -> IO ()
- getPrompt :: IO String
- getLibraryVersion :: IO String
- getTerminalName :: IO String
- setReadlineName :: String -> IO ()
- getInStream :: IO Handle
- getOutStream :: IO Handle
- setStartupHook :: Maybe (IO ()) -> IO ()
- setRedisplayFunction :: Maybe (IO ()) -> IO ()
- type Callback = Int -> Char -> IO Int
- addDefun :: String -> Callback -> Maybe Char -> IO ()
- bindKey :: Char -> Callback -> IO ()
- parseAndBind :: String -> IO ()
- readInitFile :: String -> IO ()
- redisplay :: IO ()
- readKey :: IO Char
- stuffChar :: Char -> IO Bool
- initialize :: IO ()
- resetTerminal :: Maybe String -> IO ()
- callbackHandlerInstall :: String -> (String -> IO ()) -> IO (IO ())
- callbackReadChar :: IO ()
- complete :: Int -> Char -> IO Int
- completionMatches :: String -> (String -> IO [String]) -> IO (Maybe (String, [String]))
- filenameCompletionFunction :: String -> IO [String]
- usernameCompletionFunction :: String -> IO [String]
- setCompletionEntryFunction :: Maybe (String -> IO [String]) -> IO ()
- setAttemptedCompletionFunction :: Maybe (String -> Int -> Int -> IO (Maybe (String, [String]))) -> IO ()
- getCompletionQueryItems :: IO Int
- setCompletionQueryItems :: Int -> IO ()
- getBasicWordBreakCharacters :: IO String
- setBasicWordBreakCharacters :: String -> IO ()
- getCompleterWordBreakCharacters :: IO String
- setCompleterWordBreakCharacters :: String -> IO ()
- getCompleterQuoteCharacters :: IO String
- setCompleterQuoteCharacters :: String -> IO ()
- getSpecialPrefixes :: IO String
- setSpecialPrefixes :: String -> IO ()
- getCompletionAppendCharacter :: IO (Maybe Char)
- setCompletionAppendCharacter :: Maybe Char -> IO ()
- setInhibitCompletion :: Bool -> IO ()
- getInhibitCompletion :: IO Bool
- setAttemptedCompletionOver :: Bool -> IO ()
- getAttemptedCompletionOver :: IO Bool

# Documentation

readline Source

Arguments

:: String | prompt
-> IO (Maybe String) | returns the line the user input, or Nothing if EOF is encountered.

readline is similar to `getLine`, but with rich edit functionality and history capability. readline will read a line from the terminal and return it, using prompt as a prompt. If prompt is the empty string, no prompt is issued. The line returned has the final newline removed, so only the text of the line remains. A blank line returns the empty string. If EOF is encountered while reading a line, and the line is empty, Nothing is returned. If an EOF is read with a non-empty line, it is treated as a newline.

addHistory :: String -> IO ()Source

Add this command to the history. This allows users to search backward through history with C-r and step through with up and down arrows, among other things.

readHistory Source

Arguments

:: FilePath | The file to read.
-> IO Bool |

Read in a history file. Returns `False` on failure (for example, if the file does not exist).

writeHistory Source

Arguments

:: FilePath | The file to write.
-> IO Bool |

Write out a history file. Returns `False` if there was a problem writing the file.

clearHistory :: IO ()Source

Clear the history.

stifleHistory :: Int -> IO ()Source

Stifle the history list, remembering only a certain number of entries.

unstifleHistory :: IO Int Source

Stop stifling the history, returning the previous amount the history was stifled by.

historyIsStifled :: IO Bool Source

Check whether the history is stifled or not. True if stifled, False if not.

historyMaxEntries :: IO Int Source

Get the maximum number of history entries, returning 0 if the history is unstifled.

getLineBuffer :: IO String Source

getPoint :: IO Int Source

setPoint :: Int -> IO ()Source

getEnd :: IO Int Source

setEnd :: Int -> IO ()Source

getPrompt :: IO String Source

getLibraryVersion :: IO String Source

getTerminalName :: IO String Source

setReadlineName :: String -> IO ()Source

getInStream :: IO Handle Source

getOutStream :: IO Handle Source

setStartupHook :: Maybe (IO ()) -> IO ()Source

setRedisplayFunction :: Maybe (IO ()) -> IO ()Source

type Callback = Int -> Char -> IO Int Source

addDefun :: String -> Callback -> Maybe Char -> IO ()Source

bindKey :: Char -> Callback -> IO ()Source

parseAndBind :: String -> IO ()Source

readInitFile :: String -> IO ()Source

redisplay :: IO ()Source

readKey :: IO Char Source

stuffChar :: Char -> IO Bool Source

initialize :: IO ()Source

resetTerminal :: Maybe String -> IO ()Source

callbackHandlerInstall :: String -> (String -> IO ()) -> IO (IO ())Source

callbackReadChar :: IO ()Source

complete :: Int -> Char -> IO Int Source

completionMatches :: String -> (String -> IO [String]) -> IO (Maybe (String, [String]))Source

filenameCompletionFunction :: String -> IO [String]Source

usernameCompletionFunction :: String -> IO [String]Source

setCompletionEntryFunction :: Maybe (String -> IO [String]) -> IO ()Source

setAttemptedCompletionFunction :: Maybe (String -> Int -> Int -> IO (Maybe (String, [String]))) -> IO ()Source

getCompletionQueryItems :: IO Int Source

setCompletionQueryItems :: Int -> IO ()Source

getBasicWordBreakCharacters :: IO String Source

setBasicWordBreakCharacters :: String -> IO ()Source

getCompleterWordBreakCharacters :: IO String Source

setCompleterWordBreakCharacters :: String -> IO ()Source

getCompleterQuoteCharacters :: IO String Source

setCompleterQuoteCharacters :: String -> IO ()Source

getSpecialPrefixes :: IO String Source

setSpecialPrefixes :: String -> IO ()Source

getCompletionAppendCharacter :: IO (Maybe Char)Source

setCompletionAppendCharacter :: Maybe Char -> IO ()Source

setInhibitCompletion :: Bool -> IO ()Source

getInhibitCompletion :: IO Bool Source

setAttemptedCompletionOver :: Bool -> IO ()Source

getAttemptedCompletionOver :: IO Bool Source