{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
treefmt-nix.url = "github:numtide/treefmt-nix";
ocaml-lsp.url = "github:ocaml/ocaml-lsp";
};
outputs = { self, nixpkgs, ocaml-lsp, systems, treefmt-nix }:
let
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
treefmtEval = eachSystem (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
in
{
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
checks = eachSystem (pkgs: {
formatting = treefmtEval.${pkgs.system}.config.build.check self;
});
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
buildInputs = [ ocaml-lsp.packages.${pkgs.system}.default ];
};
});
};
}