| ... | @@ -29,6 +29,7 @@ var zigAnalysis; | ... | @@ -29,6 +29,7 @@ var zigAnalysis; |
| 29 | const domListValues = document.getElementById("listValues"); | 29 | const domListValues = document.getElementById("listValues"); |
| 30 | const domFnProto = document.getElementById("fnProto"); | 30 | const domFnProto = document.getElementById("fnProto"); |
| 31 | const domFnProtoCode = document.getElementById("fnProtoCode"); | 31 | const domFnProtoCode = document.getElementById("fnProtoCode"); |
| | 32 | const domFnSourceLink = document.getElementById("fnSourceLink"); |
| 32 | const domSectParams = document.getElementById("sectParams"); | 33 | const domSectParams = document.getElementById("sectParams"); |
| 33 | const domListParams = document.getElementById("listParams"); | 34 | const domListParams = document.getElementById("listParams"); |
| 34 | const domTldDocs = document.getElementById("tldDocs"); | 35 | const domTldDocs = document.getElementById("tldDocs"); |
| ... | @@ -548,6 +549,8 @@ var zigAnalysis; | ... | @@ -548,6 +549,8 @@ var zigAnalysis; |
| 548 | wantLink: true, | 549 | wantLink: true, |
| 549 | fnDecl, | 550 | fnDecl, |
| 550 | }); | 551 | }); |
| | 552 | |
| | 553 | domFnSourceLink.innerHTML = "[<a target=\"_blank\" href=\"" + sourceFileLink(fnDecl) + "\">src</a>]"; |
| 551 | | 554 | |
| 552 | let docsSource = null; | 555 | let docsSource = null; |
| 553 | let srcNode = getAstNode(fnDecl.src); | 556 | let srcNode = getAstNode(fnDecl.src); |
| ... | @@ -1839,7 +1842,14 @@ var zigAnalysis; | ... | @@ -1839,7 +1842,14 @@ var zigAnalysis; |
| 1839 | } | 1842 | } |
| 1840 | case typeKinds.Fn: { | 1843 | case typeKinds.Fn: { |
| 1841 | let fnObj = typeObj; | 1844 | let fnObj = typeObj; |
| | 1845 | let fnDecl = opts.fnDecl; |
| | 1846 | let linkFnNameDecl = opts.linkFnNameDecl; |
| | 1847 | opts.fnDecl = null; |
| | 1848 | opts.linkFnNameDecl = null; |
| 1842 | let payloadHtml = ""; | 1849 | let payloadHtml = ""; |
| | 1850 | if (opts.addParensIfFnSignature && fnObj.src == 0){ |
| | 1851 | payloadHtml += "("; |
| | 1852 | } |
| 1843 | if (opts.wantHtml) { | 1853 | if (opts.wantHtml) { |
| 1844 | if (fnObj.is_extern) { | 1854 | if (fnObj.is_extern) { |
| 1845 | payloadHtml += "pub extern "; | 1855 | payloadHtml += "pub extern "; |
| ... | @@ -1847,21 +1857,16 @@ var zigAnalysis; | ... | @@ -1847,21 +1857,16 @@ var zigAnalysis; |
| 1847 | if (fnObj.has_lib_name) { | 1857 | if (fnObj.has_lib_name) { |
| 1848 | payloadHtml += '"' + fnObj.lib_name + '" '; | 1858 | payloadHtml += '"' + fnObj.lib_name + '" '; |
| 1849 | } | 1859 | } |
| 1850 | payloadHtml += '<span class="tok-kw">fn</span>'; | 1860 | payloadHtml += '<span class="tok-kw">fn </span>'; |
| 1851 | if (opts.fnDecl) { | 1861 | if (fnDecl) { |
| 1852 | payloadHtml += ' <span class="tok-fn">'; | 1862 | payloadHtml += '<span class="tok-fn">'; |
| 1853 | if (opts.linkFnNameDecl) { | 1863 | if (linkFnNameDecl) { |
| 1854 | payloadHtml += | 1864 | payloadHtml += |
| 1855 | '<a href="' + | 1865 | '<a href="' + linkFnNameDecl + '">' + |
| 1856 | opts.linkFnNameDecl + | 1866 | escapeHtml(fnDecl.name) + |
| 1857 | '">' + | | |
| 1858 | escapeHtml(opts.fnDecl.name) + | | |
| 1859 | "</a>"; | 1867 | "</a>"; |
| 1860 | } else { | 1868 | } else { |
| 1861 | payloadHtml += escapeHtml(opts.fnDecl.name); | 1869 | payloadHtml += escapeHtml(fnDecl.name); |
| 1862 | payloadHtml = "<a target=\"_blank\" href=\"" + | | |
| 1863 | sourceFileLink(opts.fnDecl) + "\">" + | | |
| 1864 | escapeHtml(opts.fnDecl.name) + "</a>"; | | |
| 1865 | } | 1870 | } |
| 1866 | payloadHtml += "</span>"; | 1871 | payloadHtml += "</span>"; |
| 1867 | } | 1872 | } |
| ... | @@ -1872,10 +1877,12 @@ var zigAnalysis; | ... | @@ -1872,10 +1877,12 @@ var zigAnalysis; |
| 1872 | if (fnObj.params) { | 1877 | if (fnObj.params) { |
| 1873 | let fields = null; | 1878 | let fields = null; |
| 1874 | let isVarArgs = false; | 1879 | let isVarArgs = false; |
| 1875 | let fnNode = getAstNode(fnObj.src); | 1880 | if (fnObj.src != 0) { |
| 1876 | fields = fnNode.fields; | 1881 | let fnNode = getAstNode(fnObj.src); |
| 1877 | isVarArgs = fnNode.varArgs; | 1882 | fields = fnNode.fields; |
| 1878 | | 1883 | isVarArgs = fnNode.varArgs; |
| | 1884 | } |
| | 1885 | |
| 1879 | for (let i = 0; i < fnObj.params.length; i += 1) { | 1886 | for (let i = 0; i < fnObj.params.length; i += 1) { |
| 1880 | if (i != 0) { | 1887 | if (i != 0) { |
| 1881 | payloadHtml += ", "; | 1888 | payloadHtml += ", "; |
| ... | @@ -1989,10 +1996,9 @@ var zigAnalysis; | ... | @@ -1989,10 +1996,9 @@ var zigAnalysis; |
| 1989 | } | 1996 | } |
| 1990 | } else if ("type" in value) { | 1997 | } else if ("type" in value) { |
| 1991 | let name = exprName(value, { | 1998 | let name = exprName(value, { |
| | 1999 | ...opts, |
| 1992 | wantHtml: false, | 2000 | wantHtml: false, |
| 1993 | wantLink: false, | 2001 | wantLink: false, |
| 1994 | fnDecl: opts.fnDecl, | | |
| 1995 | linkFnNameDecl: opts.linkFnNameDecl, | | |
| 1996 | }); | 2002 | }); |
| 1997 | payloadHtml += '<span class="tok-kw">' + name + "</span>"; | 2003 | payloadHtml += '<span class="tok-kw">' + name + "</span>"; |
| 1998 | } else if ("binOpIndex" in value) { | 2004 | } else if ("binOpIndex" in value) { |
| ... | @@ -2032,12 +2038,19 @@ var zigAnalysis; | ... | @@ -2032,12 +2038,19 @@ var zigAnalysis; |
| 2032 | payloadHtml += "!"; | 2038 | payloadHtml += "!"; |
| 2033 | } | 2039 | } |
| 2034 | if (fnObj.ret != null) { | 2040 | if (fnObj.ret != null) { |
| 2035 | payloadHtml += exprName(fnObj.ret, opts); | 2041 | payloadHtml += exprName(fnObj.ret, { |
| | 2042 | ...opts, |
| | 2043 | addParensIfFnSignature: true, |
| | 2044 | }); |
| 2036 | } else if (opts.wantHtml) { | 2045 | } else if (opts.wantHtml) { |
| 2037 | payloadHtml += '<span class="tok-kw">anytype</span>'; | 2046 | payloadHtml += '<span class="tok-kw">anytype</span>'; |
| 2038 | } else { | 2047 | } else { |
| 2039 | payloadHtml += "anytype"; | 2048 | payloadHtml += "anytype"; |
| 2040 | } | 2049 | } |
| | 2050 | |
| | 2051 | if (opts.addParensIfFnSignature && fnObj.src == 0){ |
| | 2052 | payloadHtml += ")"; |
| | 2053 | } |
| 2041 | return payloadHtml; | 2054 | return payloadHtml; |
| 2042 | } | 2055 | } |
| 2043 | // if (wantHtml) { | 2056 | // if (wantHtml) { |