alpha
Login
or
Join now
bomb.sh
/
tty
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
[READ-ONLY] Mirror of https://github.com/bombshell-dev/tty. Platform independent 2D layout engine for terminal applications based on Clay
Star
5
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
tty
/
virtualizer
/
at
worktree-fix-virtualizer-blocking
1 folder
8 files
Taras Mankovski
🐛 fix anchor eviction in single-line buffer + document columns precondition
3mo ago
bb48b92b
test
🐛 fix anchor eviction in single-line buffer + document columns precondition Fix two blocking issues before merge: 1. When maxLines=1 and isAtBottom=false, evicting the anchor line left the anchor pointing at a gone lineIndex. resolveViewport() returned no entries from a non-empty buffer. Removed the `lineCount > 1` guard so the anchor always clamps to `evictedLineIndex + 1`. Added regression test R.EVICT.maxLines1-not-at-bottom. 2. Resolved the contradiction between O-9 ("every slice fits within columns") and the columns=1 + width-2 CJK glyph behavior. Documented columns ≥ max glyph width as a precondition on VirtualizerOptions, updated O-9 test name, wrap-golden test labels, and the spec.
3 months ago
ansi-scanner.ts
🐛 fix anchor eviction in single-line buffer + document columns precondition Fix two blocking issues before merge: 1. When maxLines=1 and isAtBottom=false, evicting the anchor line left the anchor pointing at a gone lineIndex. resolveViewport() returned no entries from a non-empty buffer. Removed the `lineCount > 1` guard so the anchor always clamps to `evictedLineIndex + 1`. Added regression test R.EVICT.maxLines1-not-at-bottom. 2. Resolved the contradiction between O-9 ("every slice fits within columns") and the columns=1 + width-2 CJK glyph behavior. Documented columns ≥ max glyph width as a precondition on VirtualizerOptions, updated O-9 test name, wrap-golden test labels, and the spec.
3 months ago
deno.json
✨ add @clayterm/virtualizer v1 (PRs 1–3) Implement the virtualizer package for viewport virtualization over large terminal text output. This covers PRs 1–3 of the implementation plan: - PR 1: Export createDisplayWidth from renderer (WASM per-codepoint wcwidth, R.WIDTH.* tests) - PR 2: Virtualizer core — appendLine, resolveViewport, ring buffer, ANSI scanner, wrap walker, getLineDisplayWidth (~66 tests) - PR 3: scrollBy + scrollToFraction with all deferred scroll-dependent tests (~92 tests total) resize() still throws "not implemented" — deferred to PR 4.
3 months ago
deno.lock
✨ add @clayterm/virtualizer v1 (PRs 1–3) Implement the virtualizer package for viewport virtualization over large terminal text output. This covers PRs 1–3 of the implementation plan: - PR 1: Export createDisplayWidth from renderer (WASM per-codepoint wcwidth, R.WIDTH.* tests) - PR 2: Virtualizer core — appendLine, resolveViewport, ring buffer, ANSI scanner, wrap walker, getLineDisplayWidth (~66 tests) - PR 3: scrollBy + scrollToFraction with all deferred scroll-dependent tests (~92 tests total) resize() still throws "not implemented" — deferred to PR 4.
3 months ago
mod.ts
✨ add @clayterm/virtualizer v1 (PRs 1–3) Implement the virtualizer package for viewport virtualization over large terminal text output. This covers PRs 1–3 of the implementation plan: - PR 1: Export createDisplayWidth from renderer (WASM per-codepoint wcwidth, R.WIDTH.* tests) - PR 2: Virtualizer core — appendLine, resolveViewport, ring buffer, ANSI scanner, wrap walker, getLineDisplayWidth (~66 tests) - PR 3: scrollBy + scrollToFraction with all deferred scroll-dependent tests (~92 tests total) resize() still throws "not implemented" — deferred to PR 4.
3 months ago
ring-buffer.ts
✨ add @clayterm/virtualizer v1 (PRs 1–3) Implement the virtualizer package for viewport virtualization over large terminal text output. This covers PRs 1–3 of the implementation plan: - PR 1: Export createDisplayWidth from renderer (WASM per-codepoint wcwidth, R.WIDTH.* tests) - PR 2: Virtualizer core — appendLine, resolveViewport, ring buffer, ANSI scanner, wrap walker, getLineDisplayWidth (~66 tests) - PR 3: scrollBy + scrollToFraction with all deferred scroll-dependent tests (~92 tests total) resize() still throws "not implemented" — deferred to PR 4.
3 months ago
types.ts
🐛 fix anchor eviction in single-line buffer + document columns precondition Fix two blocking issues before merge: 1. When maxLines=1 and isAtBottom=false, evicting the anchor line left the anchor pointing at a gone lineIndex. resolveViewport() returned no entries from a non-empty buffer. Removed the `lineCount > 1` guard so the anchor always clamps to `evictedLineIndex + 1`. Added regression test R.EVICT.maxLines1-not-at-bottom. 2. Resolved the contradiction between O-9 ("every slice fits within columns") and the columns=1 + width-2 CJK glyph behavior. Documented columns ≥ max glyph width as a precondition on VirtualizerOptions, updated O-9 test name, wrap-golden test labels, and the spec.
3 months ago
virtualizer.ts
🐛 fix anchor eviction in single-line buffer + document columns precondition Fix two blocking issues before merge: 1. When maxLines=1 and isAtBottom=false, evicting the anchor line left the anchor pointing at a gone lineIndex. resolveViewport() returned no entries from a non-empty buffer. Removed the `lineCount > 1` guard so the anchor always clamps to `evictedLineIndex + 1`. Added regression test R.EVICT.maxLines1-not-at-bottom. 2. Resolved the contradiction between O-9 ("every slice fits within columns") and the columns=1 + width-2 CJK glyph behavior. Documented columns ≥ max glyph width as a precondition on VirtualizerOptions, updated O-9 test name, wrap-golden test labels, and the spec.
3 months ago
wrap-walker.ts
🐛 fix three edge-case bugs with wide chars at narrow columns 1. resize() now clamps anchorSubRow using exact wrap count instead of ceil(displayWidth/columns) estimate, which undercounts when boundary waste from wide characters increases actual sub-row count. 2. _recomputeCurrentEstimate() clamps currentEstimatedVisualRow to [0, totalEstimatedVisualRows-1] so the scrollbar invariant holds even when exact wrap counts exceed the estimate. 3. computeWrapPoints() no longer emits wrap point at index 0 when the first visible character is wider than columns — the character overflows its row instead of creating an empty first sub-row. Adds 4 regression tests covering all three fixes.
3 months ago