Skip to content

Commit 0783c9e

Browse files
committed
Revert "Replace IncrementalEdit with SourceEdit"
This reverts commit ed61630.
1 parent 280a50e commit 0783c9e

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

Sources/SourceKitLSP/Swift/DocumentFormatting.swift

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,18 @@ private func edits(from original: DocumentSnapshot, to edited: String) -> [TextE
115115

116116
// Map the offset-based edits to line-column based edits to be consumed by LSP
117117

118-
return concurrentEdits.edits.compactMap {
119-
TextEdit(range: original.absolutePositionRange(of: $0.range), newText: $0.replacement)
118+
return concurrentEdits.edits.compactMap { (edit) -> TextEdit? in
119+
let (startLine, startColumn) = original.lineTable.lineAndUTF16ColumnOf(utf8Offset: edit.offset)
120+
let (endLine, endColumn) = original.lineTable.lineAndUTF16ColumnOf(utf8Offset: edit.endOffset)
121+
guard let newText = String(bytes: edit.replacement, encoding: .utf8) else {
122+
logger.fault("Failed to get String from UTF-8 bytes \(edit.replacement)")
123+
return nil
124+
}
125+
126+
return TextEdit(
127+
range: Position(line: startLine, utf16index: startColumn)..<Position(line: endLine, utf16index: endColumn),
128+
newText: newText
129+
)
120130
}
121131
}
122132

Sources/SourceKitLSP/Swift/SwiftLanguageService.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ extension SwiftLanguageService {
537537
keys.enableDiagnostics: 0,
538538
keys.syntacticOnly: 1,
539539
keys.offset: edit.range.lowerBound.utf8Offset,
540-
keys.length: edit.range.length.utf8Length,
540+
keys.length: edit.length.utf8Length,
541541
keys.sourceText: edit.replacement,
542542
])
543543
do {
@@ -553,7 +553,13 @@ extension SwiftLanguageService {
553553
}
554554

555555
let concurrentEdits = ConcurrentEdits(
556-
fromSequential: edits
556+
fromSequential: edits.map {
557+
IncrementalEdit(
558+
offset: $0.range.lowerBound.utf8Offset,
559+
length: $0.length.utf8Length,
560+
replacementLength: $0.replacement.utf8.count
561+
)
562+
}
557563
)
558564
await syntaxTreeManager.registerEdit(
559565
preEditSnapshot: preEditSnapshot,

0 commit comments

Comments
 (0)