}
// user defined functions
+ public Gee.ArrayList<int> search (string txt) {
+
+ var s = new Gtk.SourceSearchSettings();
+
+ var sctx = new Gtk.SourceSearchContext(this.buffer.el,s);
+ sctx.set_highlight(true);
+ s.set_search_text(txt);
+
+
+
+ var ret = new Gee.ArrayList<int>();
+
+ var str = this.buffer.toString();
+
+ var lines = str.split("\n");
+ for (var i = 0 ; i < lines.length; i++) {
+ if (lines[i].contains(txt)) {
+ ret.add(i);
+ }
+
+ }
+ return ret;
+ }
public bool saveContents () {
}
public void scroll_to_line (int line) {
- var buf = this.view.el.get_buffer();
-
- var sbuf = (Gtk.SourceBuffer) buf;
-
- Gtk.TextIter iter;
- sbuf.get_iter_at_line(out iter, line);
- this.view.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.0f);
+ GLib.Timeout.add(500, () => {
+ var buf = this.view.el.get_buffer();
+
+ var sbuf = (Gtk.SourceBuffer) buf;
+
+
+ Gtk.TextIter iter;
+ sbuf.get_iter_at_line(out iter, line);
+ this.view.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.5f);
+ return false;
+ });
}
public void show (JsRender.JsRender file, JsRender.Node? node, string ptype, string key)
{