namespace Palete
{
+
+
public errordomain Error {
INVALID_TYPE,
NEED_IMPLEMENTING,
this.left = ileft;
this.right= iright;
}
+ public bool leftHas(string s)
+ {
+ for(var i = 0 ; i < this.left.size; i++) {
+ var m = this.left.get(i);
+ if (s == m) {
+ return true;
+ }
+ if (!m.contains(":")) {
+ continue;
+ }
+ var ar = m.split(":");
+ if (ar[0] == s) {
+ return true;
+ }
+ }
+ return false;
+
+ }
+
+
}
},
*/
- public string[] getChildList(string 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
for (var i = 0; i < this.map.size; i++) {
var m = this.map.get(i);
- if (m.left.index_of(rval) < 0) {
+ 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 (ret.index_of(l) > -1) {
+ if (rt.index_of(l) > -1) {
continue;
}
- print("ADD " + string.joinv(", ", ret) + "\n");
+ //print("ADD " + string.joinv(", ", ret) + "\n");
ret += l;
rt.add(l);
}
if (m.right.index_of(rval) < 0) {
continue;
}
- print("found RIGHT, adding left\n");
+ //print("found RIGHT, adding left\n");
for(var ii =0; ii < m.left.size; ii++) {
var l = m.left.get(ii);
- if (ret.index_of(l) > -1) {
+ if (rt.index_of(l) > -1) {
continue;
}
- print("ADD " + string.joinv(", ", ret) + "\n");
+ //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));
+ print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
//console.log("DROP LIST:");
//console.dump(ret);
return ret;
public GLib.List<string> listTemplates (JsRender.Node node)
{
- var gn = node.fqn();
+ var gn = node.fqn();
- var ret = new GLib.List<string>();
- var dir= GLib.Environment.get_home_dir() + "/.Builder/" + gn;
- if (!GLib.FileUtils.test(dir, GLib.FileTest.IS_DIR)) {
+ var ret = new GLib.List<string>();
+ var dir= GLib.Environment.get_home_dir() + "/.Builder/" + gn;
+ if (!GLib.FileUtils.test(dir, GLib.FileTest.IS_DIR)) {
return ret;
- }
+ }
- var f = File.new_for_path(dir);
+ var f = File.new_for_path(dir);
var file_enum = f.enumerate_children(GLib.FileAttribute.STANDARD_DISPLAY_NAME, GLib.FileQueryInfoFlags.NONE, null);
ret.loadFromJson(obj, 1);
+ ret.ref(); // not sure if needed -- but we had a case where ret became uninitialized?
+
return ret;
- }
+ }
public void loadUsageFile (string fname) {
this.map = cfg;
}
+
+
+
+ public string validateCode(string code, string language)
+ {
+
+ print("validate code (%s) %s\n", language, code);
+ if (language == "javascript") {
+ //var cd = new JSCore.ClassDefinitionEmpty();
+ string res;
+// var ret = Javascript.singleton().validate(code, out res);
+// print ("ret = %s\n%s" , ret ? "OK" : "BAD", res);
+
+ return "";
+ }
+
+ print ("not javascript\n");
+ return "";
+
+ }
+
+
public abstract void fillPack(JsRender.Node node,JsRender.Node parent);
public abstract void load();