haskeline-0.7.4.0: A command-line interface for user input, written in Haskell.

Safe Haskell | None
Language | Haskell98

System.Console.Haskeline.Completion

Contents

- Word completion
- Filename completion

Synopsis

- type CompletionFunc m = (String, String) -> m (String, [Completion])
- data Completion = Completion {
  - replacement :: String
  - display :: String
  - isFinished :: Bool
  }
- noCompletion :: Monad m => CompletionFunc m
- simpleCompletion :: String -> Completion
- completeWord :: Monad m => Maybe Char -> [Char] -> (String -> m [Completion]) -> CompletionFunc m
- completeWordWithPrev :: Monad m => Maybe Char -> [Char] -> (String -> String -> m [Completion]) -> CompletionFunc m
- completeQuotedWord :: Monad m => Maybe Char -> [Char] -> (String -> m [Completion]) -> CompletionFunc m -> CompletionFunc m
- completeFilename :: MonadIO m => CompletionFunc m
- listFiles :: MonadIO m => FilePath -> m [Completion]
- filenameWordBreakChars :: String

# Documentation

type CompletionFunc m = (String, String) -> m (String, [Completion]) #

Performs completions from the given line state.

The first `String` argument is the contents of the line to the left of the cursor, reversed. The second `String` argument is the contents of the line to the right of the cursor.

The output `String` is the unused portion of the left half of the line, reversed.

data Completion #

Constructors

Completion |

Fields

- replacement :: String

  Text to insert in line.

- display :: String

  Text to display when listing alternatives.

- isFinished :: Bool

  Whether this word should be followed by a space, end quote, etc.

Instances

Eq Completion # |
Methods (==) :: Completion -> Completion -> Bool # (/=) :: Completion -> Completion -> Bool #
Ord Completion # |
Methods compare :: Completion -> Completion -> Ordering # (<) :: Completion -> Completion -> Bool # (<=) :: Completion -> Completion -> Bool # (>) :: Completion -> Completion -> Bool # (>=) :: Completion -> Completion -> Bool # max :: Completion -> Completion -> Completion # min :: Completion -> Completion -> Completion #
Show Completion # |
Methods showsPrec :: Int -> Completion -> ShowS Source # show :: Completion -> String Source # showList :: [Completion] -> ShowS Source #

noCompletion :: Monad m => CompletionFunc m #

Disable completion altogether.

simpleCompletion :: String -> Completion #

Create a finished completion out of the given word.

# Word completion

completeWord #

Arguments

:: Monad m |
=> Maybe Char | An optional escape character
-> [Char] | Characters which count as whitespace
-> (String -> m [Completion]) | Function to produce a list of possible completions
-> CompletionFunc m |

A custom `CompletionFunc` which completes the word immediately to the left of the cursor.

A word begins either at the start of the line or after an unescaped whitespace character.

completeWordWithPrev #

Arguments

:: Monad m |
=> Maybe Char | An optional escape character
-> [Char] | Characters which count as whitespace
-> (String -> String -> m [Completion]) | Function to produce a list of possible completions. The first argument is the line contents to the left of the word, reversed. The second argument is the word to be completed.
-> CompletionFunc m |

A custom `CompletionFunc` which completes the word immediately to the left of the cursor, and takes into account the line contents to the left of the word.

A word begins either at the start of the line or after an unescaped whitespace character.

completeQuotedWord #

Arguments

:: Monad m |
=> Maybe Char | An optional escape character
-> [Char] | Characters which set off quotes
-> (String -> m [Completion]) | Function to produce a list of possible completions
-> CompletionFunc m | Alternate completion to perform if the cursor is not at a quoted word
-> CompletionFunc m |

# Filename completion

completeFilename :: MonadIO m => CompletionFunc m #

listFiles :: MonadIO m => FilePath -> m [Completion] #

List all of the files or folders beginning with this path.

filenameWordBreakChars :: String #