Fix #8025 - move css to resources
[roobuilder] / src / Builder4 / Editor.bjs
index 30bfedd..de4f6cb 100644 (file)
        "* ctor" : "new Gtk.Scale.with_range (Gtk.Orientation.HORIZONTAL,6, 30, 1)",
        "* init" : [
         "{",
-        "\tthis.el.set_range(6,30);",
-        "\tthis.el.set_value(8);",
+        "\t//this.el.set_range(6,30);",
+        " \tthis.el.set_value ( BuilderApplication.settings.editor_font_size);",
+        " \tBuilderApplication.settings.editor_font_size_updated.connect(",
+        " \t\t() => {",
+        " \t\t\tBuilderApplication.settings.editor_font_size_inchange = true;",
+        " \t\t\tGLib.debug(\"update range\");",
+        " \t\t \tthis.el.set_value (BuilderApplication.settings.editor_font_size);",
+        " \t\t \tBuilderApplication.settings.editor_font_size_inchange = false;",
+        " \t\t}",
+        "\t);",
+        "\t",
+        " ",
         "}",
         ""
        ],
        "listeners" : {
         "change_value" : [
          "(st, val ) => {",
-         "\t ",
-         "\t   ",
-         "\t  _this.view.css.load_from_string(",
-         "\t  \t\t\"#editor-view { font: %dpx monospace; }\".printf((int)val)",
-         "\t   );",
-         "     ",
+         "\tif (BuilderApplication.settings.editor_font_size_inchange) {",
+         "\t\treturn false;",
+         "\t}",
+         "  \tBuilderApplication.settings.editor_font_size = val;",
          " \treturn false;",
          "}"
         ]
        "$ xns" : "GtkSource",
        "* init" : [
         "",
-        "",
-        "this.css = new Gtk.CssProvider();",
-        "",
-        "this.css.load_from_string(",
-        "\t\"#editor-view { font:  12px monospace;}\"",
-        ");",
         " ",
-        "Gtk.StyleContext.add_provider_for_display(",
-        "\tthis.el.get_display(),",
-        "\tthis.css,",
-        "\tGtk.STYLE_PROVIDER_PRIORITY_APPLICATION",
-        ");",
         "\t",
         " ",
         " ",
        "bool vexpand" : true,
        "boolean show_line_marks" : true,
        "boolean show_line_numbers" : true,
+       "css_classes" : "{ \"code-editor\" }",
        "gboolean highlight_current_line" : true,
        "id" : "view",
        "indent_width" : 4,
     "\t}",
     "\tvar ar = this.file.getErrors();",
     "\tif (ar.size < 1) {",
-    "\t\tbuf.remove_source_marks (start, end, null);",
+    "\t\tbuf.remove_source_marks (start, end, \"ERR\");",
+    "\t\tbuf.remove_source_marks (start, end, \"WARN\");",
+    "\t\tbuf.remove_source_marks (start, end, \"DEPR\");",
     "\t\tbuf.remove_tag_by_name (\"ERR\", start, end);",
     "\t\tbuf.remove_tag_by_name (\"WARN\", start, end);",
     "\t\tbuf.remove_tag_by_name (\"DEPR\", start, end);",
     "\t\t}",
     "\t",
     "\t}",
-    "\tbuf.remove_source_marks (start, end, null);",
+    "\tbuf.remove_source_marks (start, end, \"ERR\");",
+    "\tbuf.remove_source_marks (start, end, \"WARN\");",
+    "\tbuf.remove_source_marks (start, end, \"DEPR\");",
     "\tbuf.remove_tag_by_name (\"ERR\", start, end);",
     "\tbuf.remove_tag_by_name (\"WARN\", start, end);",
     "\tbuf.remove_tag_by_name (\"DEPR\", start, end);",
     "\t    if (eline > tlines || eline < 0) {",
     "\t        continue;",
     "\t    }",
-    "\t   ",
     "\t    ",
     "\t    buf.get_iter_at_line( out iter, eline);",
     "\t   \tvar msg = \"Line: %d %s : %s\".printf(eline+1, diag.category, diag.message);",
     "\t    buf.create_source_mark( msg, diag.category, iter);",
+    "\t    ",
+    " \t    var spos = (int)diag.range.start.character - hoffset;",
+    " \t    if (spos < 0) { spos =0 ; }",
+    " \t    if (spos > iter.get_chars_in_line()) {",
+    " \t    \tspos = iter.get_chars_in_line();",
+    "    \t}",
+    "\t\tbuf.get_iter_at_line( out iter, eline_to);",
+    "\t\tvar epos = (int)diag.range.end.character - hoffset;",
+    " \t    if (epos < 0) { epos =0 ; }",
+    " \t    if (epos > iter.get_chars_in_line()) {",
+    " \t    \tepos = iter.get_chars_in_line();",
+    "    \t}",
+    " \t     ",
     " \t    ",
-    " \t    buf.get_iter_at_line_offset( out start, ",
-    " \t    \teline, (int)diag.range.start.character - hoffset); ",
-    " \t    buf.get_iter_at_line_offset( out end, ",
-    " \t    \teline_to, (int)diag.range.end.character - hoffset); ",
+    " \t    buf.get_iter_at_line_offset( out start, eline, spos); ",
+    " \t   ",
+    " \t    buf.get_iter_at_line_offset( out end, eline_to,epos); ",
     " \t    \t",
     "\t    buf.apply_tag_by_name(diag.category, start, end);",
     "\t    ",