diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix index 19b5c122d9e..f63ecd95083 100644 --- a/pkgs/development/beam-modules/default.nix +++ b/pkgs/development/beam-modules/default.nix @@ -35,6 +35,8 @@ let fetchMixDeps = callPackage ./fetch-mix-deps.nix { }; mixRelease = callPackage ./mix-release.nix { }; + erlang-ls = callPackage ./erlang-ls { }; + # BEAM-based languages. elixir = elixir_1_11; diff --git a/pkgs/development/beam-modules/erlang-ls/default.nix b/pkgs/development/beam-modules/erlang-ls/default.nix new file mode 100644 index 00000000000..3f2ae6e7e2f --- /dev/null +++ b/pkgs/development/beam-modules/erlang-ls/default.nix @@ -0,0 +1,34 @@ +{ fetchFromGitHub, fetchHex, stdenv, rebar3WithPlugins, lib }: +let + version = "0.15.0"; + owner = "erlang-ls"; + repo = "erlang_ls"; + deps = import ./rebar-deps.nix { inherit fetchHex fetchFromGitHub; }; +in stdenv.mkDerivation { + inherit version; + pname = "erlang-ls"; + buildInputs = [ (rebar3WithPlugins { }) ]; + src = fetchFromGitHub { + inherit owner repo; + sha256 = "1s6zk8r5plm7ajifz17mvfrnk5mzbhj7alayink9phqbmzrypnfg"; + rev = version; + }; + buildPhase = '' + mkdir _checkouts + ${toString (lib.mapAttrsToList (k: v: '' + cp -R ${v} _checkouts/${k} + '') deps)} + make + ''; + installPhase = '' + mkdir -p $out/bin + cp _build/default/bin/erlang_ls $out/bin/ + cp _build/dap/bin/els_dap $out/bin/ + ''; + meta = with lib; { + homepage = "https://github.com/erlang-ls/erlang_ls"; + description = "The Erlang Language Server"; + platforms = platforms.unix; + license = licenses.asl20; + }; +} diff --git a/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix b/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix new file mode 100644 index 00000000000..9de79e52be6 --- /dev/null +++ b/pkgs/development/beam-modules/erlang-ls/rebar-deps.nix @@ -0,0 +1,90 @@ +# Generated by rebar3_nix +{ fetchHex, fetchFromGitHub }: +{ + getopt = fetchHex { + pkg = "getopt"; + version = "1.0.1"; + sha256 = "sha256-U+Grg7nOtlyWctPno1uAkum9ybPugHIUcaFhwQxZlZw="; + }; + zipper = fetchHex { + pkg = "zipper"; + version = "1.0.1"; + sha256 = "sha256-ah/T4fDMHR31ZCyaDOIXgDZBGwpclkKFHR2idr1zfC0="; + }; + quickrand = fetchHex { + pkg = "quickrand"; + version = "2.0.1"; + sha256 = "sha256-FNtn1K72uIFYEOyfPM714yS3O1bK42h/mddSuFvdTJY="; + }; + providers = fetchHex { + pkg = "providers"; + version = "1.8.1"; + sha256 = "sha256-5FdFrenEdqmkaeoIQOQYqxk2DcRPAaIzME4RikRIa6A="; + }; + katana_code = fetchHex { + pkg = "katana_code"; + version = "0.2.1"; + sha256 = "sha256-hEitP1bZgU+YoovmUPcZG91QZXXjRcwW1YZmCxD26ZI="; + }; + bucs = fetchHex { + pkg = "bucs"; + version = "1.0.16"; + sha256 = "sha256-/2pccqUArXrsHuO6FkrjxFDq3uiYsNFR4frKGKyNDWI="; + }; + yamerl = fetchHex { + pkg = "yamerl"; + version = "0.8.1"; + sha256 = "sha256-lssw+dZDRP7Q74qS6fFvIH3mwE3/9PNmdSynn1vOsj8="; + }; + uuid = fetchHex { + pkg = "uuid_erl"; + version = "2.0.1"; + sha256 = "sha256-q1fKzNUfFwAR5fREzoZfhLQWBeSDqe/MRowa+uyHVTs="; + }; + tdiff = fetchHex { + pkg = "tdiff"; + version = "0.1.2"; + sha256 = "sha256-4MLhaPmSUqWIl2jVyPHmUQoYRZLUz6BrIneKGNM9eHU="; + }; + redbug = fetchHex { + pkg = "redbug"; + version = "2.0.6"; + sha256 = "sha256-qtlJhnH0q5HqylCZ/oWmFhgVimNuYoaJLE989K8XHQQ="; + }; + rebar3_format = fetchHex { + pkg = "rebar3_format"; + version = "0.8.2"; + sha256 = "sha256-yo/ydjjCFpWT0USdrL6IlWNBk+0zNOkGtU/JfwgfUhM="; + }; + ranch = fetchHex { + pkg = "ranch"; + version = "1.7.1"; + sha256 = "sha256-RR2FJ3h99xbZncNhYvygWTSRXbC2FBu9rC6o08evx9c="; + }; + jsx = fetchHex { + pkg = "jsx"; + version = "3.0.0"; + sha256 = "sha256-N77KBDX1yoovRfdqRiEedkGPvvgMNvA2HCSfx1BZ3G0="; + }; + erlfmt = fetchFromGitHub { + owner = "whatsapp"; + repo = "erlfmt"; + rev = "2e93fc4a646111357642b0179a2a63151868d890"; + sha256 = "0n7kygycn05aqdp5dyj192mja89l4nxv2wg16qg2c0bmw9s7j2mr"; + }; + ephemeral = fetchHex { + pkg = "ephemeral"; + version = "2.0.4"; + sha256 = "sha256-Syk9gPdfnEV1/0ucjoiaVoAvQLAYv1fnTxlkTv7myFA="; + }; + elvis_core = fetchHex { + pkg = "elvis_core"; + version = "1.1.1"; + sha256 = "sha256-ORyVuqSfJxjX+0mLzwgEbd/CAs8Kq2Oy5DknFIXJ3EI="; + }; + docsh = fetchHex { + pkg = "docsh"; + version = "0.7.2"; + sha256 = "sha256-Tn20YbsHVA0rw9NmuFE/AZdxLQSVu4V0TzZ9OBUHYTQ="; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index eb7290c3bec..84b5f41d31d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11880,6 +11880,7 @@ in erlang_nox = beam_nox.interpreters.erlang; inherit (beam.packages.erlang) + erlang-ls rebar rebar3 rebar3WithPlugins fetchHex beamPackages relxExe;