tests/forkme.vala
[app.Builder.js] / src / Palete / Palete.vala
index 315ec90..81d8007 100644 (file)
@@ -73,15 +73,15 @@ namespace Palete
        
         public string name;
 
-       public Gee.ArrayList<Usage> map;
+               public Gee.ArrayList<Usage> map;
 
-       public Gee.HashMap<string,GirObject> classes; // used in roo.. 
+               public Gee.HashMap<string,GirObject> classes; // used in roo.. 
        
         public Palete()
         {
-            // nothing?
-               this.map = null;
-               this.classes = null;
+                               // nothing?
+                       this.map = null;
+                       this.classes = null;
         }
         
         
@@ -102,86 +102,86 @@ namespace Palete
          
 
            
-       public string[] getChildList(string in_rval)
+               public string[] getChildList(string in_rval)
         {
 
-               if (this.map == null) {
-                       this.load();
-               }
-               // empty == *top
-               
-               var rval = in_rval == "" ? "*top" : in_rval; 
-                               
-                               // should be a bit more than this..
-                       // -> it should look for all elements that inherit 
-               string[] ret = {};
-               var rt = new Gee.ArrayList<string>();
-               for (var i = 0; i < this.map.size; i++) {
-                       var m = this.map.get(i);
-                               
-                       if (!m.leftHas(rval)) {
-                               continue;
+                       if (this.map == null) {
+                               this.load();
                        }
-                       print("found LEFT, adding right\n");
-               
-                       for(var ii =0; ii < m.right.size; ii++) {
-                               var l = m.right.get(ii);
+                       // empty == *top
+                       
+                       var rval = in_rval == "" ? "*top" : in_rval; 
                                        
-                               if (rt.index_of(l) > -1) {
-                                   continue;
-                               }
-                               //print("ADD " + string.joinv(", ", ret) + "\n");
-                               ret += l;
-                               rt.add(l);
-                       }
-                               
-                
-               }
-               print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
-               //console.log("DROP LIST:");
-               //console.dump(ret);
-               return ret;
-            
+                                       // should be a bit more than this..
+                               // -> it should look for all elements that inherit 
+                               string[] ret = {};
+                       var rt = new Gee.ArrayList<string>();
+                       for (var i = 0; i < this.map.size; i++) {
+                               var m = this.map.get(i);
+                                       
+                                       if (!m.leftHas(rval)) {
+                                       continue;
+                               }
+                               print("found LEFT, adding right\n");
+                       
+                               for(var ii =0; ii < m.right.size; ii++) {
+                                               var l = m.right.get(ii);
+                                               
+                                               if (rt.index_of(l) > -1) {
+                                                       continue;
+                                               }
+                                       //print("ADD " + string.joinv(", ", ret) + "\n");
+                                               ret += l;
+                                       rt.add(l);
+                                       }
+                                       
+                                       
+                               }
+                       print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
+                       //console.log("DROP LIST:");
+                       //console.dump(ret);
+                       return ret;
+                               
         }
 
            
         public string[] getDropList(string rval)
         {
 
-               if (this.map == null) {
-                       this.load();
-               }
-
-                               
-                               // should be a bit more than this..
-                       // -> it should look for all elements that inherit 
-               string[] ret = {};
-               var rt = new Gee.ArrayList<string>();
-               for (var i = 0; i < this.map.size; i++) {
-                       var m = this.map.get(i);
-                               
-                       if (m.right.index_of(rval) < 0) {
-                               continue;
+                       if (this.map == null) {
+                               this.load();
                        }
-                       //print("found RIGHT, adding left\n");
-               
-                       for(var ii =0; ii < m.left.size; ii++) {
-                               var l = m.left.get(ii);
+
                                        
-                               if (rt.index_of(l) > -1) {
-                                   continue;
-                               }
-                               //print("ADD " + string.joinv(", ", ret) + "\n");
-                               ret += l;
-                               rt.add(l);
-                       }
-                               
-                
-               }
-                print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
-               //console.log("DROP LIST:");
-               //console.dump(ret);
-               return ret;
+                                       // should be a bit more than this..
+                               // -> it should look for all elements that inherit 
+                               string[] ret = {};
+                       var rt = new Gee.ArrayList<string>();
+                       for (var i = 0; i < this.map.size; i++) {
+                               var m = this.map.get(i);
+                                       
+                                       if (m.right.index_of(rval) < 0) {
+                                       continue;
+                               }
+                               //print("found RIGHT, adding left\n");
+                       
+                               for(var ii =0; ii < m.left.size; ii++) {
+                                               var l = m.left.get(ii);
+                                               
+                                               if (rt.index_of(l) > -1) {
+                                                       continue;
+                                               }
+                                       //print("ADD " + string.joinv(", ", ret) + "\n");
+                                               ret += l;
+                                       rt.add(l);
+                                       }
+                                       
+                                       
+                               }
+                        print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
+                       //console.log("DROP LIST:");
+                       //console.dump(ret);
+                       return ret;
             
         }
       
@@ -324,7 +324,7 @@ namespace Palete
 
        
          
-       public async Gee.HashMap<int,string>  validateCode(
+       public async Gee.HashMap<int,string>  validateVala(
                        string code, 
                                string property, 
                                string ptype,
@@ -336,46 +336,66 @@ namespace Palete
                 print("validate code (%s) %s\n", file.language, code);
                 var ret = new Gee.HashMap<int,string>();
                
-               if (file.language == "js" && (ptype == "listener" || property[0] == '|')) {
-                       
-                       
-                       //var cd = new JSCore.ClassDefinitionEmpty();
-                       //print("TESTING CODE %s\n", code);
-                       string errmsg;
-                       var line = Javascript.singleton().validate(
-                                  "var __aaa___ = " + code, out errmsg);
-
-                       if (line < 0) {
-                               return ret;
-                       }
-                       ret.set(line, errmsg);
+                
+               if (file.language != "vala" ) { // not sure if we need to validate property
                        return ret;
                }
-               if (file.language == "vala" ) { // not sure if we need to validate property
+               var vs = new ValaSource(file);
+               //var cd = new JSCore.ClassDefinitionEmpty();
+                ret = yield vs.checkFileWithNodePropChange(
+                               node, 
+                               property, 
+                               ptype,
+                               code
+                );
+                vs = null;
+               return ret;
+
+       }
+       public   Gee.HashMap<int,string>  validateJavascript(
+                       string code, 
+                               string property, 
+                               string ptype,
+                               JsRender.JsRender file,
+                               JsRender.Node node
+                     ) 
+       {   
+
+                print("validate code (%s) %s\n", file.language, code);
+                var ret = new Gee.HashMap<int,string>();
+               
+               if (file.language != "js") {
+                       return ret;
+                }
+                if (ptype != "listener" && property[0] == '|') {
+                       return ret;
+                }
                        
-                       var vs = new ValaSource(file);
-                       //var cd = new JSCore.ClassDefinitionEmpty();
-                       var ret = yield vs.checkFileWithNodePropChange(
-                               node, 
-                                       property, 
-                                       ptype,
-                                       code
-                        );
+               //var cd = new JSCore.ClassDefinitionEmpty();
+               //print("TESTING CODE %s\n", code);
+               string errmsg;
+               var line = Javascript.singleton().validate(
+                                                         "var __aaa___ = " + code, out errmsg);
+
+               if (line < 0) {
+                       print("no errors\n");
                        return ret;
                }
-                ;
-
-               //print ("not javascript\n");
+               ret.set(line, errmsg);
+               print("got  errors\n");
                return ret;
+                
 
        }
-
            
           
-        public abstract void fillPack(JsRender.Node node,JsRender.Node parent);
+       public abstract void fillPack(JsRender.Node node,JsRender.Node parent);
        public abstract void load();
        public abstract Gee.HashMap<string,GirObject> getPropertiesFor(string ename, string type);
        public abstract GirObject? getClass(string ename);
+       
+       public abstract bool typeOptions(string fqn, string key, string type, out string[] opts);
+       
     }