5 "path" : "/home/alan/gitlive/app.Builder.js/src/Builder4/Editor.bjs",
8 "build_module" : "builder",
11 "# Xcls_MainWindow window" : "null",
12 "# string activeEditor" : "\"\"",
13 "| bool saveContents" : " () {\n \n \n \n \n \n \n \n \n \n var str = _this.buffer.toString();\n \n \n \n \n if (!_this.buffer.checkSyntax()) {\n print(\"check syntax failed\");\n //this.get('/StandardErrorDialog').show(\"Fix errors in code and save..\"); \n //return false;\n }\n \n // LeftPanel.model.changed( str , false);\n _this.dirty = false;\n _this.save_button.el.sensitive = false;\n \n \n \n \n // find the text for the node..\n if (ptype == \"listener\") {\n this.node.listeners.set(key,str);\n \n } else {\n this.node.props.set(key,str);\n }\n\n \n \n // call the signal..\n this.save();\n \n return true;\n\n} ",
14 "# int pos_root_x" : "",
15 "# int pos_root_y" : "",
16 "# string ptype" : "\"\"",
17 "# string key" : "\"\"",
20 "| void show" : "(JsRender.JsRender file, JsRender.Node node, string ptype, string key)\n{\n this.ptype = ptype;\n this.key = key;\n this.node = node;\n this.file = file;\n \n string val = \"\";\n // find the text for the node..\n if (ptype == \"listener\") {\n val = node.listeners.get(key);\n \n } else {\n val = node.props.get(key);\n }\n this.view.load(val);\n this.key_edit.el.text = key; \n\n}",
21 "# JsRender.JsRender file" : "null",
23 "string id" : "Editor",
24 "# bool dirty" : false,
27 "$ homogeneous" : false,
28 "# JsRender.Node node" : "null",
31 "* pack" : "pack_start,false,true",
34 "$ homogeneous" : false,
38 "clicked" : " () => { \n _this.saveContents();\n}\n "
42 "* pack" : "pack_start,false,false",
48 "* pack" : "pack_end,true,true",
56 "* init" : "this.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);",
57 "xtype" : "ScrolledWindow",
63 "key_release_event" : " (event) => {\n \n if (event.keyval == 115 && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {\n print(\"SAVE: ctrl-S pressed\");\n _this.saveContents();\n return false;\n }\n // print(event.key.keyval)\n \n return false;\n\n} \n\n "
65 "gboolean show_line_marks" : true,
67 "* init" : " \n var description = Pango.FontDescription.from_string(\"monospace\");\n description.set_size(8000);\n this.el.override_font(description);\n\n\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 (\"ERR\", attrs, 1);\n \n var wattrs = new Gtk.SourceMarkAttributes();\n var blue = new Gdk.RGBA();\n blue.parse ( \"blue\");\n wattrs.set_background ( blue);\n wattrs.set_icon_name ( \"process-stop\"); \n wattrs.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 (\"WARN\", wattrs, 1);\n \n \n \n var dattrs = new Gtk.SourceMarkAttributes();\n var purple = new Gdk.RGBA();\n purple.parse ( \"purple\");\n dattrs.set_background ( purple);\n dattrs.set_icon_name ( \"process-stop\"); \n dattrs.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 (\"DEPR\", dattrs, 1);\n \n ",
68 "$ insert_spaces_instead_of_tabs" : true,
70 "xtype" : "SourceView",
71 "gboolean highlight_current_line" : true,
72 "$ gboolean auto_indent" : true,
74 "| void load" : " (string str) {\n\n// show the help page for the active node..\n //this.get('/Help').show();\n\n\n // this.get('/BottomPane').el.set_current_page(0);\n this.el.get_buffer().set_text(str, str.length);\n var lm = Gtk.SourceLanguageManager.get_default();\n \n var lang = _this.file.language;\n //?? is javascript going to work as js?\n \n ((Gtk.SourceBuffer)(this.el.get_buffer())) .set_language(lm.get_language(lang));\n var buf = this.el.get_buffer();\n \n _this.dirty = false;\n this.el.grab_focus();\n _this.save_button.el.sensitive = false;\n}",
76 "$ show_line_numbers" : true,
80 "changed" : " () => {\n // check syntax??\n // ??needed..??\n _this.save_button.el.sensitive = true;\n print(\"EDITOR CHANGED\");\n this.checkSyntax();\n \n _this.dirty = true;\n\n // this.get('/LeftPanel.model').changed( str , false);\n return ;\n}\n\n \n"
82 "bool check_queued" : false,
83 "int error_line" : "-1",
85 "| bool highlightErrors" : "( Gee.HashMap<int,string> validate_res) {\n this.error_line = validate_res.size;\n\n if (this.error_line < 1) {\n return true;\n }\n var tlines = this.el.get_line_count ();\n Gtk.TextIter iter;\n var valiter = validate_res.map_iterator();\n while (valiter.next()) {\n \n // print(\"get inter\\n\");\n var eline = valiter.get_key();\n if (eline > tlines) {\n continue;\n }\n this.el.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n this.el.create_source_mark(valiter.get_value(), \"error\", iter);\n } \n return false;\n }",
86 "| string toString" : " () {\n \n Gtk.TextIter s;\n Gtk.TextIter e;\n this.el.get_start_iter(out s);\n this.el.get_end_iter(out e);\n var ret = this.el.get_text(s,e,true);\n //print(\"TO STRING? \" + ret);\n return ret;\n}\n ",
87 "| bool checkSyntax" : " () {\n \n if (this.check_running) {\n print(\"Check is running\\n\");\n if (this.check_queued) { \n print(\"Check is already queued\");\n return true;\n }\n this.check_queued = true;\n print(\"Adding queued Check \");\n GLib.Timeout.add_seconds(1, () => {\n this.check_queued = false;\n \n this.checkSyntax();\n return false;\n });\n \n\n return true;\n }\n \n \n var p = Palete.factory(_this.file.xtype); \n \n var str = this.toString();\n \n string res = \"\";\n \n if (this.error_line > 0) {\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 \n if (str.length < 1) {\n print(\"checkSyntax - empty string?\\n\");\n return true;\n }\n this.check_running = true;\n \n \n if (_this.file.language == \"js\") {\n this.check_running = false;\n print(\"calling validate javascript\\n\"); \n return this.highlightErrors(p.validateJavascript(\n str, \n _this.key, \n _this.ptype,\n _this.file,\n _this.node\n )); \n \n }\n \n \n print(\"calling validate vala\\n\"); \n // clear the buttons.\n _this.window.statusbar_errors.el.hide();\n _this.window.statusbar_warnings.el.hide();\n _this.window.statusbar_depricated.el.hide();\n \n \n \n p.validateVala(\n str, \n _this.key, \n _this.ptype,\n _this.file,\n _this.node \n }\n \n );\n \n \n \n //print(\"done mark line\\n\");\n \n return true; // at present allow saving - even if it's invalid..\n}\n",
88 "* pack" : "set_buffer",
89 "xtype" : "SourceBuffer",
90 "bool check_running" : false,
92 "| bool highlightErrorsJson" : "(string type, 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, type);\n \n \n // we should highlight other types of errors..\n \n if (!obj.has_member(type)) {\n print(\"Return has no errors\\n\");\n return true;\n }\n var err = obj.get_object_member(type);\n \n \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 = 1;\n if (obj.has_member(\"line_offset\")) {\n offset = (int)obj.get_int_member(\"line_offset\") + 1;\n }\n \n \n var tlines = this.el.get_line_count () +1;\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 = \"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 this.el.create_source_mark(msg, type, iter);\n } );\n return false;\n \n\n\n\n\n}\n"