Skip to content

Commit 4684e01

Browse files
committed
update
1 parent 1c95ac7 commit 4684e01

File tree

1 file changed

+18
-71
lines changed

1 file changed

+18
-71
lines changed

Sources/MultiLineDiffRunner/main.swift

Lines changed: 18 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2900,74 +2900,17 @@ func formatDiffOutput(_ mapping: DiffLineMapping, sourceCharCount: Int = 0, dest
29002900
return output
29012901
}
29022902

2903-
/// Formats diff line mappings - PLACEHOLDER version (with ----: for empty spaces)
2904-
func formatDiffOutputWithPlaceholders(_ mapping: DiffLineMapping, sourceCharCount: Int = 0, destCharCount: Int = 0) -> String {
2905-
var output = generateDiffHeader(sourceCharCount: sourceCharCount, destCharCount: destCharCount)
2906-
2907-
var sourceIndex = 0
2908-
var destIndex = 0
2909-
2910-
while sourceIndex < mapping.sourceLines.count || destIndex < mapping.destLines.count {
2911-
let sourceLineExists = sourceIndex < mapping.sourceLines.count
2912-
let destLineExists = destIndex < mapping.destLines.count
2913-
2914-
if sourceLineExists && destLineExists {
2915-
let (sourceNum, sourceContent) = mapping.sourceLines[sourceIndex]
2916-
let (destNum, destContent) = mapping.destLines[destIndex]
2917-
2918-
if sourceContent.hasPrefix(": ") && destContent.hasPrefix(": ") && sourceContent == destContent {
2919-
// Same retained line
2920-
let actualContent = String(sourceContent.dropFirst(2))
2921-
let sourceDisplay = actualContent.padding(toLength: DiffFormatConstants.sourceColumnWidth, withPad: " ", startingAt: 0)
2922-
output += " \(formatLineNumber(sourceNum)): \(sourceDisplay) | \(formatLineNumber(destNum)): \(actualContent)\n"
2923-
sourceIndex += 1
2924-
destIndex += 1
2925-
} else if sourceContent.hasPrefix("- ") {
2926-
// Deleted line
2927-
let actualContent = String(sourceContent.dropFirst(2))
2928-
let sourceDisplay = actualContent.padding(toLength: DiffFormatConstants.sourceColumnWidth, withPad: " ", startingAt: 0)
2929-
output += " \(formatLineNumber(sourceNum))- \(sourceDisplay) | \(DiffFormatConstants.placeholderText): \(createEmptyPadding())\n"
2930-
sourceIndex += 1
2931-
} else if destContent.hasPrefix("+ ") {
2932-
// Added line
2933-
let actualContent = String(destContent.dropFirst(2))
2934-
output += " \(DiffFormatConstants.placeholderText): \(createEmptyPadding()) | \(formatLineNumber(destNum))+ \(actualContent)\n"
2935-
destIndex += 1
2936-
} else {
2937-
sourceIndex += 1
2938-
destIndex += 1
2939-
}
2940-
} else if sourceLineExists {
2941-
// Only source line left
2942-
let (sourceNum, sourceContent) = mapping.sourceLines[sourceIndex]
2943-
let symbol = String(sourceContent.prefix(1))
2944-
let actualContent = String(sourceContent.dropFirst(2))
2945-
let sourceDisplay = actualContent.padding(toLength: DiffFormatConstants.sourceColumnWidth, withPad: " ", startingAt: 0)
2946-
output += " \(formatLineNumber(sourceNum))\(symbol) \(sourceDisplay) | \(DiffFormatConstants.placeholderText): \(createEmptyPadding())\n"
2947-
sourceIndex += 1
2948-
} else if destLineExists {
2949-
// Only dest line left
2950-
let (destNum, destContent) = mapping.destLines[destIndex]
2951-
let symbol = String(destContent.prefix(1))
2952-
let actualContent = String(destContent.dropFirst(2))
2953-
output += " \(DiffFormatConstants.placeholderText): \(createEmptyPadding()) | \(formatLineNumber(destNum))\(symbol) \(actualContent)\n"
2954-
destIndex += 1
2955-
}
2956-
}
2957-
2958-
output += generateDiffFooter(includePlaceholderLegend: true)
2959-
return output
2960-
}
29612903

