X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Fmatita.ml;h=b62587e1d229a389d88c7fc64e7006e35554f3b5;hb=eb5345bc1314ca8bf8b9ea2293dbe0aa496b2d69;hp=13ec23a6e57697495c06a50246fef6d072f2b42a;hpb=e3c0cc9893402419e363ad6616a599f194438273;p=helm.git diff --git a/helm/matita/matita.ml b/helm/matita/matita.ml index 13ec23a6e..b62587e1d 100644 --- a/helm/matita/matita.ml +++ b/helm/matita/matita.ml @@ -32,28 +32,27 @@ open MatitaMisc (** {2 Initialization} *) let _ = - Helm_registry.load_from "matita.conf.xml"; - GtkMain.Rc.add_default_file BuildTimeConf.gtkrc; - GMain.Main.init () - -let parserr = new MatitaDisambiguator.parserr () -let dbd = - Mysql.quick_connect - ~host:(Helm_registry.get "db.host") - ~user:(Helm_registry.get "db.user") - ~database:(Helm_registry.get "db.database") - () -let _ = MetadataDb.clean ~dbd ~owner:(Helm_registry.get "matita.owner") + Helm_registry.load_from "matita.conf.xml"; (* read conf *) + Http_getter.init (); + MetadataTypes.ownerize_tables (Helm_registry.get "matita.owner"); + MatitaDb.clean_owner_environment (); + MatitaDb.create_owner_environment (); + GtkMain.Rc.add_default_file BuildTimeConf.gtkrc; (* loads gtk rc files *) + ignore (GMain.Main.init ()) + let gui = MatitaGui.instance () -let disambiguator = - new MatitaDisambiguator.disambiguator ~parserr ~dbd - ~chooseUris:(interactive_user_uri_choice ~gui) - ~chooseInterp:(interactive_interp_choice ~gui) - () +let _ = (* set disambiguator callbacks *) + let disambiguator = MatitaDisambiguator.instance () in + disambiguator#setChooseUris (interactive_user_uri_choice ~gui); + disambiguator#setChooseInterp (interactive_interp_choice ~gui) +let _ = (* environment trust *) + CicEnvironment.set_trust + (let trust = Helm_registry.get_bool "matita.environment_trust" in + fun _ -> trust) + +let currentProof = MatitaProof.instance () -let currentProof = new MatitaProof.currentProof -let proof_viewer = MatitaMathView.proof_viewer_instance () let sequent_viewer = MatitaMathView.sequent_viewer ~show:true () let sequents_viewer = let set_goal goal = @@ -63,10 +62,7 @@ let sequents_viewer = MatitaMathView.sequents_viewer ~notebook:gui#main#sequentsNotebook ~sequent_viewer ~set_goal () let _ = (* attach observers to proof status *) - let proof_observer _ (status, ()) = - let ((uri_opt, _, _, _), _) = status in - proof_viewer#load_proof status; - in + let browser_observer _ _ = MatitaMathView.refresh_all_browsers () in let sequents_observer _ (((_, metasenv, _, _), goal_opt), ()) = sequents_viewer#reset; (match goal_opt with @@ -76,7 +72,7 @@ let _ = (* attach observers to proof status *) sequents_viewer#goto_sequent goal) in currentProof#addObserver sequents_observer; - currentProof#addObserver proof_observer; + currentProof#addObserver browser_observer; currentProof#connect `Quit (fun () -> (* quit program, asking for confirmation if needed *) if not (currentProof#onGoing ()) || @@ -87,21 +83,15 @@ let _ = (* attach observers to proof status *) false); currentProof#connect `Abort (fun () -> sequents_viewer#reset; false) -let mathViewer = MatitaMathView.mathViewer () -let cicBrowser = MatitaMathView.cicBrowser () let interpreter = - let console = (gui#console :> MatitaTypes.console) in - let currentProof = (currentProof :> MatitaTypes.currentProof) in - new MatitaInterpreter.interpreter - ~disambiguator ~currentProof ~console ~mathViewer ~dbd () + let mathViewer = MatitaMathView.mathViewer () in + MatitaInterpreter.interpreter ~console:gui#console ~mathViewer () let _ = let href_callback uri = let term = CicAst.Uri (UriManager.string_of_uri uri, None) in ignore (interpreter#evalAst (TacticAst.Command (TacticAst.Check term))) in - proof_viewer#set_href_callback (Some href_callback); - sequent_viewer#set_href_callback (Some href_callback); - mathViewer#set_href_callback (Some href_callback) + sequent_viewer#set_href_callback (Some href_callback) (** {2 Script window handling} *) @@ -162,6 +152,8 @@ let _ = gui#console#echo_error (sprintf "Don't know what to do with file: %s\nUnrecognized file format." f))); + ignore (gui#main#newCicBrowserMenuItem#connect#activate (fun _ -> + ignore (MatitaMathView.cicBrowser ()))); connect_button gui#script#scriptWinForwardButton script_forward; connect_button gui#script#scriptWinBackButton script_back; connect_button gui#script#scriptWinJumpButton script_jump; @@ -169,7 +161,7 @@ let _ = let hole = CicAst.UserInput in let tac ast _ = ignore (interpreter#evalAst (A.Tactic ast)) in let tac_w_term ast _ = - gui#console#clear (); +(* gui#console#clear (); *) gui#console#show ~msg:(TacticAstPp.pp_tactic ast) (); gui#main#mainWin#present () in @@ -201,11 +193,6 @@ let _ = in ignore (item#connect#activate callback) in - addDebugItem "toggle auto disambiguation" (fun _ -> - Helm_registry.set_bool "matita.auto_disambiguation" - (not (Helm_registry.get_bool "matita.auto_disambiguation"))); - addDebugItem "dump proof status to stdout" (fun _ -> - print_endline (currentProof#proof#toString)); addDebugItem "dump environment to \"env.dump\"" (fun _ -> let oc = open_out "env.dump" in CicEnvironment.dump_to_channel oc; @@ -215,16 +202,32 @@ let _ = List.iter (fun t -> incr i; debug_print (sprintf "%d: %s" !i (CicPp.ppterm t))) sequent_viewer#get_selected_terms); - addDebugItem "show cic browser" (fun () -> gui#browser#browserWin#show ()); + addDebugItem "dump getter settings" (fun _ -> + prerr_endline (Http_getter_env.env_to_string ())); + addDebugItem "getter: update" Http_getter.update; + addDebugItem "getter: getalluris" (fun _ -> + List.iter prerr_endline (Http_getter.getalluris ())); end (** *) let _ = -(* CicEnvironment.set_trust (fun _ -> false); *) +(* (try load_script Sys.argv.(1) with Invalid_argument _ -> ()); - gui#console#show (); +*) + if Filename.basename Sys.argv.(0) = "cicbrowser" then begin (* cicbrowser *) + Helm_registry.set "matita.mode" "cicbrowser"; + let browser = MatitaMathView.cicBrowser () in + try + browser#loadUri Sys.argv.(1) + with Invalid_argument _ -> () + end else begin (* matita *) + Helm_registry.set "matita.mode" "matita"; + gui#main#mainWin#show (); + gui#toolbar#toolBarWin#show (); + gui#console#show () + end; GtkThread.main ()