about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix')
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix
new file mode 100644
index 000000000000..b501282c1558
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix
@@ -0,0 +1,44 @@
+{ buildDunePackage
+, stdlib-shims
+, ppx_yojson_conv_lib
+, ocaml-syntax-shims
+, jsonrpc
+, omd
+, octavius
+, dune-build-info
+, uutf
+, csexp
+, cmdliner
+}:
+
+buildDunePackage {
+  pname = "lsp";
+  inherit (jsonrpc) version src;
+  useDune2 = true;
+  minimumOCamlVersion = "4.06";
+
+  # unvendor some (not all) dependencies.
+  # They are vendored by upstream only because it is then easier to install
+  # ocaml-lsp without messing with your opam switch, but nix should prevent
+  # this type of problems without resorting to vendoring.
+  preBuild = ''
+    rm -r ocaml-lsp-server/vendor/{octavius,uutf,ocaml-syntax-shims,omd,cmdliner}
+  '';
+
+  buildInputs = [
+    stdlib-shims
+    ppx_yojson_conv_lib
+    ocaml-syntax-shims
+    octavius
+    uutf
+    csexp
+    dune-build-info
+    omd
+    cmdliner
+    jsonrpc
+  ];
+
+  meta = jsonrpc.meta // {
+    description = "LSP protocol implementation in OCaml";
+  };
+}