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 + + + 1537352701274 + + + 1537357990497 + + + 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; { - + }