@@ -106,10 +106,10 @@ private func edits(from original: DocumentSnapshot, to edited: String) -> [TextE
106
106
switch change {
107
107
case . insert( offset: let offset, element: let element, associatedWith: _) :
108
108
let absolutePosition = AbsolutePosition ( utf8Offset: offset)
109
- return IncrementalEdit ( range: absolutePosition..< absolutePosition, replacement: [ element] )
109
+ return SourceEdit ( range: absolutePosition..< absolutePosition, replacement: [ element] )
110
110
case . remove( offset: let offset, element: _, associatedWith: _) :
111
111
let absolutePosition = AbsolutePosition ( utf8Offset: offset)
112
- return IncrementalEdit ( range: absolutePosition..< absolutePosition. advanced ( by: 1 ) , replacement: [ ] )
112
+ return SourceEdit ( range: absolutePosition..< absolutePosition. advanced ( by: 1 ) , replacement: [ ] )
113
113
}
114
114
}
115
115
@@ -118,9 +118,9 @@ private func edits(from original: DocumentSnapshot, to edited: String) -> [TextE
118
118
// Map the offset-based edits to line-column based edits to be consumed by LSP
119
119
120
120
return concurrentEdits. edits. compactMap { ( edit) -> TextEdit ? in
121
- let ( startLine, startColumn) = original. lineTable. lineAndUTF16ColumnOf ( utf8Offset: edit. offset )
122
- let ( endLine, endColumn) = original. lineTable. lineAndUTF16ColumnOf ( utf8Offset: edit. endOffset )
123
- guard let newText = String ( bytes: edit. replacement , encoding: . utf8) else {
121
+ let ( startLine, startColumn) = original. lineTable. lineAndUTF16ColumnOf ( utf8Offset: edit. range . lowerBound . utf8Offset )
122
+ let ( endLine, endColumn) = original. lineTable. lineAndUTF16ColumnOf ( utf8Offset: edit. range . upperBound . utf8Offset )
123
+ guard let newText = String ( bytes: edit. replacementBytes , encoding: . utf8) else {
124
124
logger. fault ( " Failed to get String from UTF-8 bytes \( edit. replacement) " )
125
125
return nil
126
126
}
0 commit comments