summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/tools/smlfmt/default.nix37
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 39 insertions, 0 deletions
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 {