Crate ghciwatch

source ·
Expand description

ghciwatch is a ghci-based file watcher and recompiler for Haskell projects, leveraging Haskell’s interpreted mode for faster reloads.

ghciwatch watches your modules for changes and reloads them in a ghci session, displaying any errors.

Note that the ghciwatch Rust library is a convenience and shouldn’t be depended on. I do not consider this to be a public/stable API and will make breaking changes here in minor version bumps. If you’d like a stable ghciwatch Rust API for some reason, let me know and we can maybe work something out.

Modules§

  • Command-line argument parser and argument access.

Structs§

  • A ghci session.
  • Options for constructing a Ghci. This is like a lower-effort builder interface, mostly provided because Rust tragically lacks named arguments.
  • A dynamically reconfigurable sink for ghci process output. Built for use in GhciOpts, but usable as a general purpose clonable AsyncWriter.
  • A shutdown was requested.
  • A handle to the shutdown system.
  • A manager for shutting down the program gracefully.
  • Options for initializing the tracing logging framework. This is like a lower-effort builder interface, mostly provided because Rust tragically lacks named arguments.
  • Options for run_watcher. This is like a lower-effort builder interface, mostly provided because Rust tragically lacks named arguments.

Functions§

  • Start the Ghci subsystem.
  • Start the terminal event loop, reading output from the given readers.
  • A notify watcher which waits for file changes and sends reload events to the contained ghci session.