Repository navigation
Preserve native search destinations and CSV editor lifecycle - #110
Closed
jonaraphael wants to merge 4 commits into
Closed
jonaraphael wants to merge 4 commits into
jonaraphael wants to merge 4 commits into
Conversation
jonaraphael
force-pushed
the
codex/fix-editor-navigation
branch
from
October 17, 2026 04:12
ad254c5 to
0c3ec94
Compare
This was referenced Oct 17, 2026
jonaraphael
marked this pull request as ready for review
October 17, 2026 13:10
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.
When CSV is Off, VS Code can still choose the contributed CSV editor before delivering a Find in Files destination. The custom-editor callback carries no requested range, so reopening text afterward loses the destination and can create a second representation.
The existing Toggle Extension command installs reversible native-editor associations while Off and restores prior choices when On. It honors workspace/global enabled scope, preserves other editors and unrelated associations, and relinquishes user-edited keys. Immutable recovery journals and one transaction queue order startup, configuration changes and toggles across delayed windows. Denied or conflicting changes produce an error and roll back the toggle.
The same manager now offers file-scoped Text ownership for dependent #120. That ownership survives restart and Off/On independently of temporary disabled-state routing. A successful Table replacement releases only the owned file binding; failed switches restore only their still-owned changes. Literal path glob characters are escaped, and external edits/deletions cannot resurrect an old ownership journal. This PR provides the manager API; #120 wires the existing switch action to it.
Enabling uses VS Code's native resolver and preserves native/external editor choices and dirty source owners. Lifecycle fixes observe disposal before remote file checks, reuse an existing native destination in the same group, hand off once, and retain the extension URI scheme/authority for webview resources. No new contributed setting or UI control.
Stacked on #109. Refs #90, #104 and #127. The Off workflow is fixed here; enabled files explicitly switched to Text are handled by #120. Search into a file still in Table mode remains outside the stable custom-editor API's navigation contract. This does not claim every #104/#127 workflow is resolved.
Validation:
Boundaries: external editor associations are preserved. Unsafe partial broad associations fail with guidance. File association matching is case-insensitive and cannot isolate URI authorities; dependent #120 reports these limitations rather than widening the preference.
Known view limitation outside this search repair: during multi-file Off/On, an inactive saved CSV handoff/upgrade can activate that file instead of restoring the current untitled table. A normal installed-host probe preserved the untitled source and all edits; this is recorded for review and is not a claim that every multi-file focus sequence is fixed.