"gboolean show_line_marks" : true,
"id" : "sourceview",
"* init" : "{\n this.curfname = \"\";\n}\n",
- "| void loadFile" : "(string fname, int line ) {\n\n var buf = ((Gtk.SourceBuffer)(this.el.get_buffer()));\n Gtk.TextIter start;\n Gtk.TextIter end; \n buf.get_bounds (out start, out end);\n \n buf.remove_source_marks (start, end, null);\n \n \n \n string str;\n FileUtils.get_contents(fname, out str);\n\t\t\t\n buf.set_text(str, str.length);\n var lm = Gtk.SourceLanguageManager.get_default();\n \n \n buf.set_language(lm.get_language(\"vala\"));\n \n \n this.el.grab_focus();\n\n\n \n var lines = _this.notices.get_object_member(fname);\n \n \n lines.foreach_member((obj, line, node) => {\n \n Gtk.TextIter iter;\n // print(\"get inter\\n\");\n var eline = int.parse(line);\n \n \n buf.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n var msg = \"Line: %d\".printf(eline+1);\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 buf.create_source_mark(msg, \"error\", iter);\n } );\n\n \n\n\n}\n",
+ "| void loadFile" : "(string fname, int line ) {\n\n if (this.curfname != fname) {\n this.curfname = fname;\n\n var buf = ((Gtk.SourceBuffer)(this.el.get_buffer()));\n Gtk.TextIter start;\n Gtk.TextIter end; \n buf.get_bounds (out start, out end);\n \n buf.remove_source_marks (start, end, null);\n \n \n \n string str;\n FileUtils.get_contents(fname, out str);\n\t\t\t\n buf.set_text(str, str.length);\n var lm = Gtk.SourceLanguageManager.get_default();\n \n \n buf.set_language(lm.get_language(\"vala\"));\n \n \n this.el.grab_focus();\n\n\n \n var lines = _this.notices.get_object_member(fname);\n \n \n lines.foreach_member((obj, line, node) => {\n \n Gtk.TextIter iter;\n // print(\"get inter\\n\");\n var eline = int.parse(line);\n \n \n buf.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n var msg = \"Line: %d\".printf(eline+1);\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 buf.create_source_mark(msg, \"error\", iter);\n } );\n }\n // jump to the line...\n \n\n\n}\n",
"* pack" : "add",
"xtype" : "SourceView",
"$ xns" : "Gtk",
// user defined functions
public void loadFile (string fname, int line ) {
- var buf = ((Gtk.SourceBuffer)(this.el.get_buffer()));
- Gtk.TextIter start;
- Gtk.TextIter end;
- buf.get_bounds (out start, out end);
-
- buf.remove_source_marks (start, end, null);
+ if (this.curfname != fname) {
+ this.curfname = fname;
+
+ var buf = ((Gtk.SourceBuffer)(this.el.get_buffer()));
+ Gtk.TextIter start;
+ Gtk.TextIter end;
+ buf.get_bounds (out start, out end);
+
+ buf.remove_source_marks (start, end, null);
+
-
-
- string str;
- FileUtils.get_contents(fname, out str);
+
+ string str;
+ FileUtils.get_contents(fname, out str);
- buf.set_text(str, str.length);
- var lm = Gtk.SourceLanguageManager.get_default();
-
-
- buf.set_language(lm.get_language("vala"));
-
+ buf.set_text(str, str.length);
+ var lm = Gtk.SourceLanguageManager.get_default();
+
+
+ buf.set_language(lm.get_language("vala"));
- this.el.grab_focus();
+
+ this.el.grab_focus();
-
- var lines = _this.notices.get_object_member(fname);
-
-
- lines.foreach_member((obj, line, node) => {
-
- Gtk.TextIter iter;
- // print("get inter\n");
- var eline = int.parse(line);
-
-
- buf.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);
- }
+
+ var lines = _this.notices.get_object_member(fname);
+
+ lines.foreach_member((obj, line, node) => {
- buf.create_source_mark(msg, "error", iter);
- } );
-
-
+ Gtk.TextIter iter;
+ // print("get inter\n");
+ var eline = int.parse(line);
+
+
+ buf.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);
+ }
+
+
+ buf.create_source_mark(msg, "error", iter);
+ } );
+ }
+ // jump to the line...
+
}