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;
public bool pos;
public bool dirty;
this.window = null;
this.activeEditor = "";
this.ptype = "";
+ this.last_search_end = 0;
this.key = "";
+ this.searchcontext = null;
this.file = null;
this.pos = false;
this.dirty = false;
}
// 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 () {
this.view.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.5f);
return false;
});
+ }
+ public int search (string txt) {
+
+ var s = new Gtk.SourceSearchSettings();
+
+ this.searchcontext = new Gtk.SourceSearchContext(this.buffer.el,s);
+ this.searchcontext .set_highlight(true);
+ s.set_search_text(txt);
+ Gtk.TextIter beg, st,en;
+
+ 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();
+
+
+
+
}
public void show (JsRender.JsRender file, JsRender.Node? node, string ptype, string key)
{
this.ptype = "";
this.key = "";
this.node = null;
-
+ this.searchcontext = null;
if (file.xtype != "PlainFile") {
}
+ }
+ 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
{
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;
// assume it's gtk...
this.check_running = true;
-
+
if (!_this.window.windowstate.valasource.checkPlainFileSpawn(
_this.file,
str