diff options
author | Kevin Rauscher <kevin.rauscher@tomahna.fr> | 2019-04-27 18:57:03 +0200 |
---|---|---|
committer | Kevin Rauscher <kevin.rauscher@tomahna.fr> | 2019-09-24 09:04:38 +0200 |
commit | 9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a (patch) | |
tree | 8122fd07c8c951d1447bfb36764b992a8c15363a /pkgs/development/tools/metals | |
parent | 5426932f7c664a8765d6904af20ef21310e95d4f (diff) | |
download | nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar.gz nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar.bz2 nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar.lz nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar.xz nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.tar.zst nixpkgs-9a966071d7e0a41ef1fda6c3c0a4b28b6c95976a.zip |
metals: init at 0.7.6
Diffstat (limited to 'pkgs/development/tools/metals')
-rw-r--r-- | pkgs/development/tools/metals/default.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix new file mode 100644 index 00000000000..415479edc84 --- /dev/null +++ b/pkgs/development/tools/metals/default.nix @@ -0,0 +1,57 @@ +{ stdenv, lib, coursier, jdk, jre, makeWrapper }: + +let + baseName = "metals"; + version = "0.7.6"; + deps = stdenv.mkDerivation { + name = "${baseName}-deps-${version}"; + buildCommand = '' + export COURSIER_CACHE=$(pwd) + ${coursier}/bin/coursier fetch org.scalameta:metals_2.12:${version} \ + -r bintray:scalacenter/releases \ + -r sonatype:snapshots > deps + mkdir -p $out/share/java + cp -n $(< deps) $out/share/java/ + ''; + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "03vx8n77mndpqbvq14cy3k9r4jwgjacrv56v5n87da8rqiclx37j"; + }; +in +stdenv.mkDerivation rec { + name = "${baseName}-${version}"; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk deps ]; + + phases = [ "installPhase" ]; + + extraJavaOpts = "-XX:+UseG1GC -XX:+UseStringDeduplication -Xss4m -Xms100m"; + + installPhase = '' + mkdir -p $out/bin + + makeWrapper ${jre}/bin/java $out/bin/metals-emacs \ + --prefix PATH : ${lib.makeBinPath [ jdk ]} \ + --add-flags "${extraJavaOpts} -Dmetals.client=emacs -cp $CLASSPATH scala.meta.metals.Main" + + makeWrapper ${jre}/bin/java $out/bin/metals-vim \ + --prefix PATH : ${lib.makeBinPath [ jdk ]} \ + --add-flags "${extraJavaOpts} -Dmetals.client=coc.nvim -cp $CLASSPATH scala.meta.metals.Main" + + makeWrapper ${jre}/bin/java $out/bin/metals-vim-lsc \ + --prefix PATH : ${lib.makeBinPath [ jdk ]} \ + --add-flags "${extraJavaOpts} -Dmetals.client=vim-lsc -cp $CLASSPATH scala.meta.metals.Main" + + makeWrapper ${jre}/bin/java $out/bin/metals-sublime \ + --prefix PATH : ${lib.makeBinPath [ jdk ]} \ + --add-flags "${extraJavaOpts} -Dmetals.client=sublime -cp $CLASSPATH scala.meta.metals.Main" + ''; + + meta = with stdenv.lib; { + homepage = https://scalameta.org/metals/; + license = licenses.asl20; + description = "Work-in-progress language server for Scala"; + maintainers = with maintainers; [ ceedubs tomahna ]; + }; +} |