Skip to content

feat(tui): show scrollbar for long tables - #69

Open
ychampion wants to merge 1 commit into
bgreenwell:mainfrom
ychampion:feat-vertical-scrollbar
Open

feat(tui): show scrollbar for long tables#69
ychampion wants to merge 1 commit into
bgreenwell:mainfrom
ychampion:feat-vertical-scrollbar

Conversation

@ychampion

Copy link
Copy Markdown

Summary

  • show a vertical scrollbar when table rows exceed the viewport
  • track the existing vertical offset without covering sticky headers
  • document the behavior and cover visibility and position state

Why

Large tables can scroll vertically, but there is no visual indication of the current position. The indicator stays on the existing right border and is omitted when all rows fit.

Fixes #38.

Validation

  • cargo test - 67 unit and 39 integration tests passed
  • cargo test --no-default-features --bin xleak - 66 tests passed
  • cargo clippy --all-targets --all-features -- -D warnings - passed
  • cargo clippy --all-targets --no-default-features -- -D warnings - passed
  • cargo build --release --all-features - passed
  • cargo build --release --no-default-features - passed
  • cargo fmt --all -- --check - passed
  • 80x24 TUI smoke: thumb moved from top to bottom in a 10,000-row sheet; a 14-row sheet showed no scrollbar

Constraint: Keep sticky headers and table width unchanged.
Rejected: An always-visible scrollbar | Short tables should keep the existing uncluttered border.
Confidence: high
Scope-risk: narrow
Directive: Derive the indicator from the existing vertical offset rather than adding separate scroll state.
Tested: cargo test; cargo test --no-default-features --bin xleak; strict all-target Clippy with all and no-default features; default and no-default release builds; 80x24 PTY top, bottom, and short-table smokes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scrollable tables

1 participant