In Emacs, when one evaluates a phrase (or more), the utop emacs mode echoes that phrase, which is good. I appends a ;;
at the end, which is likely necessary for the REPL, but I would like this ;;
to not be echoed.
I think this might be tweaked in utop.el
, in utop-insert-output
or in ``utop-process-line`, but I do not have a fine enough understanding of the functions (and of elisp !!) to be sure.
I spotted a function utop-insert-phrase-terminator
in utop.el
that seems to be responsible for what its name implies, so I redefined it as (defun utop-insert-phrase-terminator () ())
.
This seems to be achieving what I want : no more ;;
in echoes of executed code, while still executing it properly.
This works because I also have
(* https://github.com/ocaml-community/utop/issues/131#issuecomment-100916618 *)
let orig_parse = !UTop.parse_toplevel_phrase in
UTop.parse_toplevel_phrase := (fun str eos_is_error -> orig_parse (str ^ ";;") eos_is_error)
which adds the ;;
during the evaluation process.
I will mark this as a solution ti my problem unless I receive contrary advice.