]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtksourceview/test/test.ml
- bound GtkSourceLanguagesManager (only get_lang..from_mime_type)
[helm.git] / helm / DEVEL / lablgtksourceview / test / test.ml
1 (* Copyright (C) 2005:
2  *      Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>,
3  *      Stefano Zacchiroli     <zack@cs.unibo.it>
4  *
5  * This file is part of lablgtksourceview, the OCaml binding for the
6  * GtkSourceView widget.
7  * 
8  * lablgtksourceview is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of the
11  * License, or (at your option) any later version.
12  *
13  * lablgtksourceview is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with lablgtksourceview; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21  * 02111-1307, USA.
22  * 
23  * For details, send a mail to the authors.
24  *)
25
26 open Printf
27
28 let lang_mime_type = "text/x-c"
29
30 let print_lang lang = prerr_endline (sprintf "language: %s" lang#get_name)
31
32 let win = GWindow.window ~title:"LablGtkSourceView test" ()
33 let scrolled_win = GBin.scrolled_window ~packing:win#add ()
34 let source_view =
35   GSourceView.source_view
36     ~auto_indent:true
37 (*     ~insert_spaces_instead_of_tabs:true ~tabs_width:2 *)
38     ~show_line_numbers:true
39     ~margin:80 ~show_margin:true
40     ~smart_home_end:true
41     ~packing:scrolled_win#add ~height:500 ~width:650
42     ()
43 let lang_manager = GSourceView.source_languages_manager ()
44 let _ =
45   let text =
46     let ic = open_in "test.txt" in
47     let size = in_channel_length ic in
48     let buf = String.create size in
49     really_input ic buf 0 size;
50     close_in ic;
51     buf
52   in
53   win#set_allow_shrink true;
54   source_view#misc#modify_font_by_name "Monospace 10";
55   (match lang_manager#get_language_from_mime_type lang_mime_type with 
56   | None ->
57       prerr_endline (sprintf "no language for mime-type: %s" lang_mime_type)
58   | Some lang ->
59       print_lang lang;
60       source_view#source_buffer#set_language lang);
61   source_view#source_buffer#set_highlight true;
62   source_view#source_buffer#set_text text;
63   ignore (win#connect#destroy (fun _ -> GMain.quit ()));
64 (*   ignore (source_view#connect#move_cursor (fun _ _ ~extend ->
65     prerr_endline "move_cursor"));
66   ignore (source_view#connect#undo (fun _ -> prerr_endline "undo")); *)
67   win#show ();
68   GMain.Main.main ()
69