src/Palete/Palete.vala
[app.Builder.js] / src / Palete / Palete.vala
index a9a3cf9..88003c1 100644 (file)
@@ -360,24 +360,25 @@ namespace Palete
        
        
        
-               public   Gee.HashMap<int,string>  validateJavascript(
+               public   bool  javascriptHasErrors(
                                        WindowState state,
                                        string code, 
                                        string property, 
                                        string ptype,
                                        JsRender.JsRender file,
-                                       JsRender.Node? node
+                                       JsRender.Node? node, 
+                                       out Gee.HashMap<int,string> errors
                                 ) 
                {   
 
                         print("validate code (%s) ptype=%s property=%s\n", file.language, ptype, property);
-                        var ret = new Gee.HashMap<int,string>();
+                          errors = new Gee.HashMap<int,string>();
                
                        if (file.language != "js") {
-                               return ret;
+                               return false;
                         }
                         if (ptype != "listener" && property.length > 0 && property[0] == '|') {
-                               return ret;
+                               return false;
                         }
                        
                        //var cd = new JSCore.ClassDefinitionEmpty();
@@ -396,16 +397,17 @@ namespace Palete
                                        var lines_ar = new Json.Array();
                                        lines_ar.add_string_element(errmsg);
                                        lines_obj.set_array_member(line.to_string(), lines_ar);
-                                       files_obj.set_object_member(file.filename, lines_obj);
+                                       files_obj.set_object_member(file.path, lines_obj);
                                         
                                        err.set_object_member("ERR", files_obj);
-                                       err.set_object_member("ERR-TOTAL", 1);
                                        state.showCompileResult(err);
-                                       return ret;
+                                       // do not set errors.. that's not done here..
+                                       return true;
                                }
-                               ret.set(line, errmsg); // depricated - this is used by the editor currently -- but we are planning to switch from that..
+                               errors.set(line, errmsg); // depricated - this is used by the editor currently -- but we are planning to switch from that..
                                print("got  errors\n");
-                               return ret;
+                               return true;
 
                        }
                        // now syntax is OK.. try the 
@@ -413,14 +415,14 @@ namespace Palete
                        
                        
                        if (ptype == "file") {
-                                this.validateJavascriptCompression(file, state, code);
+                                return this.javascriptHasCompressionErrors(file, state, code);
                        }
                        print("no errors\n");
-                       return ret;
+                       return false;
                          
                } 
                
-               public void  validateJavascriptCompression(JsRender.JsRender file, WindowState state, string code)
+               public bool  javascriptHasCompressionErrors(JsRender.JsRender file, WindowState state, string code)
                {
                        // this uses the roojspacker code to try and compress the code.
                        // it should highlight errors before we actually push live the code.
@@ -432,29 +434,16 @@ namespace Palete
                        p.skipScope = false;
                        p.dumpTokens = false;
                        p.cleanup = false; 
-                       var estr = "";
-                       var ret = new Gee.HashMap<int,string>();
+                
                         
-                       p.packFile(code, file.filename,"");
-                       if (!p.hasErrors("")) {
-                               state.showCompileResult(err);
-                       }
-                         
-                       if (estr.length > 0 ) {
-
-                               var bits = estr.split(",");
-                               if (bits.length > 2) {
-                                       var linebits = bits[1].strip().split(" ");
-                                       if (linebits.length > 1) {
-                                               var line = int.parse(linebits[1]);
-                                               // line is correct - but our standard for error messages is to do it start at '0'
-                                               ret.set(line -1 , bits[2]);
-                                       }
-                                       
-                               }
+                       p.packFile(code, file.path,"");
+                       state.showCompileResult(p.result);
+                       if (p.hasErrors()) {
+                               return true;
                        }
+                       return false;
                        
-                       return ret;
+
                
                }