},
"gboolean show_line_marks" : true,
"id" : "view",
- "* init" : " \n var description = Pango.FontDescription.from_string(\"monospace\");\n description.set_size(8000);\n this.el.override_font(description);\n\n var attrs = new Gtk.SourceMarkAttributes();\n var pink = new Gdk.RGBA();\n pink.parse ( \"pink\");\n attrs.set_background ( pink);\n attrs.set_icon_name ( \"process-stop\"); \n attrs.query_tooltip_text.connect(( mark) => {\n print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"error\", attrs, 1);\n \n ",
+ "* init" : " \n var description = Pango.FontDescription.from_string(\"monospace\");\n description.set_size(8000);\n this.el.override_font(description);\n\n var attrs = new Gtk.SourceMarkAttributes();\n var pink = new Gdk.RGBA();\n pink.parse ( \"pink\");\n attrs.set_background ( pink);\n attrs.set_icon_name ( \"process-stop\"); \n attrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"error\", attrs, 1);\n \n ",
"$ insert_spaces_instead_of_tabs" : true,
"* pack" : "add",
"xtype" : "SourceView",
"xtype" : "SourceBuffer",
"bool check_running" : false,
"$ xns" : "Gtk",
- "| bool highlightErrorsJson" : "(Json.Object obj) {\n\n if (!obj.has_member(\"ERR\")) {\n print(\"Return has no errors\\n\");\n return true;\n }\n var err = obj.get_object_member(\"ERR\");\n \n if (!err.has_member(_this.file.path)) {\n print(\"File path has no errors\\n\");\n return true;\n }\n\n var lines = err.get_object_member(_this.file.path);\n \n var offset = 0;\n if (obj.has_member(\"line_offset\")) {\n offset = (int)obj.get_int_member(\"line_offset\");\n }\n \n \n var tlines = this.el.get_line_count ();\n \n lines.foreach_member((obj, line, node) => {\n \n Gtk.TextIter iter;\n // print(\"get inter\\n\");\n var eline = int.parse(line) - offset;\n print(\"GOT ERROR on line %s -- converted to %d\\n\", line,eline);\n \n \n if (eline > tlines || eline < 0) {\n return;\n }\n this.el.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n var msg = \"\";\n var ar = lines.get_array_member(line);\n for (var i = 0 ; i < ar.get_length(); i++) {\n\t\t msg += (msg.length > 0) ? \"\\n\" : \"\";\n\t\t msg += ar.get_string_element(i);\n\t }\n \n \n this.el.create_source_mark(msg, \"error\", iter);\n } );\n return false;\n \n\n\n\n\n}\n"
+ "| bool highlightErrorsJson" : "(Json.Object obj) {\n Gtk.TextIter start;\n Gtk.TextIter end; \n this.el.get_bounds (out start, out end);\n \n this.el.remove_source_marks (start, end, null);\n \n if (!obj.has_member(\"ERR\")) {\n print(\"Return has no errors\\n\");\n return true;\n }\n var err = obj.get_object_member(\"ERR\");\n \n if (!err.has_member(_this.file.path)) {\n print(\"File path has no errors\\n\");\n return true;\n }\n\n var lines = err.get_object_member(_this.file.path);\n \n var offset = 0;\n if (obj.has_member(\"line_offset\")) {\n offset = (int)obj.get_int_member(\"line_offset\");\n }\n \n \n var tlines = this.el.get_line_count ();\n \n lines.foreach_member((obj, line, node) => {\n \n Gtk.TextIter iter;\n // print(\"get inter\\n\");\n var eline = int.parse(line) - offset;\n print(\"GOT ERROR on line %s -- converted to %d\\n\", line,eline);\n \n \n if (eline > tlines || eline < 0) {\n return;\n }\n this.el.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n var msg = \"\";\n var ar = lines.get_array_member(line);\n for (var i = 0 ; i < ar.get_length(); i++) {\n\t\t msg += (msg.length > 0) ? \"\\n\" : \"\";\n\t\t msg += ar.get_string_element(i);\n\t }\n \n \n this.el.create_source_mark(msg, \"error\", iter);\n } );\n return false;\n \n\n\n\n\n}\n"
}
]
}
attrs.set_background ( pink);
attrs.set_icon_name ( "process-stop");
attrs.query_tooltip_text.connect(( mark) => {
- print("tooltip query? %s\n", mark.name);
+ //print("tooltip query? %s\n", mark.name);
return mark.name;
});
return true; // at present allow saving - even if it's invalid..
}
public bool highlightErrorsJson (Json.Object obj) {
-
+ Gtk.TextIter start;
+ Gtk.TextIter end;
+ this.el.get_bounds (out start, out end);
+
+ this.el.remove_source_marks (start, end, null);
+
if (!obj.has_member("ERR")) {
print("Return has no errors\n");
return true;