diff --git a/pkgs/development/coq-modules/coq-lsp/default.nix b/pkgs/development/coq-modules/coq-lsp/default.nix new file mode 100644 index 000000000000..e75171a94384 --- /dev/null +++ b/pkgs/development/coq-modules/coq-lsp/default.nix @@ -0,0 +1,36 @@ +{ lib, mkCoqDerivation, coq, serapi, makeWrapper, version ? null }: + +mkCoqDerivation rec { + pname = "coq-lsp"; + owner = "ejgallego"; + namePrefix = [ ]; + + useDune = true; + + release."0.1.6.1+8.16".sha256 = "sha256-aX8/pN4fVYaF7ZEPYfvYpEZLiQM++ZG1fAhiLftQ9Aw="; + + inherit version; + defaultVersion = with lib.versions; lib.switch coq.coq-version [ + { case = isEq "8.16"; out = "0.1.6.1+8.16"; } + ] null; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + dune install ${pname} --prefix=$out + wrapProgram $out/bin/coq-lsp --prefix OCAMLPATH : $OCAMLPATH + runHook postInstall + ''; + + propagatedBuildInputs = [ serapi ] + ++ (with coq.ocamlPackages; [ camlp-streams dune-build-info menhir uri yojson ]); + + meta = with lib; { + description = "Language Server Protocol and VS Code Extension for Coq"; + homepage = "https://github.com/ejgallego/coq-lsp"; + changelog = "https://github.com/ejgallego/coq-lsp/blob/${defaultVersion}/CHANGES.md"; + maintainers = with maintainers; [ marsam ]; + license = licenses.lgpl21Only; + }; +} diff --git a/pkgs/development/coq-modules/serapi/default.nix b/pkgs/development/coq-modules/serapi/default.nix index 27641f4f5a99..260f6fb0a9d3 100644 --- a/pkgs/development/coq-modules/serapi/default.nix +++ b/pkgs/development/coq-modules/serapi/default.nix @@ -2,7 +2,7 @@ let release = { - "8.16.0+0.16.0".sha256 = "sha256-Of5vO6wvqGyxagjGuuY3qCiLKbBr3VzLHiIn9U2R21E="; + "8.16.0+0.16.3".sha256 = "sha256-22Kawp8jAsgyBTppwN5vmN7zEaB1QfPs0qKxd6x/7Uc="; "8.15.0+0.15.0".sha256 = "1vh99ya2dq6a8xl2jrilgs0rpj4j227qx8zvzd2v5xylx0p4bbrp"; "8.14.0+0.14.0".sha256 = "1kh80yb791yl771qbqkvwhbhydfii23a7lql0jgifvllm2k8hd8d"; "8.13.0+0.13.0".sha256 = "0k69907xn4k61w4mkhwf8kh8drw9pijk9ynijsppihw98j8w38fy"; @@ -18,7 +18,7 @@ in defaultVersion = with versions; lib.switch coq.version [ - { case = isEq "8.16"; out = "8.16.0+0.16.0"; } + { case = isEq "8.16"; out = "8.16.0+0.16.3"; } { case = isEq "8.15"; out = "8.15.0+0.15.0"; } { case = isEq "8.14"; out = "8.14.0+0.14.0"; } { case = isEq "8.13"; out = "8.13.0+0.13.0"; } @@ -88,7 +88,7 @@ in ]; propagatedBuildInputs = o.propagatedBuildInputs ++ - lib.optional (version == "8.16.0+0.16.0" || version == "dev") coq.ocamlPackages.ppx_hash + lib.optional (version == "8.16.0+0.16.3" || version == "dev") coq.ocamlPackages.ppx_hash ; }) diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index 261bfb09f410..64121de7ca40 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -34,6 +34,7 @@ let coq-elpi = callPackage ../development/coq-modules/coq-elpi {}; coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {}; coq-haskell = callPackage ../development/coq-modules/coq-haskell { }; + coq-lsp = callPackage ../development/coq-modules/coq-lsp {}; coq-record-update = callPackage ../development/coq-modules/coq-record-update { }; coqeal = callPackage ../development/coq-modules/coqeal {}; coqhammer = callPackage ../development/coq-modules/coqhammer {};