refine Lua doc/doxygen-parser and handle special-cases
authorRobin Gareus <robin@gareus.org>
Wed, 5 Oct 2016 02:21:09 +0000 (04:21 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 5 Oct 2016 02:21:09 +0000 (04:21 +0200)
tools/doxy2json/ardourdoc.sh
tools/fmt-luadoc.php

index 0ec2ce66052d4b1c538614081643c2f300dbe97a..6b2faadb5b5ca6897381df5a14318afdd0499cff 100755 (executable)
@@ -59,6 +59,7 @@ foreach (json_decode (\$json, true) as \$a) {
        \$a['decl'] = str_replace ('const long', 'long', \$a['decl']);
        \$a['decl'] = str_replace ('const unsigned int', 'unsigned int', \$a['decl']);
        \$a['decl'] = str_replace ('const unsigned long', 'unsigned long', \$a['decl']);
+       \$a['decl'] = str_replace (' ::Vamp::', ' Vamp::', \$a['decl']);
        \$canon = str_replace (' *', '*', \$a['decl']);
        \$api[\$canon] = \$a;
 }
index 938a774ed41179ec719b38b9fd08446f7fa2fcb1..3f7ef99b7298a5ca93568d6c71bdfbd21d3b4d1c 100755 (executable)
@@ -102,6 +102,10 @@ function arg2lua ($argtype, $flags = 0) {
                return array ($arg => $flags);
        }
 
+       if ($arg == 'luabridge::LuaRef') {
+               return array ('Lua-Function' => $flags | 4);
+       }
+
        # check Class declarations first
        foreach (array_merge ($classes, $consts) as $b) {
                if ($b['ldec'] == $arg) {
@@ -200,6 +204,8 @@ function canonical_decl ($b) {
                        $a = preg_replace ('/([^>]) >/', '$1>', $a);
                        $a = preg_replace ('/^Cairo::/', '', $a); // special case cairo enums
                        $a = preg_replace ('/([^ ])&/', '$1 &', $a);
+                       $a = preg_replace ('/std::vector<([^>]*)> const/', 'const std::vector<$1>', $a);
+                       $a = str_replace ('std::vector', 'vector', $a);
                        $a = str_replace ('vector', 'std::vector', $a);
                        $a = str_replace ('std::string', 'string', $a);
                        $a = str_replace ('string const', 'const string', $a);
@@ -577,7 +583,10 @@ function format_args ($args) {
        foreach ($args as $a) {
                if (!$first) { $rv .= ', '; }; $first = false;
                $flags = $a[varname ($a)];
-               if ($flags & 2) {
+               if ($flags & 4) {
+                       $rv .= '<span>'.varname ($a).'</span>';
+               }
+               else if ($flags & 2) {
                        $rv .= '<em>LuaTable</em> {'.typelink (varname ($a), true, 'em').'}';
                }
                elseif ($flags & 1) {