src/Builder4/Editor.bjs
authorAlan Knowles <alan@roojs.com>
Fri, 15 May 2015 07:57:57 +0000 (15:57 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 15 May 2015 07:57:57 +0000 (15:57 +0800)
src/Builder4/Editor.vala

src/Builder4/Editor.bjs
src/Builder4/Editor.vala

index 67e0fa6..525f461 100644 (file)
@@ -63,7 +63,7 @@
        },
        "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",
@@ -88,7 +88,7 @@
          "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"
         }
        ]
       }
index 374fd02..ad98751 100644 (file)
@@ -264,7 +264,7 @@ public class Editor : Object
                 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;
                 });
                 
@@ -480,7 +480,12 @@ public class Editor : Object
             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;