Extracted from #20958.
[nix-shell:~/dev/zig/build-release]$ stage3/bin/zig build test-std -Dtest-filter="tokenizer" -Dskip-release -Dskip-non-native -Dskip-libc -Dskip-single-threaded --fuzz --debug-rt --port 41099

Text from screenshot reproduced below:
fn testTokenize(source: [:0]const u8, expected_token_tags: []const Token.Tag) !void {
var tokenizer = Tokenizer.init(source);
for (expected_token_tags) |expected_token_tag| {
const token = tokenizer.next();
try std.testing.expectEqual(expected_token_tag, token.tag);
}
// Last token should always be eof, even when the last token was invalid,
// in which case the tokenizer is in an invalid state, which can only be
// recovered by opinionated means outside the scope of this implementation.
const last_token = tokenizer.next();
try std.testing.expectEqual(Token.Tag.eof, last_token.tag);
try std.testing.expectEqual(source.len, last_token.loc.start);
try std.testing.expectEqual(source.len, last_token.loc.end);
}
For example in the above snippet, the expectEqual link points to http://127.0.0.1:41099/#.home.andy.dev.zig.lib.std.std.testing.expectEqual.
Instead, it should point to one of these:
#std.testing.expectEqual
#f123d456 where 123 and 456 are the file and decl indexes respectively.
#/home/andy/dev/zig/lib/std/zig/tokenizer.zig:123:456 where 123 and 456 are line and column respectively.
And then the onHashChange logic needs to respond by loading the appropriate file and scrolling the location into view.
Extracted from #20958.
Text from screenshot reproduced below:
For example in the above snippet, the
expectEquallink points tohttp://127.0.0.1:41099/#.home.andy.dev.zig.lib.std.std.testing.expectEqual.Instead, it should point to one of these:
#std.testing.expectEqual#f123d456where 123 and 456 are the file and decl indexes respectively.#/home/andy/dev/zig/lib/std/zig/tokenizer.zig:123:456where 123 and 456 are line and column respectively.And then the
onHashChangelogic needs to respond by loading the appropriate file and scrolling the location into view.