diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..4193eb9
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,940 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ prarm
+
+
+ param
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $PROJECT_DIR$
+ true
+
+ bdd
+
+ DIRECTORY
+
+ false
+
+
+
+
+
+
+
+
+
+
+ 1537187608733
+
+ 1537187608733
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1537352701274
+
+
+ 1537352701274
+
+
+ 1537357990497
+
+
+ 1537357990497
+
+
+ 1537378711949
+
+
+ 1537378711949
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/initi/static/scripts/parse_complex_type.js b/templates/initi/static/scripts/parse_complex_type.js
index 361dc64..9b8ece5 100644
--- a/templates/initi/static/scripts/parse_complex_type.js
+++ b/templates/initi/static/scripts/parse_complex_type.js
@@ -4,14 +4,85 @@
var helper = require('jsdoc/util/templateHelper');
// var linkto = helper.linkto;
+var test_0 = "v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.list(v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.string, v2.vc)))), v2.vc)))";
+var test_1 = "v2.map(v2.map(v2.string, v2.list(v2.integer)), v2.list(v2.pair(v2.string, v2.vc)))";
+var test_2 = "v2.string";
+var test_3 = "v2.string()";
+var test_4 = "v2.string(v2.map)";
+
+var split_args = function (_str) {
+ var delta = 0;
+ var found = 0;
+ for (var a = 0; a < _str.length; a++) {
+ var char = _str[a];
+ switch (char) {
+ case "(":
+ delta++;
+ break;
+ case ")":
+ delta--;
+ break;
+ case ",":
+ found = delta == 0;
+ break;
+ }
+
+ if (found) break;
+ }
+
+ if (found) {
+ var left = _str.substring(0, a);
+ var right = _str.substring(a + 1, _str.length);
+ return [left, right]
+ }
+
+ return [_str];
+};
+
+var recursive = function (_str, _class, _alias) {
+
+ var _id = _str.replace(" ", "");
+ var rx = /(.*?)\((.*)\)/im;
+ var res = _id.match(rx);
+
+ if(res == null) return helper.linkto(_id, (_alias ? _alias : _id), _class);
+ //if (res == null) return _id;
+
+ var first = res[1];
+ var second = res[2];
+ var result = helper.linkto(first, _alias, _class);
+ //var result = first;
+
+ if (second === "") return result;
+
+ var args = split_args(second);
+
+ result += "(";
+
+ if (args[0]) result += recursive(args[0], _class);
+
+ if (args[1]){
+ result += ", ";
+ result += recursive(args[1], _class);
+ }
+
+ result += ")";
+
+ return result;
+};
var linkto = function (_id, _alias, _class) {
+ //console.log(_id, _alias)
// ns.longname, ns.name, "menu-title"
- var rx = /(.*?)\((.*)\)/im;
+ // remove all whitespaces
+
+ var res = recursive(_id, _class, _alias);
+ //console.log("result")
+ //console.log(res)
// /_id.match(rx);
- return helper.linkto(_id, _alias, _class);
+ return res;
};
module.exports = {
diff --git a/templates/initi/tmpl/method_compact.tmpl b/templates/initi/tmpl/method_compact.tmpl
index e48ad84..613cab0 100644
--- a/templates/initi/tmpl/method_compact.tmpl
+++ b/templates/initi/tmpl/method_compact.tmpl
@@ -23,7 +23,7 @@ var self = this;
[
-
+
]
,
@@ -43,7 +43,7 @@ var self = this;
→
{
-
+
}