Rewrite literal (|) and folded (>) block scalar content to YAML 1.2 section 8.1: preserve interior blank lines, apply 8.1.3 line folding (a single break between equally indented non-empty lines folds to a space, while blank lines and more-indented lines keep their breaks), preserve tabs in content (only block-indentation columns are stripped), and support the + keep chomping indicator alongside clip and strip. The block scalar is now scanned as a single unit (header line plus all content lines) with indentation auto-detection in Scanner.BlockScalar.swift, mirroring the reference scanner, instead of being reassembled from a lossy per-line token array. Flips 24 official YAML test suite cases to passing (220/402). Updates the gap manifest, vendored fixtures, count assertions, and the conformance roadmap.
12 lines
233 B
Swift
12 lines
233 B
Swift
extension PureYAML.Parsing {
|
|
enum BlockScalarChomping: String, Equatable, CustomStringConvertible {
|
|
case clip
|
|
case strip
|
|
case keep
|
|
|
|
var description: String {
|
|
rawValue
|
|
}
|
|
}
|
|
}
|