PureYAML/Sources/Parsing
Mihaela M 37ac4d862d fix(parsing): keep both breaks at a folded blank by a more-indented line
In a folded block scalar, a blank run of N lines between two non-more-indented
lines folds to N line breaks: the fold absorbs the first break. Next to a
more-indented line nothing folds, so that break survives and the run yields
N+1 breaks. The folder used N in every case, so paragraph spacing around an
indented block collapsed: a blank line before a more-indented block came out
as one break instead of two.

Track whether the line before the blank run, or the one after it, is
more-indented and add the extra break in that case. Folding between plain
lines and runs with no blank lines are unchanged.

Raises yaml-test-suite value-level conformance to 186/194 (95.9%) with the
parse-level and should-error rejection rates unchanged. 444 tests pass.
2026-06-28 21:14:14 +02:00
..
BlockScalarChomping.swift fix(parsing): classify the keep block-scalar chomping indicator 2026-06-26 07:50:07 +02:00
BlockScalarStyle.swift feat(parsing): add reader scanner core 2026-06-05 07:40:23 +02:00
CollectionStyle.swift feat(parsing): add parse event model 2026-06-05 07:16:23 +02:00
Event.swift feat(parser): add multi-document stream parsing 2026-06-05 14:55:54 +02:00
EventComposer.Merge.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
EventComposer.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
EventStreamComposedNode.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamComposer.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamComposerMode.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamContainer.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamContainerKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Mark.swift feat(parsing): add parse event model 2026-06-05 07:16:23 +02:00
MergeResolution.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
NodeKind.swift feat(parsing): parse token stream into events 2026-06-05 09:56:18 +02:00
NodeProperties.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
NodeResult.swift feat(parsing): parse token stream into events 2026-06-05 09:56:18 +02:00
ParseError.swift fix(parsing): reject a document marker inside a multi-line scalar 2026-06-27 23:20:52 +02:00
Parser.Events.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Parser.ScalarComposition.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Parser.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Reader.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Scalar.swift fix(parsing): enforce the full YAML 1.2 double-quoted escape table 2026-06-27 16:19:25 +02:00
ScalarStyle.swift feat(parsing): compose events into values 2026-06-05 10:07:28 +02:00
Scanner.Directives.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
Scanner.FlowContext.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Scanner.FlowKey.swift fix(parsing): parse a flow collection before a colon as a mapping key 2026-06-28 18:34:11 +02:00
Scanner.Helpers.swift fix(parsing): fold tabs in plain scalar continuation lines 2026-06-28 21:00:32 +02:00
Scanner.Indentation.swift fix(parsing): keep tabs in block scalar content verbatim 2026-06-28 20:53:40 +02:00
Scanner.Scalars.swift fix(parsing): fold root block scalars with column-0 content 2026-06-28 17:42:38 +02:00
Scanner.swift fix(parsing): keep tabs in block scalar content verbatim 2026-06-28 20:53:40 +02:00
ScannerFlowContextKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
TagNormalizer.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Text.swift feat(parsing): compose events into values 2026-06-05 10:07:28 +02:00
Token.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
TokenCursor.swift fix(parsing): reject a block entry after a flow collection on a line 2026-06-28 01:34:55 +02:00
TokenEventParser.Block.swift fix(parsing): keep both breaks at a folded blank by a more-indented line 2026-06-28 21:14:14 +02:00
TokenEventParser.Flow.swift fix(parsing): treat colon-led flow sequence element as empty-key map 2026-06-28 19:43:56 +02:00
TokenEventParser.Helpers.swift fix(parsing): reject a later under-indented property on a mapping value 2026-06-28 01:44:48 +02:00
TokenEventParser.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
TokenKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00