diff --git a/doc/docgen.zig b/doc/docgen.zig index 430d6eb1e2..6fb9b93e1d 100644 --- a/doc/docgen.zig +++ b/doc/docgen.zig @@ -215,32 +215,33 @@ const Tokenizer = struct { } }; -fn parseError(tokenizer: *Tokenizer, token: Token, comptime fmt: []const u8, args: ...) anyerror { +fn parseError(tokenizer: *Tokenizer, token: Token, comptime fmt: []const u8, args: var) anyerror { const loc = tokenizer.getTokenLocation(token); - warn("{}:{}:{}: error: " ++ fmt ++ "\n", tokenizer.source_file_name, loc.line + 1, loc.column + 1, args); + const args_prefix = .{ tokenizer.source_file_name, loc.line + 1, loc.column + 1 }; + warn("{}:{}:{}: error: " ++ fmt ++ "\n", args_prefix ++ args); if (loc.line_start <= loc.line_end) { - warn("{}\n", tokenizer.buffer[loc.line_start..loc.line_end]); + warn("{}\n", .{tokenizer.buffer[loc.line_start..loc.line_end]}); { var i: usize = 0; while (i < loc.column) : (i += 1) { - warn(" "); + warn(" ", .{}); } } { const caret_count = token.end - token.start; var i: usize = 0; while (i < caret_count) : (i += 1) { - warn("~"); + warn("~", .{}); } } - warn("\n"); + warn("\n", .{}); } return error.ParseError; } fn assertToken(tokenizer: *Tokenizer, token: Token, id: Token.Id) !void { if (token.id != id) { - return parseError(tokenizer, token, "expected {}, found {}", @tagName(id), @tagName(token.id)); + return parseError(tokenizer, token, "expected {}, found {}", .{ @tagName(id), @tagName(token.id) }); } } @@ -339,7 +340,7 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc { switch (token.id) { Token.Id.Eof => { if (header_stack_size != 0) { - return parseError(tokenizer, token, "unbalanced headers"); + return parseError(tokenizer, token, "unbalanced headers", .{}); } try toc.write(" \n"); break; @@ -373,10 +374,15 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc { if (mem.eql(u8, param, "3col")) { columns = 3; } else { - return parseError(tokenizer, bracket_tok, "unrecognized header_open param: {}", param); + return parseError( + tokenizer, + bracket_tok, + "unrecognized header_open param: {}", + .{param}, + ); } }, - else => return parseError(tokenizer, bracket_tok, "invalid header_open token"), + else => return parseError(tokenizer, bracket_tok, "invalid header_open token", .{}), } } @@ -391,15 +397,15 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc { }, }); if (try urls.put(urlized, tag_token)) |entry| { - parseError(tokenizer, tag_token, "duplicate header url: #{}", urlized) catch {}; - parseError(tokenizer, entry.value, "other tag here") catch {}; + parseError(tokenizer, tag_token, "duplicate header url: #{}", .{urlized}) catch {}; + parseError(tokenizer, entry.value, "other tag here", .{}) catch {}; return error.ParseError; } if (last_action == Action.Open) { try toc.writeByte('\n'); try toc.writeByteNTimes(' ', header_stack_size * 4); if (last_columns) |n| { - try toc.print("
{}.zig
", code.name); + try out.print("{}.zig
", .{code.name}); } try out.write("");
try tokenizeAndPrint(tokenizer, out, code.source_token);
try out.write("");
- const name_plus_ext = try std.fmt.allocPrint(allocator, "{}.zig", code.name);
+ const name_plus_ext = try std.fmt.allocPrint(allocator, "{}.zig", .{code.name});
const tmp_source_file_name = try fs.path.join(
allocator,
&[_][]const u8{ tmp_dir_name, name_plus_ext },
@@ -1045,7 +1057,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
switch (code.id) {
Code.Id.Exe => |expected_outcome| code_block: {
- const name_plus_bin_ext = try std.fmt.allocPrint(allocator, "{}{}", code.name, exe_ext);
+ const name_plus_bin_ext = try std.fmt.allocPrint(allocator, "{}{}", .{ code.name, exe_ext });
var build_args = std.ArrayList([]const u8).init(allocator);
defer build_args.deinit();
try build_args.appendSlice(&[_][]const u8{
@@ -1059,40 +1071,40 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
"--cache",
"on",
});
- try out.print("$ zig build-exe {}.zig", code.name);
+ try out.print("$ zig build-exe {}.zig", .{code.name});
switch (code.mode) {
builtin.Mode.Debug => {},
builtin.Mode.ReleaseSafe => {
try build_args.append("--release-safe");
- try out.print(" --release-safe");
+ try out.print(" --release-safe", .{});
},
builtin.Mode.ReleaseFast => {
try build_args.append("--release-fast");
- try out.print(" --release-fast");
+ try out.print(" --release-fast", .{});
},
builtin.Mode.ReleaseSmall => {
try build_args.append("--release-small");
- try out.print(" --release-small");
+ try out.print(" --release-small", .{});
},
}
for (code.link_objects) |link_object| {
- const name_with_ext = try std.fmt.allocPrint(allocator, "{}{}", link_object, obj_ext);
+ const name_with_ext = try std.fmt.allocPrint(allocator, "{}{}", .{ link_object, obj_ext });
const full_path_object = try fs.path.join(
allocator,
&[_][]const u8{ tmp_dir_name, name_with_ext },
);
try build_args.append("--object");
try build_args.append(full_path_object);
- try out.print(" --object {}", name_with_ext);
+ try out.print(" --object {}", .{name_with_ext});
}
if (code.link_libc) {
try build_args.append("-lc");
- try out.print(" -lc");
+ try out.print(" -lc", .{});
}
if (code.target_str) |triple| {
try build_args.appendSlice(&[_][]const u8{ "-target", triple });
if (!code.is_inline) {
- try out.print(" -target {}", triple);
+ try out.print(" -target {}", .{triple});
}
}
if (expected_outcome == .BuildFail) {
@@ -1106,29 +1118,29 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
switch (result.term) {
.Exited => |exit_code| {
if (exit_code == 0) {
- warn("{}\nThe following command incorrectly succeeded:\n", result.stderr);
+ warn("{}\nThe following command incorrectly succeeded:\n", .{result.stderr});
for (build_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example incorrectly compiled");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example incorrectly compiled", .{});
}
},
else => {
- warn("{}\nThe following command crashed:\n", result.stderr);
+ warn("{}\nThe following command crashed:\n", .{result.stderr});
for (build_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example compile crashed");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example compile crashed", .{});
},
}
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const colored_stderr = try termColor(allocator, escaped_stderr);
- try out.print("\n{}
\n", colored_stderr);
+ try out.print("\n{}\n", .{colored_stderr});
break :code_block;
}
- const exec_result = exec(allocator, &env_map, build_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "example failed to compile");
+ const exec_result = exec(allocator, &env_map, build_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "example failed to compile", .{});
if (code.target_str) |triple| {
if (mem.startsWith(u8, triple, "wasm32") or
@@ -1137,7 +1149,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
(builtin.os != .linux or builtin.arch != .x86_64))
{
// skip execution
- try out.print("\n");
+ try out.print("\n", .{});
break :code_block;
}
}
@@ -1152,12 +1164,12 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
switch (result.term) {
.Exited => |exit_code| {
if (exit_code == 0) {
- warn("{}\nThe following command incorrectly succeeded:\n", result.stderr);
+ warn("{}\nThe following command incorrectly succeeded:\n", .{result.stderr});
for (run_args) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example incorrectly compiled");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example incorrectly compiled", .{});
}
},
.Signal => exited_with_signal = true,
@@ -1165,7 +1177,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
}
break :blk result;
} else blk: {
- break :blk exec(allocator, &env_map, run_args) catch return parseError(tokenizer, code.source_token, "example crashed");
+ break :blk exec(allocator, &env_map, run_args) catch return parseError(tokenizer, code.source_token, "example crashed", .{});
};
const escaped_stderr = try escapeHtml(allocator, result.stderr);
@@ -1174,11 +1186,11 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
const colored_stderr = try termColor(allocator, escaped_stderr);
const colored_stdout = try termColor(allocator, escaped_stdout);
- try out.print("\n$ ./{}\n{}{}", code.name, colored_stdout, colored_stderr);
+ try out.print("\n$ ./{}\n{}{}", .{ code.name, colored_stdout, colored_stderr });
if (exited_with_signal) {
- try out.print("(process terminated by signal)");
+ try out.print("(process terminated by signal)", .{});
}
- try out.print("\n");
+ try out.print("\n", .{});
},
Code.Id.Test => {
var test_args = std.ArrayList([]const u8).init(allocator);
@@ -1191,34 +1203,34 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
"--cache",
"on",
});
- try out.print("$ zig test {}.zig", code.name);
+ try out.print("$ zig test {}.zig", .{code.name});
switch (code.mode) {
builtin.Mode.Debug => {},
builtin.Mode.ReleaseSafe => {
try test_args.append("--release-safe");
- try out.print(" --release-safe");
+ try out.print(" --release-safe", .{});
},
builtin.Mode.ReleaseFast => {
try test_args.append("--release-fast");
- try out.print(" --release-fast");
+ try out.print(" --release-fast", .{});
},
builtin.Mode.ReleaseSmall => {
try test_args.append("--release-small");
- try out.print(" --release-small");
+ try out.print(" --release-small", .{});
},
}
if (code.link_libc) {
try test_args.append("-lc");
- try out.print(" -lc");
+ try out.print(" -lc", .{});
}
if (code.target_str) |triple| {
try test_args.appendSlice(&[_][]const u8{ "-target", triple });
- try out.print(" -target {}", triple);
+ try out.print(" -target {}", .{triple});
}
- const result = exec(allocator, &env_map, test_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "test failed");
+ const result = exec(allocator, &env_map, test_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "test failed", .{});
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const escaped_stdout = try escapeHtml(allocator, result.stdout);
- try out.print("\n{}{}
\n", escaped_stderr, escaped_stdout);
+ try out.print("\n{}{}\n", .{ escaped_stderr, escaped_stdout });
},
Code.Id.TestError => |error_match| {
var test_args = std.ArrayList([]const u8).init(allocator);
@@ -1233,50 +1245,50 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
"--output-dir",
tmp_dir_name,
});
- try out.print("$ zig test {}.zig", code.name);
+ try out.print("$ zig test {}.zig", .{code.name});
switch (code.mode) {
builtin.Mode.Debug => {},
builtin.Mode.ReleaseSafe => {
try test_args.append("--release-safe");
- try out.print(" --release-safe");
+ try out.print(" --release-safe", .{});
},
builtin.Mode.ReleaseFast => {
try test_args.append("--release-fast");
- try out.print(" --release-fast");
+ try out.print(" --release-fast", .{});
},
builtin.Mode.ReleaseSmall => {
try test_args.append("--release-small");
- try out.print(" --release-small");
+ try out.print(" --release-small", .{});
},
}
const result = try ChildProcess.exec(allocator, test_args.toSliceConst(), null, &env_map, max_doc_file_size);
switch (result.term) {
.Exited => |exit_code| {
if (exit_code == 0) {
- warn("{}\nThe following command incorrectly succeeded:\n", result.stderr);
+ warn("{}\nThe following command incorrectly succeeded:\n", .{result.stderr});
for (test_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example incorrectly compiled");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example incorrectly compiled", .{});
}
},
else => {
- warn("{}\nThe following command crashed:\n", result.stderr);
+ warn("{}\nThe following command crashed:\n", .{result.stderr});
for (test_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example compile crashed");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example compile crashed", .{});
},
}
if (mem.indexOf(u8, result.stderr, error_match) == null) {
- warn("{}\nExpected to find '{}' in stderr", result.stderr, error_match);
- return parseError(tokenizer, code.source_token, "example did not have expected compile error");
+ warn("{}\nExpected to find '{}' in stderr", .{ result.stderr, error_match });
+ return parseError(tokenizer, code.source_token, "example did not have expected compile error", .{});
}
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const colored_stderr = try termColor(allocator, escaped_stderr);
- try out.print("\n{}
\n", colored_stderr);
+ try out.print("\n{}\n", .{colored_stderr});
},
Code.Id.TestSafety => |error_match| {
@@ -1311,38 +1323,37 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
switch (result.term) {
.Exited => |exit_code| {
if (exit_code == 0) {
- warn("{}\nThe following command incorrectly succeeded:\n", result.stderr);
+ warn("{}\nThe following command incorrectly succeeded:\n", .{result.stderr});
for (test_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example test incorrectly succeeded");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example test incorrectly succeeded", .{});
}
},
else => {
- warn("{}\nThe following command crashed:\n", result.stderr);
+ warn("{}\nThe following command crashed:\n", .{result.stderr});
for (test_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example compile crashed");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example compile crashed", .{});
},
}
if (mem.indexOf(u8, result.stderr, error_match) == null) {
- warn("{}\nExpected to find '{}' in stderr", result.stderr, error_match);
- return parseError(tokenizer, code.source_token, "example did not have expected runtime safety error message");
+ warn("{}\nExpected to find '{}' in stderr", .{ result.stderr, error_match });
+ return parseError(tokenizer, code.source_token, "example did not have expected runtime safety error message", .{});
}
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const colored_stderr = try termColor(allocator, escaped_stderr);
- try out.print(
- "$ zig test {}.zig{}\n{}\n",
+ try out.print("$ zig test {}.zig{}\n{}\n", .{
code.name,
mode_arg,
colored_stderr,
- );
+ });
},
Code.Id.Obj => |maybe_error_match| {
- const name_plus_obj_ext = try std.fmt.allocPrint(allocator, "{}{}", code.name, obj_ext);
+ const name_plus_obj_ext = try std.fmt.allocPrint(allocator, "{}{}", .{ code.name, obj_ext });
const tmp_obj_file_name = try fs.path.join(
allocator,
&[_][]const u8{ tmp_dir_name, name_plus_obj_ext },
@@ -1350,7 +1361,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
var build_args = std.ArrayList([]const u8).init(allocator);
defer build_args.deinit();
- const name_plus_h_ext = try std.fmt.allocPrint(allocator, "{}.h", code.name);
+ const name_plus_h_ext = try std.fmt.allocPrint(allocator, "{}.h", .{code.name});
const output_h_file_name = try fs.path.join(
allocator,
&[_][]const u8{ tmp_dir_name, name_plus_h_ext },
@@ -1369,7 +1380,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
});
if (!code.is_inline) {
- try out.print("$ zig build-obj {}.zig", code.name);
+ try out.print("$ zig build-obj {}.zig", .{code.name});
}
switch (code.mode) {
@@ -1377,26 +1388,26 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
builtin.Mode.ReleaseSafe => {
try build_args.append("--release-safe");
if (!code.is_inline) {
- try out.print(" --release-safe");
+ try out.print(" --release-safe", .{});
}
},
builtin.Mode.ReleaseFast => {
try build_args.append("--release-fast");
if (!code.is_inline) {
- try out.print(" --release-fast");
+ try out.print(" --release-fast", .{});
}
},
builtin.Mode.ReleaseSmall => {
try build_args.append("--release-small");
if (!code.is_inline) {
- try out.print(" --release-small");
+ try out.print(" --release-small", .{});
}
},
}
if (code.target_str) |triple| {
try build_args.appendSlice(&[_][]const u8{ "-target", triple });
- try out.print(" -target {}", triple);
+ try out.print(" -target {}", .{triple});
}
if (maybe_error_match) |error_match| {
@@ -1404,35 +1415,35 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
switch (result.term) {
.Exited => |exit_code| {
if (exit_code == 0) {
- warn("{}\nThe following command incorrectly succeeded:\n", result.stderr);
+ warn("{}\nThe following command incorrectly succeeded:\n", .{result.stderr});
for (build_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example build incorrectly succeeded");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example build incorrectly succeeded", .{});
}
},
else => {
- warn("{}\nThe following command crashed:\n", result.stderr);
+ warn("{}\nThe following command crashed:\n", .{result.stderr});
for (build_args.toSliceConst()) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
- return parseError(tokenizer, code.source_token, "example compile crashed");
+ warn("\n", .{});
+ return parseError(tokenizer, code.source_token, "example compile crashed", .{});
},
}
if (mem.indexOf(u8, result.stderr, error_match) == null) {
- warn("{}\nExpected to find '{}' in stderr", result.stderr, error_match);
- return parseError(tokenizer, code.source_token, "example did not have expected compile error message");
+ warn("{}\nExpected to find '{}' in stderr", .{ result.stderr, error_match });
+ return parseError(tokenizer, code.source_token, "example did not have expected compile error message", .{});
}
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const colored_stderr = try termColor(allocator, escaped_stderr);
- try out.print("\n{}", colored_stderr);
+ try out.print("\n{}", .{colored_stderr});
} else {
- _ = exec(allocator, &env_map, build_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "example failed to compile");
+ _ = exec(allocator, &env_map, build_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "example failed to compile", .{});
}
if (!code.is_inline) {
- try out.print("
\n");
+ try out.print("\n", .{});
}
},
Code.Id.Lib => {
@@ -1446,33 +1457,33 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
"--output-dir",
tmp_dir_name,
});
- try out.print("$ zig build-lib {}.zig", code.name);
+ try out.print("$ zig build-lib {}.zig", .{code.name});
switch (code.mode) {
builtin.Mode.Debug => {},
builtin.Mode.ReleaseSafe => {
try test_args.append("--release-safe");
- try out.print(" --release-safe");
+ try out.print(" --release-safe", .{});
},
builtin.Mode.ReleaseFast => {
try test_args.append("--release-fast");
- try out.print(" --release-fast");
+ try out.print(" --release-fast", .{});
},
builtin.Mode.ReleaseSmall => {
try test_args.append("--release-small");
- try out.print(" --release-small");
+ try out.print(" --release-small", .{});
},
}
if (code.target_str) |triple| {
try test_args.appendSlice(&[_][]const u8{ "-target", triple });
- try out.print(" -target {}", triple);
+ try out.print(" -target {}", .{triple});
}
- const result = exec(allocator, &env_map, test_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "test failed");
+ const result = exec(allocator, &env_map, test_args.toSliceConst()) catch return parseError(tokenizer, code.source_token, "test failed", .{});
const escaped_stderr = try escapeHtml(allocator, result.stderr);
const escaped_stdout = try escapeHtml(allocator, result.stdout);
- try out.print("\n{}{}
\n", escaped_stderr, escaped_stdout);
+ try out.print("\n{}{}\n", .{ escaped_stderr, escaped_stdout });
},
}
- warn("OK\n");
+ warn("OK\n", .{});
},
}
}
@@ -1483,20 +1494,20 @@ fn exec(allocator: *mem.Allocator, env_map: *std.BufMap, args: []const []const u
switch (result.term) {
.Exited => |exit_code| {
if (exit_code != 0) {
- warn("{}\nThe following command exited with code {}:\n", result.stderr, exit_code);
+ warn("{}\nThe following command exited with code {}:\n", .{ result.stderr, exit_code });
for (args) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
+ warn("\n", .{});
return error.ChildExitError;
}
},
else => {
- warn("{}\nThe following command crashed:\n", result.stderr);
+ warn("{}\nThe following command crashed:\n", .{result.stderr});
for (args) |arg|
- warn("{} ", arg)
+ warn("{} ", .{arg})
else
- warn("\n");
+ warn("\n", .{});
return error.ChildCrashed;
},
}