X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FBuilder4%2FEditor.vala;h=ced4602e07c5f763743d1669cb8b00db1fa0d289;hb=ea4d320f55c1b91c945c2e635f096924ee40d7aa;hp=ac300aceb6e9c03db1cc68a8faf057abd6ff8481;hpb=cd5d9f729c104791f93e0c2ef8de34baf81da8ae;p=app.Builder.js diff --git a/src/Builder4/Editor.vala b/src/Builder4/Editor.vala index ac300aceb..ced4602e0 100644 --- a/src/Builder4/Editor.vala +++ b/src/Builder4/Editor.vala @@ -24,6 +24,7 @@ public class Editor : Object public int pos_root_x; public int pos_root_y; public string ptype; + public int last_search_end; public string key; public Gtk.SourceSearchContext searchcontext; public JsRender.JsRender file; @@ -42,6 +43,7 @@ public class Editor : Object this.window = null; this.activeEditor = ""; this.ptype = ""; + this.last_search_end = 0; this.key = ""; this.searchcontext = null; this.file = null; @@ -126,7 +128,7 @@ public class Editor : Object this.buffer.el.get_start_iter(out beg); this.searchcontext.forward(beg, out st, out en); - + this.last_search_end = 0; return this.searchcontext.get_occurrences_count(); @@ -140,7 +142,7 @@ public class Editor : Object this.ptype = ""; this.key = ""; this.node = null; - + this.searchcontext = null; if (file.xtype != "PlainFile") { @@ -166,7 +168,26 @@ public class Editor : Object } - public void forwardSearch () { + public void forwardSearch (bool change_focus) { + + if (this.searchcontext == null) { + return; + } + + Gtk.TextIter beg, st,en; + + this.buffer.el.get_iter_at_offset(out beg, this.last_search_end); + if (!this.searchcontext.forward(beg, out st, out en)) { + + this.last_search_end = 0; + } else { + this.last_search_end = en.get_offset(); + if (change_focus) { + this.view.el.grab_focus(); + } + this.buffer.el.place_cursor(st); + this.view.el.scroll_to_iter(st, 0.1f, true, 0.0f, 0.5f); + } } public class Xcls_Box2 : Object @@ -313,10 +334,13 @@ public class Editor : Object var description = Pango.FontDescription.from_string("monospace"); description.set_size(8000); + this.el.override_font(description); + + try { + this.el.completion.add_provider(new Palete.CompletionProvider(_this)); + } catch (GLib.Error e) {} - - this.el.completion.add_provider(new Palete.CompletionProvider(_this)); this.el.completion.unblock_interactive(); this.el.completion.select_on_show = true; // select this.el.completion.show_headers = false; @@ -526,7 +550,7 @@ public class Editor : Object // assume it's gtk... this.check_running = true; - + if (!_this.window.windowstate.valasource.checkPlainFileSpawn( _this.file, str @@ -551,6 +575,7 @@ public class Editor : Object this.check_running = false; print("calling validate javascript\n"); return this.highlightErrors(p.validateJavascript( + _this.window.windowstate, str, _this.key, _this.ptype,