diff --git a/pkgs/development/tools/smlfmt/default.nix b/pkgs/development/tools/smlfmt/default.nix new file mode 100644 index 000000000000..1475de94193d --- /dev/null +++ b/pkgs/development/tools/smlfmt/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, mlton }: + +stdenv.mkDerivation rec { + pname = "smlfmt"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "shwestrick"; + repo = pname; + rev = "v${version}"; + hash = "sha256-7CTfMiEvuOena5SOE0qKpFPq6ARxmkE6d+loznZNbC0="; + }; + + nativeBuildInputs = [ mlton ]; + + installPhase = '' + runHook preInstall + install -Dm755 -t $out/bin smlfmt + runHook postInstall + ''; + + meta = { + description = "A custom parser/auto-formatter for Standard ML"; + longDescription = '' + A custom parser and code formatter for Standard ML, with helpful error messages. + + Supports SML source files (.sml, .sig, .fun, etc.) as well as MLBasis + compilation files (.mlb) using MLton conventions, including MLBasis path + maps. + ''; + + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ munksgaard ]; + platforms = mlton.meta.platforms; + homepage = "https://github.com/shwestrick/smlfmt"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 967dcde1c9a5..6a8d3c1a90c8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15591,6 +15591,8 @@ with pkgs; shmig = callPackage ../development/tools/database/shmig { }; + smlfmt = callPackage ../development/tools/smlfmt { }; + # smlnjBootstrap should be redundant, now that smlnj works on Darwin natively smlnjBootstrap = callPackage ../development/compilers/smlnj/bootstrap.nix { }; smlnj = callPackage ../development/compilers/smlnj {