prop.type = o.get_string_member("type");
prop.doctxt = o.get_string_member("desc");
- prop.propertyof = o.has_member("memberOf") ? o.get_string_member("memberOf") : cls.name;
+ prop.propertyof = o.has_member("memberOf") ? o.get_string_member("memberOf") : "";
+ if (prop.propertyof.length < 1) {
+ prop.propertyof = cls.name;
+ }
prop.sig = o.has_member("sig") ? o.get_string_member("sig") : "";
if (o.has_member("optvals") ) {
var cls = new GirObject("class", key);
cls.props = this.propsFromJSONArray("prop", value.get_object().get_array_member("props"),cls);
cls.signals = this.propsFromJSONArray("signal", value.get_object().get_array_member("events"),cls);
+ if (value.get_object().has_member("methods")) {
+ cls.methods = this.propsFromJSONArray("method", value.get_object().get_array_member("methods"),cls);
+ }
this.classes.set(key, cls);
});
}
public override List<SourceCompletionItem> suggestComplete(
JsRender.JsRender file,
- JsRender.Node node,
+ JsRender.Node? node,
string proptype,
string key,
string complete_string
}
if (complete_string != "Roo" && "Roo".index_of(complete_string,0) == 0 ) { // should we ignore exact matches... ???
- ret.append(new SourceCompletionItem ("Roo", "Roo", null, "Roo library"));
+ ret.append(new SourceCompletionItem ("Roo - A Roo class", "Roo", null, "Roo library"));
+ }
+ if (complete_string != "_this" && "_this".index_of(complete_string,0) == 0 ) { // should we ignore exact matches... ???
+ ret.append(new SourceCompletionItem ("_this - the top level element", "_this", null, "Top level element"));
}
-
return ret;
}
// got at least one ".".
}
return ret;
}
+
+
+
// check methods?? - we do not export that at present..
return ret; //no idea...
}
}
print("matching property");
+
+
+ var citer = cls.methods.map_iterator();
+ while (citer.next()) {
+ var prop = citer.get_value();
+ // does the name start with ...
+ if (parts[i].length > 0 && prop.name.index_of(parts[i],0) != 0) {
+ continue;
+ }
+ // got a matching property...
+ // return type?
+ ret.append(new SourceCompletionItem (
+ prop.name + prop.sig + " : ("+ prop.propertyof + ")",
+ prevbits + prop.name + "(",
+ null,
+ prop.doctxt));
+ }
+
// get the properties / methods and subclasses.. of cls..
// we have cls.. - see if the string matches any of the properties..
- var citer = cls.props.map_iterator();
+ citer = cls.props.map_iterator();
while (citer.next()) {
var prop = citer.get_value();
// does the name start with ...