}
// user defined functions
- public bool highlightErrors ( Gee.HashMap<int,string> validate_res) {
-
- this.error_line = validate_res.size;
-
- if (this.error_line < 1) {
- return true;
- }
- var tlines = this.el.get_line_count ();
- Gtk.TextIter iter;
- var valiter = validate_res.map_iterator();
- while (valiter.next()) {
-
- // print("get inter\n");
- var eline = valiter.get_key();
- if (eline > tlines) {
- continue;
- }
- this.el.get_iter_at_line( out iter, eline);
- //print("mark line\n");
- this.el.create_source_mark(valiter.get_value(), "ERR", iter);
- }
- return false;
- }
public string toString () {
Gtk.TextIter s;
//print("done mark line\n");
return true; // at present allow saving - even if it's invalid..
- }
- public bool highlightErrorsJson (string type, Json.Object obj) {
- Gtk.TextIter start;
- Gtk.TextIter end;
- this.el.get_bounds (out start, out end);
-
- this.el.remove_source_marks (start, end, type);
-
-
- // we should highlight other types of errors..
-
- if (!obj.has_member(type)) {
- print("Return has no errors\n");
- return true;
- }
-
- if (_this.window.windowstate.state != WindowState.State.CODEONLY &&
- _this.window.windowstate.state != WindowState.State.CODE
- ) {
- return true;
- }
-
-
- var err = obj.get_object_member(type);
-
-
- if (_this.file == null) {
- return true;
-
- }
- var valafn = _this.file.path;
-
- if (_this.file.xtype != "PlainFile") {
-
-
-
-
- valafn = "";
- try {
- var regex = new Regex("\\.bjs$");
- // should not happen
-
-
- valafn = regex.replace(_this.file.path,_this.file.path.length , 0 , ".vala");
- } catch (GLib.RegexError e) {
- return true;
- }
-
-
-
- }
- if (!err.has_member(valafn)) {
- print("File path has no errors\n");
- return true;
- }
-
- var lines = err.get_object_member(valafn);
-
- var offset = 1;
- if (obj.has_member("line_offset")) {
- offset = (int)obj.get_int_member("line_offset") + 1;
- }
-
-
-
-
- var tlines = this.el.get_line_count () +1;
-
- lines.foreach_member((obj, line, node) => {
-
- Gtk.TextIter iter;
- // print("get inter\n");
- var eline = int.parse(line) - offset;
- print("GOT ERROR on line %s -- converted to %d\n", line,eline);
-
-
- if (eline > tlines || eline < 0) {
- return;
- }
- this.el.get_iter_at_line( out iter, eline);
- //print("mark line\n");
- var msg = "Line: %d".printf(eline+1);
- var ar = lines.get_array_member(line);
- for (var i = 0 ; i < ar.get_length(); i++) {
- msg += (msg.length > 0) ? "\n" : "";
- msg += ar.get_string_element(i);
- }
-
-
- this.el.create_source_mark(msg, type, iter);
- } );
- return false;
-
-
-
-
-
}
}