diff options
Diffstat (limited to 'otherlibs/labltk/browser')
-rw-r--r-- | otherlibs/labltk/browser/.depend | 34 | ||||
-rw-r--r-- | otherlibs/labltk/browser/editor.ml | 19 | ||||
-rw-r--r-- | otherlibs/labltk/browser/jg_tk.ml | 4 |
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, [] |