July 30, 2026, 8:40pm 1
由于 std.builtin.SourceLocation 使用 .line 和 .column 表示位置,读取 Zig 文件中对应 SourceLocation 时需要逐行计数才能定位。
如果同时提供 .offset,则可通过 readPositional 直接定位,或使用内存映射并从 .offset 处切片,避免扫描文件。
我猜这是因为源位置数量庞大(额外字段会占用更多内存),而显示源代码行的需求很少且不在热点路径中。
我理解你的观点,但我认为(没有统计数据支持)处理文本/源文件时,通常会将其全部加载到内存中,因此简单的 text_lines: [][]const u8 结构足以应对,.line 和 .column 也足够满足需求。
如果你在开发编辑器,那就完全是另一回事了……
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.