+ method private tex () =
+ let b = Buffer.create 1000 in
+ Printf.bprintf b "UTF-8 equivalence classes (rotate with ALT-L):\n\n";
+ List.iter
+ (fun l ->
+ List.iter (fun sym ->
+ Printf.bprintf b " %s" (Glib.Utf8.from_unichar sym)
+ ) l;
+ Printf.bprintf b "\n";
+ )
+ (List.sort
+ (fun l1 l2 -> compare (List.hd l1) (List.hd l2))
+ (Virtuals.get_all_eqclass ()));
+ Printf.bprintf b "\n\nVirtual keys (trigger with ALT-L):\n\n";
+ List.iter
+ (fun tag, items ->
+ Printf.bprintf b " %s:\n" tag;
+ List.iter
+ (fun names, symbol ->
+ Printf.bprintf b " \t%s\t%s\n"
+ (Glib.Utf8.from_unichar symbol)
+ (String.concat ", " names))
+ (List.sort
+ (fun (_,a) (_,b) -> compare a b)
+ items);
+ Printf.bprintf b "\n")
+ (List.sort
+ (fun (a,_) (b,_) -> compare a b)
+ (Virtuals.get_all_virtuals ()));
+ self#_loadText (Buffer.contents b)
+
+ method private _loadText text =
+ searchText#source_buffer#set_text text;
+ win#entrySearch#misc#grab_focus ();
+ self#_showSearch
+
+ method private grammar () =
+ self#_loadText (Print_grammar.ebnf_of_term ());
+