Repository navigation
Support unsaved CSV and TSV documents with native ownership - #122
Closed
jonaraphael wants to merge 14 commits into
Closed
jonaraphael wants to merge 14 commits into
jonaraphael wants to merge 14 commits into
Conversation
# Conflicts: # README.md
jonaraphael
marked this pull request as ready for review
October 17, 2026 04:58
jonaraphael
marked this pull request as draft
October 17, 2026 05:46
# Conflicts: # README.md # media/main.js # package.json # src/CsvEditorProvider.ts # src/test/edit-integrity-harness.ts
jonaraphael
marked this pull request as ready for review
October 17, 2026 06:33
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.
Untitled CSV/TSV documents now open as editable tables against their existing native text buffer, including text entered before changing language mode. Switching from the temporary table to text commits the active cell, reveals that same document, and closes the table. Switching back creates a new table against the unchanged owner. The toolbar action is available in both supported untitled text views and their tables.
The native text tab remains open while an untitled table is displayed because it owns the unsaved buffer. Native replacement is unsafe for associated-path untitled documents: VS Code can route their URI to a nonexistent saved file. Saved-file replacement is provided by parent #120. Neither switch saves or discards document contents.
A single sequenced draft-commit protocol serves switching, Save As, language changes, disable/re-enable and owner rebinding. Delayed edits finish before the owning document changes; failed drafts remain available for retry or Escape discard. Fresh acknowledgments preserve newer edits started during recovery. Split-editor routing selects the visible owner in the invoking group instead of relying on the globally active text editor.
The table adds
CSV: Save Untitled Document As…and Ctrl/Cmd+S support. These commit the active cell, reveal the native owner and use VS Code's normal Save As command. Native File > Save cannot target a standalone table panel, so it must be used from the source. README and manifest describe these behaviors. No new settings.Validation:
5abb7ad1cb71f0a4810b30b77741e5d06ea91cc0, normal installed VS Code 1.142 host: isolated CSV/TSV ownership, language round trips, table/text switching, disable/re-enable, actual native Save As and controlled cancellation pass. CSV/TSV Save As completed in 84/63 ms with exact quoted multiline disk bytes; old untitled owners and temporary controllers closed. Cancellation called the native save no-op once and retained the dirty source and reusable table. Cases close only the previous fixture’s known clean saved tabs after their assertions. This isolation avoids, rather than fixes, the separately documented multi-file focus race. The diagnostic polling deadline was 30 seconds; measured saves finished within the original five-second window.Boundaries: native File > Save must be used from the untitled source, as explained above. A file still in Table mode cannot receive a native search range through the stable custom-editor callback. Unsupported URI authorities and conflicting editor associations retain explicit guidance. A normal installed-host multi-file sequence reproduced a focus limitation: after saving one CSV and opening an untitled TSV, Off/On can activate the earlier CSV instead of restoring the untitled table. The TSV owner stays live, dirty and unchanged; no file is saved or discarded. This source-preserving focus race is documented for review, alongside the existing late native-handoff limitation. Workbench internal selection/OverlayWebview messages can appear during replacement while native assertions pass.
Depends on #120. Closes #85. Closes #94.