2962-
/// Formats diff line mappings - VERTICAL SPACE version (with line numbers for empty spaces)
2963-
func formatDiffOutputWithVerticalSpace(_ mapping: DiffLineMapping, sourceCharCount: Int = 0, destCharCount: Int = 0) -> String {
2904+
2905+
/// Formats diff line mappings - CONSOLIDATED version (placeholders OR line numbers for empty spaces)
2906+
func formatDiffOutputWithEmptyFill(_ mapping: DiffLineMapping, sourceCharCount: Int = 0, destCharCount: Int = 0, usePlaceholders: Bool = false) -> String {
29642907
var output = generateDiffHeader(sourceCharCount: sourceCharCount, destCharCount: destCharCount)
29652908

29662909
var sourceIndex = 0
29672910
var destIndex = 0
29682911
var virtualSourceLine = 1
29692912
var virtualDestLine = 1
2970-
2913+
29712914
while sourceIndex < mapping.sourceLines.count || destIndex < mapping.destLines.count {
29722915
let sourceLineExists = sourceIndex < mapping.sourceLines.count
29732916
let destLineExists = destIndex < mapping.destLines.count
@@ -2986,17 +2929,19 @@ func formatDiffOutputWithVerticalSpace(_ mapping: DiffLineMapping, sourceCharCou
29862929
virtualSourceLine = sourceNum + 1
29872930
virtualDestLine = destNum + 1
29882931
} else if sourceContent.hasPrefix("- ") {
2989-
// Deleted line - fill dest with virtual line number
2932+
// Deleted line - fill dest with placeholder or line number
29902933
let actualContent = String(sourceContent.dropFirst(2))
29912934
let sourceDisplay = actualContent.padding(toLength: DiffFormatConstants.sourceColumnWidth, withPad: " ", startingAt: 0)
2992-
output += " \(formatLineNumber(sourceNum))- \(sourceDisplay) | \(formatLineNumber(virtualDestLine)): \(createEmptyPadding())\n"
2935+
let destFill = usePlaceholders ? "\(DiffFormatConstants.placeholderText): \(createEmptyPadding())" : "\(formatLineNumber(virtualDestLine)): \(createEmptyPadding())"
2936+
output += " \(formatLineNumber(sourceNum))- \(sourceDisplay) | \(destFill)\n"
29932937
sourceIndex += 1
29942938
virtualSourceLine = sourceNum + 1
29952939
virtualDestLine += 1
29962940
} else if destContent.hasPrefix("+ ") {
2997-
// Added line - fill source with virtual line number
2941+
// Added line - fill source with placeholder or line number
29982942
let actualContent = String(destContent.dropFirst(2))
2999-
output += " \(formatLineNumber(virtualSourceLine)): \(createEmptyPadding()) | \(formatLineNumber(destNum))+ \(actualContent)\n"
2943+
let sourceFill = usePlaceholders ? "\(DiffFormatConstants.placeholderText): \(createEmptyPadding())" : "\(formatLineNumber(virtualSourceLine)): \(createEmptyPadding())"
2944+
output += " \(sourceFill) | \(formatLineNumber(destNum))+ \(actualContent)\n"
30002945
destIndex += 1
30012946
virtualSourceLine += 1
30022947
virtualDestLine = destNum + 1
@@ -3010,21 +2955,23 @@ func formatDiffOutputWithVerticalSpace(_ mapping: DiffLineMapping, sourceCharCou
30102955
let symbol = String(sourceContent.prefix(1))
30112956
let actualContent = String(sourceContent.dropFirst(2))
30122957
let sourceDisplay = actualContent.padding(toLength: DiffFormatConstants.sourceColumnWidth, withPad: " ", startingAt: 0)
3013-
output += " \(formatLineNumber(sourceNum))\(symbol) \(sourceDisplay) | \(formatLineNumber(virtualDestLine)): \(createEmptyPadding())\n"
2958+
let destFill = usePlaceholders ? "\(DiffFormatConstants.placeholderText): \(createEmptyPadding())" : "\(formatLineNumber(virtualDestLine)): \(createEmptyPadding())"
2959+
output += " \(formatLineNumber(sourceNum))\(symbol) \(sourceDisplay) | \(destFill)\n"
30142960
sourceIndex += 1
30152961
virtualDestLine += 1
30162962
} else if destLineExists {
30172963
// Only dest line left
30182964
let (destNum, destContent) = mapping.destLines[destIndex]
30192965
let symbol = String(destContent.prefix(1))
30202966
let actualContent = String(destContent.dropFirst(2))
3021-
output += " \(formatLineNumber(virtualSourceLine)): \(createEmptyPadding()) | \(formatLineNumber(destNum))\(symbol) \(actualContent)\n"
2967+
let sourceFill = usePlaceholders ? "\(DiffFormatConstants.placeholderText): \(createEmptyPadding())" : "\(formatLineNumber(virtualSourceLine)): \(createEmptyPadding())"
2968+
output += " \(sourceFill) | \(formatLineNumber(destNum))\(symbol) \(actualContent)\n"
30222969
destIndex += 1
30232970
virtualSourceLine += 1
30242971
}
30252972
}
30262973

3027-
output += generateDiffFooter()
2974+
output += generateDiffFooter(includePlaceholderLegend: usePlaceholders)
30282975
return output
30292976
}
30302977

@@ -3039,13 +2986,13 @@ func generateDiffOutput(from asciiDiff: String, sourceCharCount: Int = 0, destCh
30392986
/// Convenience function - generates placeholder diff output
30402987
func generateDiffOutputWithPlaceholders(from asciiDiff: String, sourceCharCount: Int = 0, destCharCount: Int = 0) -> String {
30412988
let mapping = parseASCIIDiff(asciiDiff)
3042-
return formatDiffOutputWithPlaceholders(mapping, sourceCharCount: sourceCharCount, destCharCount: destCharCount)
2989+
return formatDiffOutputWithEmptyFill(mapping, sourceCharCount: sourceCharCount, destCharCount: destCharCount, usePlaceholders: true)
30432990
}
30442991

3045-
/// Convenience function - generates vertical space diff output
2992+
/// Convenience function - generates vertical s pace diff output
30462993
func generateDiffOutputWithVerticalSpace(from asciiDiff: String, sourceCharCount: Int = 0, destCharCount: Int = 0) -> String {
30472994
let mapping = parseASCIIDiff(asciiDiff)
3048-
return formatDiffOutputWithVerticalSpace(mapping, sourceCharCount: sourceCharCount, destCharCount: destCharCount)
2995+
return formatDiffOutputWithEmptyFill(mapping, sourceCharCount: sourceCharCount, destCharCount: destCharCount, usePlaceholders: false)
30492996
}
30502997

30512998

0 commit comments

Comments
 (0)