"}",
""
],
- "| void highlightErrorsJson" : [
- " (string type, Json.Object obj) {",
- " Gtk.TextIter start;",
- " Gtk.TextIter end; ",
- " ",
- " var buf = this.el.get_buffer();",
- " var sbuf = (GtkSource.Buffer)buf;",
- " buf.get_bounds (out start, out end);",
- " ",
- " sbuf.remove_source_marks (start, end, type);",
- " ",
- " ",
- " // we should highlight other types of errors..",
- " ",
- " if (!obj.has_member(type)) {",
- " GLib.debug(\"Return has no errors\\n\");",
- " return ;",
- " }",
- " var err = obj.get_object_member(type);",
- " ",
- " if (_this.file == null) { ",
- "\t",
- " return; // just in case the file has not loaded yet?",
- " }",
- " ",
- "",
- " var valafn = \"\";",
- " try { ",
- " var regex = new Regex(\"\\\\.bjs$\");",
- " ",
- " ",
- " valafn = regex.replace(_this.file.path,_this.file.path.length , 0 , \".vala\");",
- " } catch (GLib.RegexError e) {",
- " return;",
- " } ",
- "",
- " if (!err.has_member(valafn)) {",
- " GLib.debug(\"File path has no errors\\n\");",
- " return ;",
- " }",
- " var lines = err.get_object_member(valafn);",
- " ",
- " ",
- " ",
- " var tlines = buf.get_line_count () +1;",
- " ",
- " lines.foreach_member((obj, line, node) => {",
- " ",
- " Gtk.TextIter iter;",
- " // print(\"get inter\\n\");",
- " var eline = int.parse(line) -1 ;",
- " GLib.debug(\"GOT ERROR on line %s -- converted to %d\\n\", line,eline);",
- " ",
- " ",
- " if (eline > tlines || eline < 0) {",
- " return;",
- " }",
- " sbuf.get_iter_at_line( out iter, eline);",
- " //print(\"mark line\\n\");",
- " var msg = type + \" on line: %d - %s\".printf(eline+1, valafn);",
- " var ar = lines.get_array_member(line);",
- " for (var i = 0 ; i < ar.get_length(); i++) {",
- "\t\t msg += (msg.length > 0) ? \"\\n\" : \"\";",
- "\t\t msg += ar.get_string_element(i);",
- "\t }",
- " ",
- " ",
- " sbuf.create_source_mark(msg, type, iter);",
- " } );",
- " return ;",
- " ",
- " ",
- "",
- "",
- "}"
- ],
"| void loadFile" : [
"( ) {",
" this.loading = true;",
" ",
" ((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..",
- " ",
- " ",
- " if (_this.main_window.windowstate.last_compile_result != null) {",
- " var obj = _this.main_window.windowstate.last_compile_result;",
- " this.highlightErrorsJson(\"ERR\", obj);",
- " this.highlightErrorsJson(\"WARN\", obj);",
- " this.highlightErrorsJson(\"DEPR\", obj);\t\t\t",
- " }",
- " // while (Gtk.events_pending()) {",
- " // Gtk.main_iteration();",
- " // }",
+ " ",
+ " _this.main_window.windowstate.updateErrorMarksAll(); ",
+ " ",
+ " ",
" ",
" this.loading = false; ",
"}",
" ",
"}",
""
+ ],
+ "| 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 ;",
+ "",
+ "",
+ "",
+ " ",
+ "",
+ "}"
]
}
],