(fun ~title ~message ->
MatitaGtkMisc.ask_confirmation ~title ~message
~parent:gui#main#toplevel ())
- ~develcreator:gui#createDevelopment
()
in
+ Predefined_virtuals.load_predefined_virtuals ();
+ Predefined_virtuals.load_predefined_classes ();
gui#sourceView#source_buffer#begin_not_undoable_action ();
s#reset ();
s#template ();
(** {{{ Debugging *)
let _ =
- if BuildTimeConf.debug then begin
+ if BuildTimeConf.debug ||
+ Helm_registry.get_bool "matita.debug_menu"
+ then begin
gui#main#debugMenu#misc#show ();
let addDebugItem ~label callback =
let item =
let addDebugSeparator () =
ignore (GMenu.separator_item ~packing:gui#main#debugMenu_menu#append ())
in
+ addDebugItem "dump aliases" (fun _ ->
+ let status = script#lexicon_status in
+ HLog.debug (String.concat "\n"
+ (DisambiguateTypes.Environment.fold
+ (fun _ x l -> (LexiconAstPp.pp_alias x)::l)
+ status.LexiconEngine.aliases [])));
addDebugItem "dump environment to \"env.dump\"" (fun _ ->
let oc = open_out "env.dump" in
CicEnvironment.dump_to_channel oc;
(MatitaScript.current ())#grafite_status.GrafiteTypes.proof_status
with
| GrafiteTypes.No_proof -> (Cic.Implicit None)
- | Incomplete_proof i -> let _,_,_subst,p,_, _ = i.GrafiteTypes.proof in p
- | Proof p -> let _,_,_subst,p,_, _ = p in p
+ | Incomplete_proof i ->
+ let _,_,_subst,p,_, _ = i.GrafiteTypes.proof in
+ Lazy.force p
+ | Proof p -> let _,_,_subst,p,_, _ = p in Lazy.force p
| Intermediate _ -> assert false)));
addDebugItem "Print current proof (natural language) to stderr"
(fun _ ->
prerr_endline
(ApplyTransformation.txt_of_cic_object 120 GrafiteAst.Declarative ""
+ ~map_unicode_to_tex:(Helm_registry.get_bool
+ "matita.paste_unicode_as_tex")
(match
(MatitaScript.current ())#grafite_status.GrafiteTypes.proof_status
with
| GrafiteTypes.No_proof -> assert false
| Incomplete_proof i ->
let _,m,_subst,p,ty, attrs = i.GrafiteTypes.proof in
- Cic.CurrentProof ("current (incomplete) proof",m,p,ty,[],attrs)
+ Cic.CurrentProof ("current (incomplete) proof",m,Lazy.force p,ty,[],attrs)
| Proof (_,m,_subst,p,ty, attrs) ->
- Cic.CurrentProof ("current proof",m,p,ty,[],attrs)
+ Cic.CurrentProof ("current proof",m,Lazy.force p,ty,[],attrs)
| Intermediate _ -> assert false)));
(* addDebugItem "ask record choice"
(fun _ ->
*)
addDebugSeparator ();
addDebugItem "enable multiple disambiguation passes (default)"
- (fun _ -> GrafiteDisambiguator.only_one_pass := false);
+ (fun _ -> MultiPassDisambiguator.only_one_pass := false);
addDebugItem "enable only one disambiguation pass"
- (fun _ -> GrafiteDisambiguator.only_one_pass := true);
+ (fun _ -> MultiPassDisambiguator.only_one_pass := true);
+ addDebugItem "always show all disambiguation errors"
+ (fun _ -> MatitaGui.all_disambiguation_passes := true);
+ addDebugItem "prune disambiguation errors"
+ (fun _ -> MatitaGui.all_disambiguation_passes := false);
addDebugSeparator ();
(* ZACK moved to the View menu
addDebugItem "enable coercions hiding"
List.iter
(fun (s,t,ul) ->
HLog.debug
- ((String.concat "," (List.map UriManager.name_of_uri ul)) ^ ":"
- ^ CoercDb.name_of_carr s ^ " -> " ^ CoercDb.name_of_carr t))
+ ((String.concat ","
+ (List.map
+ (fun u,saturations,_ ->
+ UriManager.name_of_uri u ^
+ "(" ^ string_of_int saturations ^ ")")
+ ul)) ^ ":"
+ ^ CoercDb.string_of_carr s ^ " -> " ^ CoercDb.string_of_carr t))
(CoercDb.to_list ()));
addDebugSeparator ();
let mview () = (MatitaMathView.sequentsViewer_instance ())#cicMathView in
~doc:(HExtlib.unopt (mview ())#get_document) ~name:"matita.xml" ())); *)
addDebugItem "load (sequent) MathML from matita.xml"
(fun _ -> (mview ())#load_uri ~filename:"matita.xml");
- addDebugItem "autoWin"
- (fun _ -> MatitaAutoGui.auto_dialog Auto.get_auto_status);
+ addDebugSeparator ();
+ addDebugItem "Expand virtuals"
+ (fun _ -> (MatitaScript.current ())#expandAllVirtuals);
end
(** Debugging }}} *)
- (** {2 Command line parsing} *)
-
-let set_matita_mode () =
- let matita_mode =
- if Filename.basename Sys.argv.(0) = "cicbrowser" ||
- Filename.basename Sys.argv.(0) = "cicbrowser.opt"
- then "cicbrowser"
- else "matita"
- in
- Helm_registry.set "matita.mode" matita_mode
-
(** {2 Main} *)
let _ =
- set_matita_mode ();
at_exit (fun () -> print_endline "\nThanks for using Matita!\n");
Sys.catch_break true;
let args = Helm_registry.get_list Helm_registry.string "matita.args" in
- if Helm_registry.get "matita.mode" = "cicbrowser" then (* cicbrowser *)
- let browser = MatitaMathView.cicBrowser () in
- let uri = match args with [] -> "cic:/" | _ -> String.concat " " args in
- browser#loadInput uri
- else begin (* matita *)
- (try gui#loadScript (List.hd args) with Failure _ -> ());
- gui#main#mainWin#show ();
- end;
+ (try gui#loadScript (List.hd args) with Failure _ -> ());
+ gui#main#mainWin#show ();
try
- GtkThread.main ()
+ GtkThread.main ()
with Sys.Break ->
Sys.set_signal Sys.sigint
(Sys.Signal_handle
(fun _ ->
prerr_endline "Still cleaning the library: don't be impatient!"));
prerr_endline "Matita is cleaning up. Please wait.";
- try
- let baseuri =
- GrafiteTypes.get_string_option
- (MatitaScript.current ())#grafite_status "baseuri"
- in
+ let baseuri =
+ GrafiteTypes.get_baseuri (MatitaScript.current ())#grafite_status
+ in
LibraryClean.clean_baseuris [baseuri]
- with GrafiteTypes.Option_error _ -> ()
(* vim:set foldmethod=marker: *)