4421da35f46994748c3131141b3561389dcba5d5
Four changes that compound to a 2-5x speedup on VHI rebuild for large files, plus eliminating one full wasted VHI pass on initial open. * spawn_indexer no longer computes VHI inline (progressive_reader.rs). The inline VHI used a hardcoded width=80, was invalidated immediately on Loading->Ready transition (gutter digit-boundary), and triggered a second full rebuild. Now returns visual_height_index: None and lets the UI trigger one rebuild with the correct post-layout width. * spawn_visual_height_rebuild rewritten as a single linear pass over mmap bytes using memchr::memchr (SIMD) to find newlines, replacing the byte-by-byte BufRead::read_until scan. Cancel check throttled to every 1MB instead of per-line. * wrap_line_count(&str, width) -> usize added as a zero-allocation counterpart to wrap_line_chars. Property tests cover ASCII, CJK, emoji, combining marks, tabs, zero-width chars, control chars, and real log lines across many widths - all match wrap_line_chars().len() exactly. compute_text_visual_height now uses wrap_line_count, removing 10M Vec allocations on a 10M-line file. * format_json_line returns Cow<'_, str> instead of String. Non-JSON lines borrow the input (zero allocation); only pretty-printed JSON objects allocate. Removes another 10M allocations when json_format=true. Removes now-unused compute_visual_heights (only caller was the deleted inline VHI path).
Description
No description provided
1 MiB
Languages
Rust
100%