1{
2 lib,
3 fetchurl,
4 fetchpatch,
5 buildDunePackage,
6 replaceVars,
7 dot-merlin-reader,
8 dune_2,
9 yojson,
10 csexp,
11 result,
12 menhirSdk,
13}:
14
15buildDunePackage rec {
16 pname = "merlin";
17 version = "3.8.0";
18
19 src = fetchurl {
20 url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-${version}.tbz";
21 sha256 = "sha256-wmBGNwXL3BduF4o1sUXtAOUHJ4xmMvsWAxl/QdNj/28=";
22 };
23
24 minimalOCamlVersion = "4.02.3";
25
26 patches = [
27 (replaceVars ./fix-paths.patch {
28 dot-merlin-reader = "${dot-merlin-reader}/bin/dot-merlin-reader";
29 dune = "${dune_2}/bin/dune";
30 })
31 # https://github.com/ocaml/merlin/pull/1798
32 (fetchpatch {
33 name = "vim-python-12-syntax-warning-fix.patch";
34 url = "https://github.com/ocaml/merlin/commit/9e0c47b0d5fd0c4edc37c4c7ce927b155877557d.patch";
35 hash = "sha256-HmdTISE/s45C5cwLgsCHNUW6OAPSsvQ/GcJE6VDEobs=";
36 })
37 ];
38
39 strictDeps = true;
40
41 buildInputs = [
42 dot-merlin-reader
43 yojson
44 csexp
45 result
46 menhirSdk
47 ];
48
49 meta = with lib; {
50 description = "Editor-independent tool to ease the development of programs in OCaml";
51 homepage = "https://github.com/ocaml/merlin";
52 license = licenses.mit;
53 maintainers = [ maintainers.vbgl ];
54 };
55}