aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide/wg_Command.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ide/wg_Command.ml')
-rw-r--r--ide/wg_Command.ml38
1 files changed, 16 insertions, 22 deletions
diff --git a/ide/wg_Command.ml b/ide/wg_Command.ml
index 2e4ce364d..98ce63faf 100644
--- a/ide/wg_Command.ml
+++ b/ide/wg_Command.ml
@@ -111,18 +111,16 @@ object(self)
if String.get com (String.length com - 1) = '.'
then com ^ " " else com ^ " " ^ entry#text ^" . "
in
- let insert level message =
- result#buffer#insert message;
- result#buffer#insert "\n"
+ let log level message = result#buffer#insert (message^"\n")
in
- let process handle =
- let answer = match Coq.interp handle insert ~raw:true phrase with
- | Interface.Fail (l,str) ->
- "Error while interpreting "^phrase^":\n"^str
- | Interface.Good results | Interface.Unsafe results ->
- "Result for command " ^ phrase ^ ":\n" ^ results
- in
- result#buffer#insert answer
+ let process h k =
+ Coq.interp ~logger:log ~raw:true phrase h (function
+ |Interface.Fail (l,str) ->
+ result#buffer#insert ("Error while interpreting "^phrase^":\n"^str);
+ k ()
+ |Interface.Good res | Interface.Unsafe res ->
+ result#buffer#insert ("Result for command " ^ phrase ^ ":\n" ^ res);
+ k ())
in
result#buffer#set_text "";
Coq.try_grab coqtop process ignore
@@ -130,17 +128,13 @@ object(self)
ignore (combo#entry#connect#activate ~callback:(on_activate callback));
ignore (ok_b#connect#clicked ~callback:(on_activate callback));
- begin match command,term with
- | None,None -> ()
- | Some c, None ->
- combo#entry#set_text c;
-
- | Some c, Some t ->
- combo#entry#set_text c;
- entry#set_text t
-
- | None , Some t ->
- entry#set_text t
+ begin match command with
+ | None -> ()
+ | Some c -> combo#entry#set_text c
+ end;
+ begin match term with
+ | None -> ()
+ | Some t -> entry#set_text t
end;
on_activate callback ();
entry#misc#grab_focus ();