Rework issue #451: draggable table column resizing, made ephemeral - #569
Merged
Conversation
schuyler
force-pushed
the
claude/issue-451-ephemeral-resize-45f2cb31
branch
from
August 12, 2026 15:59
5a3ef90 to
a96a801
Compare
Owner
Author
|
Local test run against this branch (three separate invocations — warm DerivedData, fully cold DerivedData, and reproducing CI's exact scheme name and xcodebuild flags) passes 1303 tests: 76 expected The |
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.
Draggable table column resizing in the live preview, reworked from @aseelye's PR #451 contribution to hold width state in memory only, with no document mutation or persistence of any kind.
Behavior
What changed from @aseelye's original PR #451
His interactive front end (drag handles, table identity via header-hash + index, minimum column width) is unchanged. Removed entirely: the native persistence layer — bridge token,
x-macdown-table-layout://custom URL scheme,table-layouts.jsonsidecar file, and the associated load/save/reset logic inMPDocument.m/MPRenderer.m/.h.table-resize.jsnow holds width state in a closure-scoped map instead of round-tripping through the native bridge.His authorship is preserved via a straight cherry-pick (
a5f9b40) as the base commit, with the persistence removal as a separate commit on top.Judgment calls
export.css's bundledth { white-space: nowrap }change rides along unchanged from the original PR. It affects all table rendering, including export, not just the live-resize feature — a UX change serving the same table-readability goal, kept as part of this PR rather than split out.Testing
CI=true xcodebuild test -workspace "MacDown 3000.xcworkspace" -scheme "MacDown (MacDown 3000 project)" -destination 'platform=macOS': 1225 tests, 76 expected failures, 0 unexpected.Headless tests cover: the renderer emits no layout JSON or table-layout bridge token;
table-resize.jsis registered in the preview scripts; export HTML/CSS behavior is unaffected; the removed URL-scheme handler leaves no trace. Drag interaction and width re-application after DOM replacement run only in a live WebView and are manual-QA items.Related to #451