]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtksourceview/test/test.ml
snapshort
[helm.git] / helm / DEVEL / lablgtksourceview / test / test.ml
index 7a0d19189b0dbe49b08527b0136ba812644f7545..ed9622af19519874b19118c0e54ef0876e6302dd 100644 (file)
 open Printf
 
 let lang_mime_type = "text/x-c"
+let lang_file = "test.lang"
+let use_mime_type = false
 
 let print_lang lang = prerr_endline (sprintf "language: %s" lang#get_name)
 
+let print_lang_dirs languages_manager =
+  let i = ref 0 in
+  prerr_endline "lang_dirs:";
+  List.iter
+    (fun dir -> incr i; prerr_endline (sprintf "%d: %s" !i dir))
+    languages_manager#lang_files_dirs
+
 let win = GWindow.window ~title:"LablGtkSourceView test" ()
 let scrolled_win = GBin.scrolled_window ~packing:win#add ()
 let source_view =
@@ -40,7 +49,20 @@ let source_view =
     ~smart_home_end:true
     ~packing:scrolled_win#add ~height:500 ~width:650
     ()
-let lang_manager = GSourceView.source_languages_manager ()
+(* let languages_manager =
+  GSourceView.source_languages_manager ~lang_files_dirs:["/etc"] () *)
+let languages_manager = GSourceView.source_languages_manager ()
+let lang =
+  if use_mime_type then
+    match languages_manager#get_language_from_mime_type lang_mime_type with 
+    | None -> failwith (sprintf "no language for %s" lang_mime_type)
+    | Some lang -> lang
+  else
+    match
+      GSourceView.source_language_from_file ~languages_manager lang_file
+    with
+    | None -> failwith (sprintf "can't load %s" lang_file)
+    | Some lang -> lang
 let _ =
   let text =
     let ic = open_in "test.txt" in
@@ -52,12 +74,9 @@ let _ =
   in
   win#set_allow_shrink true;
   source_view#misc#modify_font_by_name "Monospace 10";
-  (match lang_manager#get_language_from_mime_type lang_mime_type with 
-  | None ->
-      prerr_endline (sprintf "no language for mime-type: %s" lang_mime_type)
-  | Some lang ->
-      print_lang lang;
-      source_view#source_buffer#set_language lang);
+  print_lang_dirs languages_manager;
+  print_lang lang;
+  source_view#source_buffer#set_language lang;
   source_view#source_buffer#set_highlight true;
   source_view#source_buffer#set_text text;
   ignore (win#connect#destroy (fun _ -> GMain.quit ()));