src/Builder4/Editor.bjs
[app.Builder.js] / src / Builder4 / Editor.vala
index 9a19e68..dfbbc8c 100644 (file)
@@ -24,7 +24,6 @@ public class Editor : Object
     public int pos_root_x;
     public int pos_root_y;
     public string ptype;
-    public string fname;
     public string key;
     public JsRender.JsRender file;
     public bool pos;
@@ -42,7 +41,6 @@ public class Editor : Object
         this.window = null;
         this.activeEditor = "";
         this.ptype = "";
-        this.fname = "";
         this.key = "";
         this.file = null;
         this.pos = false;
@@ -100,7 +98,7 @@ public class Editor : Object
         return true;
     
     }
-    public   void show (JsRender.JsRender file, JsRender.Node node, string ptype, string key)
+    public   void show (JsRender.JsRender file, JsRender.Node? node, string ptype, string key)
     {
         this.file = file;    
         this.ptype = "";
@@ -129,7 +127,7 @@ public class Editor : Object
     
         }
         this.key_edit.el.text = key;  
-         
+           
     }
     public class Xcls_Box2 : Object
     {
@@ -338,7 +336,7 @@ public class Editor : Object
         
         
           // this.get('/BottomPane').el.set_current_page(0);
-          var buf = (Gtk.SourceBuffer)this.el.get_buffer();
+            var buf = (Gtk.SourceBuffer)this.el.get_buffer();
             buf.set_text(str, str.length);
             buf.set_undo_manager(null);
             
@@ -347,9 +345,13 @@ public class Editor : Object
             if (_this.file != null) {
                  lang = _this.file.language;
             }
-            //?? is javascript going to work as js?
             
-            ((Gtk.SourceBuffer)(this.el.get_buffer())) .set_language(lm.get_language(lang));
+         
+            ((Gtk.SourceBuffer)(this.el.get_buffer())) .set_language(
+                    _this.file.content_type.length > 0  ?
+                    lm.guess_language(_this.file.path, _this.file.content_type) :
+                    lm.get_language(lang)
+                );
          
              
             _this.dirty = false;
@@ -466,14 +468,13 @@ public class Editor : Object
                 return true;
             }
             
-            if (_this.file == null && _this.fname.length > 0) {
+            if (_this.file.xtype == "PlainFile") {
             
                 // assume it's gtk...
                    this.check_running = true;
         
                  _this.window.windowstate.valasource.checkPlainFileSpawn(
-                    _this.window.project,
-                   _this.fname,
+                  _this.file,
                    str
                 );
                 return true;
@@ -547,8 +548,15 @@ public class Editor : Object
             
             
             var err = obj.get_object_member(type);
-            var valafn = _this.fname;
-            if (_this.file != null) {
+            
+            
+            if (_this.file == null) {
+                return true;
+            
+            }
+            var valafn = _this.file.path;
+         
+            if (_this.file.xtype != "PlainFile") {
         
         
                 
@@ -556,7 +564,8 @@ public class Editor : Object
                  valafn = "";
                   try {             
                        var  regex = new Regex("\\.bjs$");
-                    
+                       // should not happen
+                      
                      
                         valafn = regex.replace(_this.file.path,_this.file.path.length , 0 , ".vala");
                      } catch (GLib.RegexError e) {