fix: add scoped error logging for lexer/parser errors

- Add std.log.scoped(.pugz) to template.zig and view_engine.zig
- Log detailed error info (code, line, column, message) when parsing fails
- Log template path context in ViewEngine on parse errors
- Remove debug print from lexer, use proper scoped logging instead
- Move benchmarks, docs, examples, playground, tests out of src/ to project root
- Update build.zig and documentation paths accordingly
- Bump version to 0.3.1
This commit is contained in:
2026-01-25 17:10:02 +05:30
parent 9d3b729c6c
commit aaf6a1af2d
1148 changed files with 57 additions and 330 deletions

View File

@@ -0,0 +1,23 @@
// This test is imported by root.zig for testing
const std = @import("std");
const testing = std.testing;
const mixin = @import("../mixin.zig");
test "bindArguments - with default value in param" {
const allocator = testing.allocator;
var bindings = std.StringHashMapUnmanaged([]const u8){};
defer bindings.deinit(allocator);
// This is how it appears: params have default, args are the call args
try mixin.bindArguments(allocator, "text, type=\"primary\"", "\"Click Me\", \"primary\"", &bindings);
std.debug.print("\nBindings:\n", .{});
var iter = bindings.iterator();
while (iter.next()) |entry| {
std.debug.print(" {s} = '{s}'\n", .{entry.key_ptr.*, entry.value_ptr.*});
}
try testing.expectEqualStrings("Click Me", bindings.get("text").?);
try testing.expectEqualStrings("primary", bindings.get("type").?);
}