shithub: MicroHs

ref: cc5f799ee6b51ce2859a74dbcd36b484d805732c
dir: /ghc/System/Console/SimpleReadline.hs/

View raw version
module System.Console.SimpleReadline(
--  getInputLine,
  getInputLineHist,
  getInputLineHistComp,
  ) where
import qualified System.Console.Haskeline as H
import System.Console.Haskeline hiding (getInputLine)

{-
getInputLine :: String -> IO (Maybe String)
getInputLine prompt =
  runInputT defaultSettings (H.getInputLine prompt)
-}

getInputLineHist :: FilePath -> String -> IO (Maybe String)
getInputLineHist hist prompt =
  runInputT settings (H.getInputLine prompt)
  where settings = defaultSettings { historyFile = Just hist }

getInputLineHistComp :: ((String, String) -> IO [String]) -> FilePath -> String -> IO (Maybe String)
getInputLineHistComp comp hist prompt =
  runInputT settings (H.getInputLine prompt)
  where settings = setComplete hcomp $ defaultSettings { historyFile = Just hist }
        hcomp :: CompletionFunc IO
        hcomp pp@(pre, _) = do
          alts <- comp pp
          return (pre, map (\ s -> Completion s s False) alts)