X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FBuilder4%2FWindowRooView.bjs;h=506da32fbc8b07b825c575017fc22d4d5a3ccf80;hb=67b4cca903e02417c1802b41c2fd8bb0da45c3e0;hp=8a05b79f3efee711e0ff561a62fb5db8abbb84b5;hpb=9455f25b400cc03a63b56f9fbfdea67776af7c95;p=roobuilder diff --git a/src/Builder4/WindowRooView.bjs b/src/Builder4/WindowRooView.bjs index 8a05b79f3..506da32fb 100644 --- a/src/Builder4/WindowRooView.bjs +++ b/src/Builder4/WindowRooView.bjs @@ -872,12 +872,9 @@ " ((GtkSource.Buffer)(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..", + " _this.main_window.windowstate.updateErrorMarksAll();", " ", + " // what does this do?", " GLib.Timeout.add(500, () => {", "", " print(\"RESORTING cursor to = %d\\n\", cpos);", @@ -1632,6 +1629,77 @@ " ", "}", "" + ], + "| void updateErrorMarks" : [ + "(string category) {", + "\t", + " ", + "", + "\tvar buf = _this.buffer.el;", + "\tGtk.TextIter start;", + "\tGtk.TextIter end; ", + "\tbuf.get_bounds (out start, out end);", + "", + "\tbuf.remove_source_marks (start, end, category);", + " ", + "\tGLib.debug(\"highlight errors\");\t\t ", + "", + "\t // we should highlight other types of errors..", + "", + " ", + "", + "\t ", + "\tif (_this.file == null) {", + "\t\tGLib.debug(\"file is null?\");", + "\t\treturn;", + "", + "\t}", + "\tvar ar = this.file.getErrors(category);", + "\tif (ar == null || ar.get_n_items() < 1) {", + "\t\tGLib.debug(\"higjlight %s has no errors\", category);", + "\t\treturn;", + "\t}", + " ", + "", + " ", + "\t", + "\tvar offset = 0;", + "\t ", + "", + "\tvar tlines = buf.get_line_count () +1;", + "\t", + " ", + "\t ", + "\tfor (var i = 0; i < ar.get_n_items();i++) {", + "\t\tvar err = (Palete.CompileError) ar.get_item(i);", + "\t\t", + "\t Gtk.TextIter iter;", + "// print(\"get inter\\n\");", + "\t var eline = err.line - offset;", + "\t GLib.debug(\"GOT ERROR on line %d -- converted to %d (offset = %d)\",", + "\t \terr.line ,eline, offset);", + "\t ", + "\t ", + "\t if (eline > tlines || eline < 0) {", + "\t return;", + "\t }", + "\t ", + "\t ", + "\t buf.get_iter_at_line( out iter, eline);", + "\t ", + "\t ", + "\t\tvar msg = \"Line: %d %s : %s\".printf(eline+1, err.category, err.msg);", + "\t buf.create_source_mark( msg, err.category, iter);", + "\t GLib.debug(\"set line %d to %s\", eline, msg);", + "\t //this.marks.set(eline, msg);", + "\t}", + "\treturn ;", + "", + "", + "", + " ", + "", + "}" ] } ],