summaryrefslogtreecommitdiffstats
path: root/otherlibs/labltk/browser
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/labltk/browser')
-rw-r--r--otherlibs/labltk/browser/.depend34
-rw-r--r--otherlibs/labltk/browser/editor.ml19
-rw-r--r--otherlibs/labltk/browser/jg_tk.ml4
3 files changed, 36 insertions, 21 deletions
diff --git a/otherlibs/labltk/browser/.depend b/otherlibs/labltk/browser/.depend
index a8ca9eec2..558ccdd26 100644
--- a/otherlibs/labltk/browser/.depend
+++ b/otherlibs/labltk/browser/.depend
@@ -16,16 +16,16 @@ jg_box.cmo: jg_bind.cmi jg_completion.cmi
jg_box.cmx: jg_bind.cmx jg_completion.cmx
jg_completion.cmo: jg_completion.cmi
jg_completion.cmx: jg_completion.cmi
-jg_config.cmo: jg_config.cmi
-jg_config.cmx: jg_config.cmi
+jg_config.cmo: jg_tk.cmo jg_config.cmi
+jg_config.cmx: jg_tk.cmx jg_config.cmi
jg_entry.cmo: jg_bind.cmi
jg_entry.cmx: jg_bind.cmx
jg_memo.cmo: jg_memo.cmi
jg_memo.cmx: jg_memo.cmi
-jg_message.cmo: jg_bind.cmi jg_button.cmo jg_text.cmi jg_tk.cmo \
- jg_toplevel.cmo jg_message.cmi
-jg_message.cmx: jg_bind.cmx jg_button.cmx jg_text.cmx jg_tk.cmx \
- jg_toplevel.cmx jg_message.cmi
+jg_message.cmo: jg_bind.cmi jg_text.cmi jg_tk.cmo jg_toplevel.cmo \
+ jg_message.cmi
+jg_message.cmx: jg_bind.cmx jg_text.cmx jg_tk.cmx jg_toplevel.cmx \
+ jg_message.cmi
jg_multibox.cmo: jg_bind.cmi jg_completion.cmi jg_multibox.cmi
jg_multibox.cmx: jg_bind.cmx jg_completion.cmx jg_multibox.cmi
jg_text.cmo: jg_bind.cmi jg_button.cmo jg_tk.cmo jg_toplevel.cmo jg_text.cmi
@@ -46,19 +46,21 @@ setpath.cmo: jg_bind.cmi jg_box.cmo jg_button.cmo jg_toplevel.cmo list2.cmo \
useunix.cmi setpath.cmi
setpath.cmx: jg_bind.cmx jg_box.cmx jg_button.cmx jg_toplevel.cmx list2.cmx \
useunix.cmx setpath.cmi
-shell.cmo: fileselect.cmi jg_memo.cmi jg_menu.cmo jg_text.cmi jg_tk.cmo \
- jg_toplevel.cmo lexical.cmi list2.cmo shell.cmi
-shell.cmx: fileselect.cmx jg_memo.cmx jg_menu.cmx jg_text.cmx jg_tk.cmx \
- jg_toplevel.cmx lexical.cmx list2.cmx shell.cmi
+shell.cmo: dummy.cmi fileselect.cmi jg_memo.cmi jg_menu.cmo jg_message.cmi \
+ jg_text.cmi jg_tk.cmo jg_toplevel.cmo lexical.cmi list2.cmo shell.cmi
+shell.cmx: dummy.cmi fileselect.cmx jg_memo.cmx jg_menu.cmx jg_message.cmx \
+ jg_text.cmx jg_tk.cmx jg_toplevel.cmx lexical.cmx list2.cmx shell.cmi
typecheck.cmo: jg_message.cmi jg_text.cmi jg_tk.cmo mytypes.cmi typecheck.cmi
typecheck.cmx: jg_message.cmx jg_text.cmx jg_tk.cmx mytypes.cmi typecheck.cmi
useunix.cmo: useunix.cmi
useunix.cmx: useunix.cmi
-viewer.cmo: jg_bind.cmi jg_box.cmo jg_button.cmo jg_entry.cmo jg_menu.cmo \
- jg_message.cmi jg_multibox.cmi jg_tk.cmo jg_toplevel.cmo mytypes.cmi \
- searchid.cmi searchpos.cmi setpath.cmi shell.cmi useunix.cmi viewer.cmi
-viewer.cmx: jg_bind.cmx jg_box.cmx jg_button.cmx jg_entry.cmx jg_menu.cmx \
- jg_message.cmx jg_multibox.cmx jg_tk.cmx jg_toplevel.cmx mytypes.cmi \
- searchid.cmx searchpos.cmx setpath.cmx shell.cmx useunix.cmx viewer.cmi
+viewer.cmo: help.cmo jg_bind.cmi jg_box.cmo jg_button.cmo jg_completion.cmi \
+ jg_entry.cmo jg_menu.cmo jg_message.cmi jg_multibox.cmi jg_text.cmi \
+ jg_tk.cmo jg_toplevel.cmo mytypes.cmi searchid.cmi searchpos.cmi \
+ setpath.cmi shell.cmi useunix.cmi viewer.cmi
+viewer.cmx: help.cmx jg_bind.cmx jg_box.cmx jg_button.cmx jg_completion.cmx \
+ jg_entry.cmx jg_menu.cmx jg_message.cmx jg_multibox.cmx jg_text.cmx \
+ jg_tk.cmx jg_toplevel.cmx mytypes.cmi searchid.cmx searchpos.cmx \
+ setpath.cmx shell.cmx useunix.cmx viewer.cmi
mytypes.cmi: shell.cmi
typecheck.cmi: mytypes.cmi
diff --git a/otherlibs/labltk/browser/editor.ml b/otherlibs/labltk/browser/editor.ml
index 2b280be0f..517599c6c 100644
--- a/otherlibs/labltk/browser/editor.ml
+++ b/otherlibs/labltk/browser/editor.ml
@@ -504,10 +504,23 @@ class editor ~top ~menus = object (self)
if not (Winfo.ismapped top) then Wm.deiconify top;
match file with None -> ()
| Some file ->
- self#load_text [file];
+ self#load_text [file];
Text.mark_set current_tw ~mark:"insert" ~index:(tpos pos);
- Text.yview_index current_tw
- ~index:(`Linechar(1,0),[`Char pos; `Line (-2)])
+ try
+ let index =
+ Text.search current_tw ~switches:[`Backwards] ~pattern:"*)"
+ ~start:(tpos pos) ~stop:(tpos pos ~modi:[`Line(-1)]) in
+ let index =
+ Text.search current_tw ~switches:[`Backwards] ~pattern:"(*"
+ ~start:(index,[]) ~stop:(tpos pos ~modi:[`Line(-20)]) in
+ let s = Text.get current_tw ~start:(index,[`Line(-1);`Linestart])
+ ~stop:(index,[`Line(-1);`Lineend]) in
+ for i = 0 to String.length s - 1 do
+ match s.[i] with '\t'|' ' -> () | _ -> raise Not_found
+ done;
+ Text.yview_index current_tw ~index:(index,[`Line(-1)])
+ with _ ->
+ Text.yview_index current_tw ~index:(tpos pos ~modi:[`Line(-2)])
initializer
(* Create a first window *)
diff --git a/otherlibs/labltk/browser/jg_tk.ml b/otherlibs/labltk/browser/jg_tk.ml
index 32ed9699c..98ac89c7e 100644
--- a/otherlibs/labltk/browser/jg_tk.ml
+++ b/otherlibs/labltk/browser/jg_tk.ml
@@ -15,8 +15,8 @@
open Tk
-let tpos x : textIndex = `Linechar (1,0), [`Char x]
-and tposend x : textIndex = `End, [`Char (-x)]
+let tpos ?(modi=[]) x : textIndex = `Linechar (1,0), `Char x :: modi
+and tposend ?(modi=[]) x : textIndex = `End, `Char (-x) :: modi
let tstart : textIndex = `Linechar (1,0), []
and tend : textIndex = `End, []