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 =
~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
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 ()));