diff --git a/src/dune_rules/merlin.ml b/src/dune_rules/merlin.ml index da282eee569..349b0f0e973 100644 --- a/src/dune_rules/merlin.ml +++ b/src/dune_rules/merlin.ml @@ -131,7 +131,7 @@ module Processed = struct if String.need_quoting s then Filename.quote s else s let to_dot_merlin stdlib_dir pp_configs flags obj_dirs src_dirs extensions - (* TODO print melange flag *) _mode = + mode = let b = Buffer.create 256 in let printf = Printf.bprintf b in let print = Buffer.add_string b in @@ -156,6 +156,11 @@ module Processed = struct print "# FLG"; List.iter flags ~f:(fun f -> printf " %s" (quote_for_dot_merlin f)); print "\n"); + let () = + match mode with + | `Ocaml -> () + | `Melange -> print "# FLG -ppx melc -as-ppx -bs-jsx 3\n" + in Buffer.contents b let get { modules; pp_config; config } ~filename = diff --git a/test/blackbox-tests/test-cases/melange/merlin.t b/test/blackbox-tests/test-cases/melange/merlin.t index d64fa56516a..902730b52bf 100644 --- a/test/blackbox-tests/test-cases/melange/merlin.t +++ b/test/blackbox-tests/test-cases/melange/merlin.t @@ -49,3 +49,11 @@ The melange.emit entry contains a ppx directive $ dune ocaml merlin dump-config $PWD | grep -i "ppx" (FLG (-ppx "melc -as-ppx -bs-jsx 3")) + + $ dune ocaml dump-dot-merlin $PWD + EXCLUDE_QUERY_DIR + STDLIB /home/me/code/dune/_opam/lib/melange + B $TESTCASE_ROOT/_build/default/.output.mobjs/melange + S $TESTCASE_ROOT + # FLG -w @1..3@5..28@30..39@43@46..47@49..57@61..62@67@69-40 -strict-sequence -strict-formats -short-paths -keep-locs + # FLG -ppx melc -as-ppx -bs-jsx 3