{"repo":"sdiehl/repline","free":true,"listed":false,"github":"https://github.com/sdiehl/repline","clone":"git clone https://github.com/sdiehl/repline.git","description":"Haskeline wrapper for GHCi-like REPL interfaces","language":"Haskell","stars":108,"topics":["haskell","haskell-library","command-line","repl","readline"],"license":"MIT","category":"cli-tools","readme_excerpt":"Repline ------- Slightly higher level wrapper for creating GHCi-like REPL monads that are composable with normal MTL transformers. Mostly exists because I got tired of implementing the same interface for simple shells over and over and decided to canonize the giant pile of hacks that I use to make Haskeline work. See Documentation for more detailed usage. Examples -------- Simple Prefix Stateful Multiline Migration from 0.3.x -------------------- This release adds two parameters to the ReplOpts constructor and evalRepl function. finaliser multilineCommand The finaliser function is a function run when the Repl monad is is exited. For example: The multilineCommand argument takes a command which invokes a multiline edit mode in which the user can paste/enter text across multiple lines terminating with a Ctrl-D / EOF. This can be used in conjunction with a customBanner function to indicate the entry mode. See Multiline for a complete example. Migration from 0.2.x -------------------- The underlying haskeline library that provides readline support had a breaking API change in 0.8.0.0 which removed the bespoke System.Console.Haskeline.MonadException module in favour of using the exceptions package. This is a much better design and I strongly encourage upgrading. To migrate simply add the following bounds to your Cabal file. You may also need to add the following to your stack.yaml file if using Stack. Usage ----- Trying it out: Stateful Tab Completion ----------------------- Quite ","default_branch":null,"files":null,"tree":[],"storefront":"/r/sdiehl","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sdiehl/repline/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}