return false;
});
+ this.el.key_press_event.connect( () => {
+ this.onCursorChanged();
+ return false;
+ });
}
// user defined functions
}
// highlight the node..
+ }
+ public void clearGreySelection () {
+ // clear all the marks..
+ var sbuf = (Gtk.SourceBuffer)this.el.buffer;
+
+ Gtk.TextIter start;
+ Gtk.TextIter end;
+
+ sbuf.get_bounds (out start, out end);
+ sbuf.remove_source_marks (start, end, "grey");
+
+
}
public void nodeSelected (JsRender.Node? sel, bool scroll ) {
}
this.node_selected = sel;
-
- print("node selected\n");
+
+ 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;
-
- // clear all the marks..
+
+
+ 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, "grey");
-
+ 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 updateGreySelection (bool scroll) {
+ var sel = this.node_selected;
+ print("node selected\n");
+ var buf = this.el.get_buffer();
+ var sbuf = (Gtk.SourceBuffer) buf;
+
+
+ this.clearGreySelection();
+
+
+
if (sel == null) {
print("no selected node\n");
// no highlighting..
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);
}
}
}
-
-
- }
- 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 (scroll) {
+ Gtk.TextIter cpos_iter;
+ buf.get_iter_at_line(out cpos_iter, start_line);
+ buf.place_cursor(cpos_iter);
+ }
-
- 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
}
print("- PREVIEW EDITOR CHANGED--");
-
+
this.dirty = true;
if (!this.checkSyntax()) {
return;
// what are we editing??
-
+
return false; // fake syntax error.
}
-
+ //Gee.HashMap<int,string> ret_x;
- return this.highlightErrors(p.validateJavascript(
+ return p.javascriptHasErrors(
+ _this.main_window.windowstate,
str,
"", // _this.key,
"file", //_this.ptype,
_this.file,
+ null,
null
- ));
+ );
}
}