X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FBuilder4%2FWindowRooView.vala;h=5996176cf0736c8ba40e0f36d5778fecf5372f85;hb=497a66cfff975b566b929d3496d160ac6321fe02;hp=e57344600354601fa5190a5161952ce2030b9052;hpb=6f54ad5f73a9c95ea71f7be5f36b19fbac5b20bc;p=app.Builder.js diff --git a/src/Builder4/WindowRooView.vala b/src/Builder4/WindowRooView.vala index e57344600..5996176cf 100644 --- a/src/Builder4/WindowRooView.vala +++ b/src/Builder4/WindowRooView.vala @@ -1031,6 +1031,10 @@ public class Xcls_WindowRooView : Object return false; }); + this.el.key_press_event.connect( () => { + this.onCursorChanged(); + return false; + }); } // user defined functions @@ -1106,6 +1110,8 @@ public class Xcls_WindowRooView : Object } public void clearGreySelection () { // clear all the marks.. + var sbuf = (Gtk.SourceBuffer)this.el.buffer; + Gtk.TextIter start; Gtk.TextIter end; @@ -1127,8 +1133,88 @@ public class Xcls_WindowRooView : Object } this.node_selected = sel; + + this.updateGreySelection(scroll); + + + + } + public string toString () { + Gtk.TextIter s; + Gtk.TextIter e; + this.el.get_buffer().get_start_iter(out s); + this.el.get_buffer().get_end_iter(out e); + var ret = this.el.get_buffer().get_text(s,e,true); + //print("TO STRING? " + ret); + return ret; + } + public void loadFile ( ) { + this.loading = true; + + + // get the cursor and scroll position.... + var buf = this.el.get_buffer(); + var cpos = buf.cursor_position; + + print("BEFORE LOAD cursor = %d\n", cpos); + + var vadj_pos = this.el.get_vadjustment().get_value(); + + + + buf.set_text("",0); + var sbuf = (Gtk.SourceBuffer) buf; + + + + if (_this.file == null || _this.file.xtype != "Roo") { + print("xtype != Roo"); + this.loading = false; + return; + } + + // get the string from the rendered tree... + + var str = _this.file.toSource(); + + // print("setting str %d\n", str.length); + buf.set_text(str, str.length); + var lm = Gtk.SourceLanguageManager.get_default(); + + //?? is javascript going to work as js? + + ((Gtk.SourceBuffer)(buf)) .set_language(lm.get_language(_this.file.language)); + + + Gtk.TextIter start; + Gtk.TextIter end; + + sbuf.get_bounds (out start, out end); + sbuf.remove_source_marks (start, end, null); // remove all marks.. + + GLib.Timeout.add(500, () => { - print("node selected\n"); + print("RESORTING cursor to = %d\n", cpos); + Gtk.TextIter cpos_iter; + buf.get_iter_at_offset(out cpos_iter, cpos); + buf.place_cursor(cpos_iter); + + this.el.get_vadjustment().set_value(vadj_pos);; + + + this.onCursorChanged(); + + + _this.buffer.checkSyntax(); + return false; + }); + + this.loading = false; + _this.buffer.dirty = false; + } + public void updateGreySelection (bool scroll) { + var sel = this.node_selected; + print("node selected\n"); var buf = this.el.get_buffer(); var sbuf = (Gtk.SourceBuffer) buf; @@ -1194,7 +1280,7 @@ public class Xcls_WindowRooView : Object var first_line = this.el.buffer.get_text(start_line_iter, end_line_iter, false); print("first line = %s\n", first_line); if (first_line.contains(":")) { - colon_pos = start_line_iter.get_offset() + first_line.index_of(":"); + colon_pos = start_line_iter.get_offset() + first_line.index_of(":") + 1; } print("colon_pos = %d\n", colon_pos); } @@ -1254,75 +1340,6 @@ public class Xcls_WindowRooView : Object } - } - public string toString () { - Gtk.TextIter s; - Gtk.TextIter e; - this.el.get_buffer().get_start_iter(out s); - this.el.get_buffer().get_end_iter(out e); - var ret = this.el.get_buffer().get_text(s,e,true); - //print("TO STRING? " + ret); - return ret; - } - public void loadFile ( ) { - this.loading = true; - - - // get the cursor and scroll position.... - var buf = this.el.get_buffer(); - var cpos = buf.cursor_position; - - print("BEFORE LOAD cursor = %d\n", cpos); - - var vadj_pos = this.el.get_vadjustment().get_value(); - - - - buf.set_text("",0); - var sbuf = (Gtk.SourceBuffer) buf; - - - - if (_this.file == null || _this.file.xtype != "Roo") { - print("xtype != Roo"); - this.loading = false; - return; - } - - // get the string from the rendered tree... - - var str = _this.file.toSource(); - - // print("setting str %d\n", str.length); - buf.set_text(str, str.length); - var lm = Gtk.SourceLanguageManager.get_default(); - - //?? is javascript going to work as js? - - ((Gtk.SourceBuffer)(buf)) .set_language(lm.get_language(_this.file.language)); - - - Gtk.TextIter start; - Gtk.TextIter end; - - sbuf.get_bounds (out start, out end); - sbuf.remove_source_marks (start, end, null); // remove all marks.. - - GLib.Timeout.add(500, () => { - - print("RESORTING cursor to = %d\n", cpos); - Gtk.TextIter cpos_iter; - buf.get_iter_at_offset(out cpos_iter, cpos); - buf.place_cursor(cpos_iter); - - this.el.get_vadjustment().set_value(vadj_pos);; - this.onCursorChanged(); - _this.buffer.checkSyntax(); - return false; - }); - - this.loading = false; - _this.buffer.dirty = false; } public void highlightErrorsJson (string type, Json.Object obj) { // this is a hook for the vala code - it has no value in javascript @@ -1368,7 +1385,7 @@ public class Xcls_WindowRooView : Object } print("- PREVIEW EDITOR CHANGED--"); - + this.dirty = true; if (!this.checkSyntax()) { return; @@ -1376,7 +1393,7 @@ public class Xcls_WindowRooView : Object // what are we editing?? - + @@ -1449,13 +1466,14 @@ public class Xcls_WindowRooView : Object - return this.highlightErrors(p.validateJavascript( + return p.javascriptHasErrors( + _this.main_window.windowstate, str, "", // _this.key, "file", //_this.ptype, _this.file, null - )); + ); } }