feature. See also
. The project being documented here (as the example) is the Zig library itself.
main.decl_param_html_fallible
fn decl_param_html_fallible(
out: *ArrayList(u8),
decl_index: Decl.Index,
param_node: Ast.Node.Index,
) !void
File
Code
fn decl_param_html_fallible(
out: *ArrayList(u8),
decl_index: Decl.Index,
param_node: Ast.Node.Index,
) !void {
const decl = decl_index.get();
const ast = decl.file.get_ast();
const colon = ast.firstToken(param_node) - 1;
const name_token = colon - 1;
const first_doc_comment = f: {
var it = ast.firstToken(param_node);
while (it > 0) {
it -= 1;
switch (ast.tokenTag(it)) {
.doc_comment, .colon, .identifier, .keyword_comptime, .keyword_noalias => {},
else => break,
}
}
break :f it + 1;
};
const name = ast.tokenSlice(name_token);
try out.appendSlice(gpa, "<pre><code>");
try appendEscaped(out, name);
try out.appendSlice(gpa, ": ");
try fileSourceHtml(decl.file, out, param_node, .{});
try out.appendSlice(gpa, "</code></pre>");
if (ast.tokenTag(first_doc_comment) == .doc_comment) {
try out.appendSlice(gpa, "<div class=\"fieldDocs\">");
try render_docs(out, decl_index, first_doc_comment, false);
try out.appendSlice(gpa, "</div>");
}
}