Repository navigation
Add inline live AND column filters with inferred typed comparisons - #121
Closed
jonaraphael wants to merge 21 commits into
Closed
jonaraphael wants to merge 21 commits into
jonaraphael wants to merge 21 commits into
Conversation
…filters # Conflicts: # src/CsvEditorProvider.ts
jonaraphael
marked this pull request as ready for review
October 17, 2026 04:39
…filters # Conflicts: # media/frozen-panes.js
jonaraphael
marked this pull request as draft
October 17, 2026 07:25
jonaraphael
marked this pull request as ready for review
October 17, 2026 07:42
jonaraphael
marked this pull request as draft
October 17, 2026 13:37
# Conflicts: # src/CsvEditorProvider.ts
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.
Column filters now live in the table’s filter details row and update matching rows as the user types. Filter this column appears in the top context-menu section. Repeating it or choosing Add filter creates independent AND conditions, including multiple conditions on the same column, such as Amount > 10 AND Amount < 20. Conditions can be edited or removed individually, and Clear all removes every saved condition. No native VS Code picker or input popup is used.
Operators follow the type inferred from the complete original body, excluding the effective header and hidden metadata. Every type offers Contains, Does Not Contain, Regular Expression, Equals, Does Not Equal, Is Empty and Is Not Empty; number/date columns also offer >, >=, < and <=. Exact decimal and sub-millisecond timestamp comparisons, the supported date formats and RE2 syntax remain unchanged. Filtering adds no commands or settings and changes no datatype palette or global type inference.
Live updates retain input focus/caret, reject stale responses/chunks and preserve absolute source row identities. Blank values leave draft conditions inactive; invalid queries show an inline error while retaining the last valid results. Only valid conditions are persisted per file. Interrupted IME text and other unsent drafts survive a same-document refresh in controller memory without being stored. Queued refresh acknowledgments are renewed when newer filter typing arrives. Column identity/session/URI checks prevent restoring drafts into a different target.
Filtering matches the full source before chunking. Copy/paste/fill/find/sort keep their existing filtered-source behavior, while saving retains hidden and nonmatching records. Structural column changes remap every condition. Pending or failed cell edits retain their recovery guards; the combined build also retains its stronger source ownership/Save As safeguards.
This implements the filtering portion of #80 and builds on #118; large-file preview remains separate in #119. README and PRIVACY.md describe the inline controls and valid-condition storage.
Validation:
2f43410) passes all 571 tests. No failures or skips; lint has 0 errors and 86 existing warnings; diff checks pass.