// this currently uses the concept of publish.js...
+ if (PackerRun.singleton().opt_doc_dump_tree) {
+
+
+ var symbols = this.symbolSet.values();
+
+
+
+
+ //print(JSON.stringify(symbols,null,4));
+ var classes = new Gee.ArrayList<Symbol>();
+
+ foreach(var symbol in symbols) {
+ if (symbol.isaClass()) {
+ classes.add(symbol);
+ }
+ }
+ classes.sort( (a,b) => {
+ return a.alias.collate(b.alias);
+ });
+
+ var jsonAll = new Json.Object();
+ for (var i = 0, l = classes.size; i < l; i++) {
+ var symbol = classes.get(i);
+
+ jsonAll.set_object_member(symbol.alias, this.publishJSON(symbol));
+
+ }
+
+ var generator = new Json.Generator ();
+ var root = new Json.Node(Json.NodeType.OBJECT);
+
+ root.init_object(jsonAll);
+ generator.set_root (root);
+ generator.pretty= true;
+ generator.indent = 2;
+
+ size_t l;
+ stdout.printf("%s\n",generator.to_data(out l));
+
+ return;
+ }
+ size_t l;
+ //GLib.debug("JSON: %s", generator.to_data(out l));
+
+
+
+
this.publish();
}
}
return string.joinv("\n", ret);
- }
+ }
+
+ public Json.Object toJson()
+ {
+ var ret = new Json.Object();
+ ret.set_string_member("src", this.src);
+ var ar = new Json.Array();
+ foreach(var a in this.tags) {
+ ar.add_object_element(a.toJson());
+ }
+ ret.set_array_member("tags", ar);
+ ret.set_boolean_member("isUserComment", this.isUserComment);
+ ret.set_boolean_member("hasTags", this.hasTags);
+ return ret;
+ }
+
}
}
);
}
-
-
+ public Json.Object toJson()
+ {
+ var ret = new Json.Object();
+ ret.set_string_member("title", this.title.to_string());
+ ret.set_string_member("type", this.type);
+ ret.set_string_member("name", this.name);
+ ret.set_string_member("defaultValue", this.defaultValue);
+ ret.set_string_member("desc", this.desc);
+ ret.set_string_member("memberOf", this.memberOf);
+ ret.set_boolean_member("isOptional", this.isOptional);
+ var ar = new Json.Array();
+ foreach(var ov in this.optvalues) {
+ ar.add_string_element(ov);
+ }
+ ret.set_array_member("optvalues", ar);
+ return ret;
+ }
public DocTag (string in_src)
public string opt_doc_target = null;
public string opt_doc_template_dir = null;
public bool opt_doc_include_private = false;
+ public bool opt_doc_dump_tree = false;
[CCode (array_length = false, array_null_terminated = true)]
private string[]? opt_files = null;
[CCode (array_length = false, array_null_terminated = true)]
private string[]? opt_files_from = null;
-
+
public bool opt_debug = false;
flags = 0,
arg = OptionArg.STRING,
arg_data = &opt_doc_target,
- description = "Target location for documetnation",
+ description = "Target location for documentation",
arg_description = null
},
},
+ OptionEntry() {
+ long_name = "doc-dump-tree",
+ short_name = 'E',
+ flags = 0,
+ arg = OptionArg.NONE,
+ arg_data = &opt_doc_dump_tree,
+ description = "Dump the documenation json tree",
+ arg_description = null
+ },
+
OptionEntry() {
long_name = "doc-private",
short_name = 'P',
}
- string defaultValue = "";
-
+ string defaultValue = "";
private Gee.ArrayList<DocTag> private_doctag_params = null;
private Gee.ArrayList<DocTag> private_params{
public DocComment comment;
//$args : [], // original arguments used when constructing.
- string addOn = "";
+ //string addOn = "";
public string alias = "";
string author = "";
return ret;
}
+ public Json.Array stringArrayToJson( Gee.ArrayList<string> ar)
+ {
+ var ret = new Json.Array();
+ foreach(var a in ar) {
+ ret.add_string_element(a);
+ }
+ return ret;
+
+ }
+ public Json.Array symbolArrayToJson( Gee.ArrayList<Symbol> ar)
+ {
+ var ret = new Json.Array();
+ foreach(var a in ar) {
+ ret.add_object_element(a.toJson());
+ }
+ return ret;
+
+ }
+ public Json.Array docTagsArrayToJson( Gee.ArrayList<DocTag> ar)
+ {
+ var ret = new Json.Array();
+ foreach(var a in ar) {
+ ret.add_object_element(a.toJson());
+ }
+ return ret;
+
+ }
+
+
+
+ public Json.Object assocDocTagToJson( Gee.HashMap<string,DocTag> ar)
+ {
+ var ret = new Json.Object();
+ foreach(var a in ar.keys) {
+ ret.set_object_member(a, ar.get(a).toJson());
+ }
+ return ret;
+
+ }
+
+
+ public Json.Object toJson()
+ {
+ var ret = new Json.Object();
+ ret.set_string_member("name", this.name);
+ ret.set_array_member("params", this.docTagsArrayToJson(this.params));
+
+ ret.set_array_member("augments", this.stringArrayToJson(this.augments));
+ ret.set_array_member("exceptions", this.docTagsArrayToJson(this.exceptions));
+ ret.set_array_member("methods", this.symbolArrayToJson(this.methods));
+ ret.set_array_member("properties", this.symbolArrayToJson(this.properties));
+ ret.set_array_member("requires", this.stringArrayToJson(this.requires));
+ ret.set_array_member("returns", this.docTagsArrayToJson(this.returns));
+ ret.set_array_member("see", this.stringArrayToJson(this.see));
+ ret.set_array_member("childClasses", this.stringArrayToJson(this.childClasses));
+ ret.set_array_member("inheritsFrom", this.stringArrayToJson(this.inheritsFrom));
+ ret.set_object_member("cfgs", this.assocDocTagToJson(this.cfgs));
+ ret.set_object_member("comment", this.comment.toJson());
+ //$args : [], // original arguments used when constructing.
+
+ ret.set_string_member("alias", this.alias);
+
+ ret.set_string_member("author", this.author);
+ ret.set_string_member("classDesc" , this.classDesc);
+ ret.set_string_member("deprecated", this.deprecated);
+ ret.set_string_member("desc", this.desc);
+ //events : false,
+ ret.set_string_member("example", this.example);
+
+ ret.set_string_member("isa", this.isa);
+
+ ret.set_boolean_member("isEvent", this.isEvent);
+ ret.set_boolean_member("isConstant", this.isConstant);
+ ret.set_boolean_member("isIgnored", this.isIgnored);
+ ret.set_boolean_member("isInner", this.isInner);
+ ret.set_boolean_member("isNamespace", this.isNamespace);
+ ret.set_boolean_member("isPrivate", this.isPrivate);
+ ret.set_boolean_member("isStatic", this.isStatic);
+
+ ret.set_string_member("memberOf", this.memberOf);
+ return ret;
+ }
+
+
+
+
+
+
+
+
+
+
}
private Gee.HashMap<string,Symbol> __index = null;
+
+ public Json.Object toJson()
+ {
+ var ret = new Json.Object();
+ foreach(var k in this._index.keys) {
+ ret.set_object_member(k, this._index.get(k).toJson());
+ }
+ return ret;
+ }
+
+
public Gee.HashMap<string,Symbol> _index {
get {
if (this.__index == null) {