#haskell #watch #compile #ghci #notify

bin+lib ghciwatch

Ghciwatch loads a GHCi session for a Haskell project and reloads it when source files change

27 releases (3 stable)

new 1.0.2 Dec 3, 2024
1.0.1 Jul 24, 2024
1.0.0 Jun 12, 2024
0.5.16 May 24, 2024
0.5.3 Nov 30, 2023

#218 in Development tools

Download history 13/week @ 2024-09-14 9/week @ 2024-09-21 39/week @ 2024-09-28 1/week @ 2024-10-12 132/week @ 2024-11-30

133 downloads per month

MIT license

325KB
7K SLoC

ghciwatch

Packaging status
Packaging status
User manual

Ghciwatch loads a GHCi session for a Haskell project and reloads it when source files change.

Features

  • GHCi output is displayed to the user as soon as it's printed.
  • Ghciwatch can handle new modules, removed modules, or moved modules without a hitch
  • A variety of lifecycle hooks let you run Haskell code or shell commands on a variety of events.
  • Custom globs can be supplied to reload or restart the GHCi session when non-Haskell files (like templates or database schema definitions) change.
  • Ghciwatch can clear the screen between reloads.
  • Compilation errors can be written to a file with --error-file, for compatibility with ghcid's --outputfile option.
  • Comments starting with -- $> can be evaluated in GHCi.
    • Eval comments have access to the top-level bindings of the module they're defined in, including unexported bindings.
    • Multi-line eval comments are supported with {- $> ... <$ -}.

Demo

Check out a quick demo to see how ghciwatch feels in practice:

Learn More

Read the manual here.

Developing ghciwatch

See CONTRIBUTING.md for information on hacking ghciwatch.

Dependencies

~25–39MB
~613K SLoC