fix: Pretty print elements with intrinsic values on a single line#296
Merged
Merged
Conversation
Elements using the empty-string CodingKey ("") for intrinsic text
content were being pretty-printed with the value on a separate line:
<element ref="id">
120000.0
</element>
This happened because the pretty printer only checked containsTextNodes,
which isn't set for intrinsic values encoded via keyed containers. Add a
check for elements whose children are all inline (key is empty) and
don't wrap named child elements, treating them the same as text nodes.
Joannis
approved these changes
Apr 9, 2026
weppos
added a commit
to weppos/uddf-swift
that referenced
this pull request
Jul 26, 2026
…nd (#8) XMLCoder 0.18.2 ships the upstream fix that pretty-prints elements with intrinsic values on a single line CoreOffice/XMLCoder#296, commit CoreOffice/XMLCoder@b2b5d72. That fix originated as a local hotpatch in this codebase: `UDDFWriter` post-processed the encoder's output with a regex to fold intrinsic-value-with-attribute elements like `<tankpressure ref="backgas">17000000.0</tankpressure>` back onto one line. With the fix upstream, the workaround is redundant. This PR: - Raises the XMLCoder dependency floor from `0.17.0` to `0.18.2`. - Removes `collapseIntrinsicValueElements(_:)` from `UDDFWriter` and its call site. - Removes the now-dead `prettyPrinted` stored property (the init parameter still drives `outputFormatting`). - Updates the README dependency reference and adds a CHANGELOG entry. The decode-side helper `decodeTrimmedIntrinsicValue` is **not** removed. The upstream fix is encoder-only; the decode helper tolerates *reading* externally authored, whitespace-padded intrinsic values, in line with the permissive-parser philosophy. Verified load-bearing: neutering it to a plain `decode` breaks `testParseAlarmTrimsFormattingWhitespace` and `testParseWaypointSensorValuesWithFormattingWhitespace`.
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.
This PR introduces a fix to the mentioned bug, by keeping elements with intrinsic content encoded via the empty-string CodingKey on a single line when pretty printing.
Fixes #295