matrix-media-expanded/README.md
2021-08-04 10:33:51 -04:00

1.9 KiB

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,