method set_user_text s =
ignore_text_changed <- true;
let it = buffer#get_iter (`OFFSET editable_from) in
buffer#delete ~start: it ~stop: buffer#end_iter;
buffer#insert ~iter: buffer#end_iter s;
ignore_text_changed <- false;
self#set_size;
self#on_text_changed