No description
Find a file
Sridhar Ratnakumar 0004e58d30 Advance nixpkgs
2021-09-25 11:45:19 -04:00
.vscode Update settings.json 2021-05-31 19:35:01 -04:00
bin remove unused env 2021-05-31 22:25:32 -04:00
src init 2021-05-31 19:21:58 -04:00
.ghcid Remove cli args 2021-05-31 22:26:25 -04:00
.gitignore Remove unused entry 2021-05-31 22:26:47 -04:00
default.nix init 2021-05-31 19:21:58 -04:00
flake.lock Advance nixpkgs 2021-09-25 11:45:19 -04:00
flake.nix doc, callCabal2nix 2021-05-31 22:46:25 -04:00
haskell-template.cabal Relicense under MIT 2021-08-04 10:33:15 -04:00
hie.yaml init 2021-05-31 19:21:58 -04:00
LICENSE Relicense under MIT 2021-08-04 10:33:15 -04:00
README.md Run 'nix flake update' 2021-08-04 10:33:51 -04:00
shell.nix init 2021-05-31 19:21:58 -04:00

haskell-template

Haskell project template optimized for a fully reproducible and friendly development environment. Based on Nix + Flakes + VSCode (HLS) + ormolu autoformatting + Relude as Prelude.

Getting Started

  • Install Nix & enable Flakes
  • Run nix-shell --run haskell-language-server to sanity check your environment
  • Open as single-folder workspace in Visual Studio Code
    • Install the workspace recommended extensions
    • Ctrl+Shift+P to run command "Nix-Env: Select Environment" and select shell.nix. The extension will ask you to reload VSCode at the end.
  • Press Ctrl+Shift+B in VSCode, or run bin/run (bin/run-via-tmux if you have tmux installed) in terminal, to launch Ghcid running your program.

All but the final step need to be done only once.

Then, before using it for real,

  • Rename all occurrences of haskell-template to myproject, as well as rename the cabal file to myproject.cabal.
    • To do this from commandline, run nix run nixpkgs#sd -- haskell-template myproject * */*
  • Run git add . && git commit -m rename followed by nix develop (or bin/run) to verify that everything continues to work.

Tips

  • Run nix flake update to nixpkgs and other flake inputs.

Other templates

Some related templates include,