]> matita.cs.unibo.it Git - helm.git/commitdiff
non active but almost working implementation of \TeX macro substitution while colouring
authorEnrico Tassi <enrico.tassi@inria.fr>
Mon, 8 Dec 2008 17:07:45 +0000 (17:07 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Mon, 8 Dec 2008 17:07:45 +0000 (17:07 +0000)
helm/software/matita/.depend
helm/software/matita/.depend.opt
helm/software/matita/Makefile
helm/software/matita/matitaScript.ml

index 8c4e69265051e097ac0e1e52713144efb8702bb5..12790dd0edb90674e43e0e8bfb1bf61c0dd39968 100644 (file)
@@ -52,10 +52,10 @@ matita.cmo: predefined_virtuals.cmi matitaTypes.cmi matitaScript.cmi \
 matita.cmx: predefined_virtuals.cmx matitaTypes.cmx matitaScript.cmx \
     matitaMathView.cmx matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx \
     matitaAutoGui.cmx buildTimeConf.cmx applyTransformation.cmx 
-matitaScript.cmo: matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
+matitaScript.cmo: virtuals.cmi matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
     matitaGtkMisc.cmi matitaEngine.cmi buildTimeConf.cmo \
     applyTransformation.cmi matitaScript.cmi 
-matitaScript.cmx: matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
+matitaScript.cmx: virtuals.cmx matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
     matitaGtkMisc.cmx matitaEngine.cmx buildTimeConf.cmx \
     applyTransformation.cmx matitaScript.cmi 
 matitaTypes.cmo: matitaTypes.cmi 
index b91cc9fb261fc885f7d20cdf2b674a0012a4cb13..64b21476960573cd2451abffc0c9cde86bd83e8d 100644 (file)
@@ -52,10 +52,10 @@ matita.cmo: predefined_virtuals.cmi matitaTypes.cmi matitaScript.cmi \
 matita.cmx: predefined_virtuals.cmx matitaTypes.cmx matitaScript.cmx \
     matitaMathView.cmx matitaInit.cmx matitaGui.cmx matitaGtkMisc.cmx \
     matitaAutoGui.cmx buildTimeConf.cmx applyTransformation.cmx 
-matitaScript.cmo: matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
+matitaScript.cmo: virtuals.cmi matitacLib.cmi matitaTypes.cmi matitaMisc.cmi \
     matitaGtkMisc.cmi matitaEngine.cmi buildTimeConf.cmx \
     applyTransformation.cmi matitaScript.cmi 
-matitaScript.cmx: matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
+matitaScript.cmx: virtuals.cmx matitacLib.cmx matitaTypes.cmx matitaMisc.cmx \
     matitaGtkMisc.cmx matitaEngine.cmx buildTimeConf.cmx \
     applyTransformation.cmx matitaScript.cmi 
 matitaTypes.cmo: matitaTypes.cmi 
index d09395eab4eefbf860769a527adacf17ee61004a..6bdba1baff31adaccce39610dac044f0d3499c32 100644 (file)
@@ -38,8 +38,8 @@ MLI = \
        matitaInit.mli          \
        matitaGtkMisc.mli       \
        matitaAutoGui.mli       \
-       matitaScript.mli        \
        virtuals.mli            \
+       matitaScript.mli        \
        predefined_virtuals.mli \
        matitaMathView.mli      \
        matitaGui.mli           \
index a5e24d3150853ce71cf11e5662c31b480ecf0f30..7bcbea2947b95b23a67d055e37f2a8667c8819ed 100644 (file)
@@ -848,8 +848,38 @@ object (self)
     | exc -> self#notify; raise exc
 
   method private getFuture =
-    buffer#get_text ~start:(buffer#get_iter_at_mark (`MARK locked_mark))
-      ~stop:buffer#end_iter ()
+    let lock = buffer#get_iter_at_mark (`MARK locked_mark) in
+    let text = buffer#get_text ~start:lock ~stop:buffer#end_iter () in
+    text
+(* THIS SNIPPET AUTOMATICALLY EXPANDS EVERY \TeX MACRO
+    if Pcre.pmatch ~pat:"\\\\[a-zA-Z]+" text then
+      begin
+        buffer#delete ~start:lock ~stop:buffer#end_iter;
+        let text = 
+          Pcre.substitute_substrings 
+            ~subst:(fun str -> 
+               let pristine = Pcre.get_substring str 0 in
+               let input = 
+                 if pristine.[0] = ' ' then
+                   String.sub pristine 1 (String.length pristine -1) 
+                 else pristine 
+               in
+               let input = 
+                 if input.[String.length input-1] = ' ' then
+                   String.sub input 0 (String.length input -1) 
+                 else input
+               in
+               try 
+                 Glib.Utf8.from_unichar (snd (Virtuals.symbol_of_virtual input))
+               with Virtuals.Not_a_virtual -> pristine) 
+            ~pat:" ?\\\\[a-zA-Z]+ ?" text
+        in
+        buffer#insert ~iter:lock text;
+        text
+      end
+    else
+      text
+*)
 
       
   (** @param rel_offset relative offset from current position of locked_mark *)