X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2FmatitaScript.ml;h=2186b75b5ff2d4c9914861031920487d86498197;hb=661403facfb7ca53b58635a95904787ae393bde5;hp=e191ee7b31d6c09a01795c2b824297c0dfb534e3;hpb=590b41b39d52ae1e320bf1c01220b06fadb1ba8d;p=helm.git diff --git a/helm/software/matita/matitaScript.ml b/helm/software/matita/matitaScript.ml index e191ee7b3..2186b75b5 100644 --- a/helm/software/matita/matitaScript.ml +++ b/helm/software/matita/matitaScript.ml @@ -371,9 +371,12 @@ let eval_nmacro include_paths (buffer : GText.buffer) guistuff grafite_status us | TA.Screenshot (_,name) -> let status = script#grafite_status in let _,_,menv,subst,_ = status#obj in - let sequent = List.hd menv in let name = Filename.dirname (script#filename) ^ "/" ^ name in - guistuff.mathviewer#screenshot status sequent menv subst name; + let sequents = + let selected = Continuationals.Stack.head_goals status#stack in + List.filter (fun x,_ -> List.mem x selected) menv + in + guistuff.mathviewer#screenshot status sequents menv subst name; [status, parsed_text], "", parsed_text_length | TA.NCheck (_,t) -> let status = script#grafite_status in @@ -389,7 +392,7 @@ let eval_nmacro include_paths (buffer : GText.buffer) guistuff grafite_status us (* XXX use the metasenv, if possible *) in guistuff.mathviewer#show_entry (`NCic (t,ctx,m,s)); - [], "", parsed_text_length + [status, parsed_text], "", parsed_text_length let rec eval_macro include_paths (buffer : GText.buffer) guistuff grafite_status user_goal unparsed_text parsed_text script mac = let module MQ = MetadataQuery in @@ -657,7 +660,7 @@ and eval_statement include_paths (buffer : GText.buffer) guistuff eval_executable include_paths buffer guistuff grafite_status user_goal unparsed_text skipped nonskipped script ex loc | GrafiteParser.LSome (GrafiteAst.Comment (loc, GrafiteAst.Code (_, ex))) - (*when Helm_registry.get_bool "matita.literate" *) -> + when Helm_registry.get_bool "matita.execcomments" -> let _, nonskipped, skipped, parsed_text_length = text_of_loc loc in eval_executable include_paths buffer guistuff grafite_status user_goal unparsed_text skipped nonskipped script ex loc @@ -688,7 +691,7 @@ let fresh_script_id = let i = ref 0 in fun () -> incr i; !i -class script ~(source_view: GSourceView.source_view) +class script ~(source_view: GSourceView2.source_view) ~(mathviewer: MatitaTypes.mathViewer) ~set_star ~ask_confirmation @@ -797,12 +800,15 @@ object (self) let s = match statement with Some s -> s | None -> self#getFuture in if self#bos then LibraryClean.clean_baseuris [self#buri_of_current_file]; HLog.debug ("evaluating: " ^ first_line s ^ " ..."); + let time1 = Unix.gettimeofday () in let entries, newtext, parsed_len = try eval_statement self#include_paths buffer guistuff self#grafite_status userGoal self (`Raw s) with End_of_file -> raise Margin in + let time2 = Unix.gettimeofday () in + HLog.debug ("... done in " ^ string_of_float (time2 -. time1) ^ "s"); let new_statuses, new_statements = let statuses, texts = List.split entries in statuses, texts