diff options
| author | Vallahor <vallahor91@gmail.com> | 2022-05-24 22:14:05 -0300 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-07-19 19:10:11 -0700 |
| commit | 2a3fb341aa4e4603774289627c8eb397fdc854d1 (patch) | |
| tree | 0278bf1323b246b0711a0cf4ad5cd97b18120609 /lib/docs | |
| parent | d707cd6e6df0aca14a9faaf2b411b3c4a3f08d10 (diff) | |
| download | zig-2a3fb341aa4e4603774289627c8eb397fdc854d1.tar.gz zig-2a3fb341aa4e4603774289627c8eb397fdc854d1.zip | |
fix: handling more types of sentinels. now can be structs too
Diffstat (limited to 'lib/docs')
| -rw-r--r-- | lib/docs/main.js | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/docs/main.js b/lib/docs/main.js index f33bdfad54..346681b200 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -1062,6 +1062,30 @@ var zigAnalysis; function exprName(expr, opts) { switch (Object.keys(expr)[0]) { default: throw "oh no"; + case "struct": { + const struct_name = zigAnalysis.decls[expr.struct[0].val.typeRef.refPath[0].declRef].name; + let struct_body = ""; + struct_body += struct_name + "{ "; + for (let i = 0; i < expr.struct.length; i++) { + const val = expr.struct[i].name + const exprArg = zigAnalysis.exprs[expr.struct[i].val.expr.as.exprArg]; + let value_field = exprArg[Object.keys(exprArg)[0]]; + if (value_field instanceof Object) { + value_field = zigAnalysis.decls[value_field[0].val.typeRef.refPath[0].declRef].name; + }; + struct_body += "." + val + " = " + value_field; + if (i !== expr.struct.length - 1) { + struct_body += ", "; + } else { + struct_body += " "; + } + } + struct_body += "}"; + return struct_body; + } + case "null": { + return "null"; + } case "array": { let payloadHtml = ".{"; for (let i = 0; i < expr.array.length; i++) { @@ -1141,7 +1165,7 @@ var zigAnalysis; let arrayObj = /** @type {ArrayType} */ (typeObj); let name = "["; let lenName = exprName(arrayObj.len, opts); - let sentinel = arrayObj.sentinel ? ":0" : ""; + let sentinel = arrayObj.sentinel ? ":"+exprName(arrayObj.sentinel, opts) : ""; let is_mutable = arrayObj.is_multable ? "const " : ""; if (opts.wantHtml) { @@ -1160,7 +1184,7 @@ var zigAnalysis; case typeKinds.Pointer: { let ptrObj = /** @type {PointerType} */(typeObj); - let sentinel = ptrObj.sentinel ? ":0" : ""; + let sentinel = ptrObj.sentinel ? ":"+exprName(ptrObj.sentinel, opts) : ""; let is_mutable = !ptrObj.is_mutable ? "const " : ""; let name = ""; switch (ptrObj.size) { |
