Fix SchComponent.Comment not persisting through SchDoc/SchLib writers - #48
Open
Andrei-Errapart wants to merge 1 commit into
Open
Fix SchComponent.Comment not persisting through SchDoc/SchLib writers#48Andrei-Errapart wants to merge 1 commit into
Andrei-Errapart wants to merge 1 commit into
Conversation
SchDocReader populated Comment from DesignItemId instead of the child "Comment" parameter SchLibReader correctly used, and neither writer ever pushed the property back into that parameter, so edits (and WithComment() on from-scratch components) were silently dropped. SchDocWriter's byte-faithful replay path made this worse for loaded documents: it re-emits the exact bytes captured at read time whenever the primitive count is unchanged, swallowing even direct edits to the backing parameter's Value. - SchDocReader/SchLibReader now derive Comment from the child "Comment" parameter once children are attached, recording a CommentAsRead baseline. - New SchLibWriter.SyncComponentComment pushes an edited Comment back into that parameter (creating one if absent), used by both writers. - SchDocWriter disables its byte-faithful fast path only when a Comment edit is actually detected, so untouched documents still round-trip byte-identical. - Add regression tests in SchDocRoundTripTests/SchLibRoundTripTests covering mutate-after-load and from-scratch WithComment.
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.
SchDocReader populated Comment from DesignItemId instead of the child "Comment" parameter SchLibReader correctly used, and neither writer ever pushed the property back into that parameter, so edits (and WithComment() on from-scratch components) were silently dropped. SchDocWriter's byte-faithful replay path made this worse for loaded documents: it re-emits the exact bytes captured at read time whenever the primitive count is unchanged, swallowing even direct edits to the backing parameter's Value.
Summary
Changes
Test Plan
dotnet test)Checklist