diff --git a/editor.nix b/editor.nix index f297cbf0..bd4029f7 100644 --- a/editor.nix +++ b/editor.nix @@ -7,6 +7,8 @@ let sha256 = "0gpyvzy0yndjaq0aifzjm1c453ar9ma4610v6q5zhbp5vs4padlg"; }) {}; + tshm = pkgs.callPackage ./pkg/tshm.nix {}; + exrc-vim = pkgs.vimUtils.buildVimPlugin { name = "exrc.vim"; src = builtins.fetchTarball { @@ -117,6 +119,7 @@ in { # Tools w/ language server interop hlint stylish-haskell + tshm ]; }; } diff --git a/pkg/tshm.nix b/pkg/tshm.nix new file mode 100644 index 00000000..746f93a3 --- /dev/null +++ b/pkg/tshm.nix @@ -0,0 +1,32 @@ +{ fetchurl, lib, pkgs, stdenv }: + +stdenv.mkDerivation rec { + pname = "tshm"; + version = "0.4.0"; + + src = fetchurl { + url = "https://github.com/samhh/tshm/releases/download/${version}/tshm-linux-amd64"; + sha256 = "03nnhmplmn2mqibqclyr28dhh1v0f4dn18k4rnbvc9xy2l4k32xf"; + }; + + dontUnpack = true; + dontStrip = true; + + installPhase = '' + mkdir -p $out/bin/ + cp $src $out/bin/tshm + chmod +x $out/bin/tshm + ''; + + preFixup = + let libPath = with pkgs; lib.makeLibraryPath [ gmp ]; + in '' + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath ${libPath} $out/bin/tshm + ''; + + meta = { + homepage = "https://github.com/samhh/tshm"; + description = "A parser and formatter for TypeScript declarations that outputs HM-style type signatures."; + license = lib.licenses.mit; + }; +}