Repository navigation
Add persistent frozen leading rows and columns - #117
Closed
jonaraphael wants to merge 11 commits into
Closed
jonaraphael wants to merge 11 commits into
jonaraphael wants to merge 11 commits into
Conversation
# Conflicts: # src/CsvEditorProvider.ts
jonaraphael
changed the base branch from
codex/fix-column-sizing
to
codex/fix-high-contrast
October 17, 2026 04:28
jonaraphael
marked this pull request as ready for review
October 17, 2026 04:31
jonaraphael
marked this pull request as draft
October 17, 2026 07:02
jonaraphael
marked this pull request as ready for review
October 17, 2026 07:08
jonaraphael
marked this pull request as draft
October 17, 2026 13:37
jonaraphael
marked this pull request as ready for review
October 17, 2026 14:01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Files with multiple header rows lose their identifying rows while scrolling, and users cannot keep leading data columns visible. This adds per-file frozen leading row/column counts, remembered after reopening.
Use
CSV: Freeze Leading Rows(csv.changeFrozenRows) orCSV: Freeze Leading Columns(csv.changeFrozenColumns), or right-click a cell to freeze through that row/column. Enter 0 or choose Unfreeze to clear an axis. Row counts start after hidden metadata rows; the existing single frozen header remains the default. The serial index freezes alongside data columns.Sticky offsets follow measured multiline row heights and column widths, updating after zoom, resizing, row-height changes and chunk arrival. Leading frozen rows exclude the virtual append row and request later chunks when needed. Corners stack above frozen rows/columns; opaque theme surfaces retain selection and find highlights; high-contrast themes use outlines without obscuring datatype colors. The half-border correction at the frozen block's top edge and divider-colored paint on every frozen row prevent scrolling text from showing above or between pinned rows. The paint follows the existing table/contrast divider color, includes serial and corner cells, and cannot intercept pointer input. Measured row spacing and datatype colors remain unchanged. Freeze changes preserve the current DOM, active draft and caret. Commands and README are synchronized.
Addresses #79. Depends on the narrowed #114 (
codex/fix-high-contrast), which preserves datatype palettes and explicit color mode and limits accessibility overrides to high-contrast themes. Includes the shared stacked-PR CI correction.Validation:
npm run compileandnpm testpass all 187 branch tests.npm run lint: 0 errors, 87 existing warnings.git diff --checkpasses.d800392passes compilation and all 531 tests; lint has 0 errors and 86 existing warnings, andgit diff --checkpasses. Its filter integration preserves visible source-row order and the measured filter-bar inset.Verified multiple-row divider rendering (generated provider HTML and shipped scripts in Chromium, synthetic data):
Palette-stack verification: inherited the narrowed #114 without changing this PR's feature logic. Compile, full tests and lint pass on the current head; the browser confirms high-contrast frozen selection/find states retain datatype colors, and theme transitions preserve live/queued edits in the combined candidate. Combined verification head:
d800392.