src/Builder4/Editor.bjs
[app.Builder.js] / src / Builder4 / Editor.vala
index de7bb5f..9394266 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;
@@ -122,14 +120,15 @@ public class Editor : Object
                 val = node.props.get(key);
             }
             this.view.load(val);
-    
+            this.key_edit.el.show();
+            this.key_edit.el.text = key;  
         
         } else {
             this.view.load(        file.toSource() );
-    
+            this.key_edit.el.hide();
         }
-        this.key_edit.el.text = key;  
-          
+    
+           
     }
     public class Xcls_Box2 : Object
     {
@@ -264,6 +263,7 @@ public class Editor : Object
             this.el.show_line_marks = true;
             this.el.insert_spaces_instead_of_tabs = true;
             this.el.show_line_numbers = true;
+            this.el.draw_spaces = Gtk.SourceDrawSpacesFlags.LEADING;
             this.el.highlight_current_line = true;
             var child_0 = new Xcls_buffer( _this );
             child_0.ref();
@@ -338,7 +338,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,10 +347,19 @@ public class Editor : Object
             if (_this.file != null) {
                  lang = _this.file.language;
             }
-            //?? is javascript going to work as js?
+            print("lang=%s, content_type = %s\n", lang, _this.file.content_type);
+            var lg = _this.file.content_type.length > 0  ?
+                    lm.guess_language(_this.file.path, _this.file.content_type) :
+                    lm.get_language(lang);
             
-            ((Gtk.SourceBuffer)(this.el.get_buffer())) .set_language(lm.get_language(lang));
-         
+           
+           
+            ((Gtk.SourceBuffer)(this.el.get_buffer())) .set_language(lg); 
+        
+            this.el.insert_spaces_instead_of_tabs = true;
+            if (lg.name == "vala") {
+                this.el.insert_spaces_instead_of_tabs = false;
+            }
              
             _this.dirty = false;
             this.el.grab_focus();
@@ -471,10 +480,13 @@ public class Editor : Object
                 // assume it's gtk...
                    this.check_running = true;
         
-                 _this.window.windowstate.valasource.checkPlainFileSpawn(
+                 if (!_this.window.windowstate.valasource.checkPlainFileSpawn(
                   _this.file,
                    str
-                );
+                )) {
+                    this.check_running = false;
+                }
+               
                 return true;
             
             }
@@ -506,16 +518,15 @@ public class Editor : Object
             // clear the buttons.
          
             
-            p.validateVala(
-                _this.window.windowstate,
-                str, 
-                 _this.key, 
-                _this.ptype,
+           if (! _this.window.windowstate.valasource.checkFileWithNodePropChange(
                 _this.file,
-                _this.node 
-                
-                
-            );
+                _this.node,
+                 _this.key,        
+                 _this.ptype,
+                    str
+                )) {
+                this.check_running = false;
+            } 
              
             
             
@@ -546,7 +557,14 @@ public class Editor : Object
             
             
             var err = obj.get_object_member(type);
-            var valafn = _this.fname;
+            
+            
+            if (_this.file == null) {
+                return true;
+            
+            }
+            var valafn = _this.file.path;
+         
             if (_this.file.xtype != "PlainFile") {
         
         
@@ -555,7 +573,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) {