src/Builder4/Editor.bjs
[app.Builder.js] / src / Builder4 / Editor.vala
index a8f4ad1..872b603 100644 (file)
@@ -59,6 +59,29 @@ public class Editor : Object
     }
 
     // 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 ()  {
         
         
@@ -99,7 +122,19 @@ public class Editor : Object
     
     }
     public void scroll_to_line (int line) {
+    
+       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)
     {