Skip to content

Commit 040750f

Browse files
committed
Update SwiftLanguageService.swift
1 parent 7a0d3dc commit 040750f

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

Sources/SourceKitLSP/Swift/DocumentFormatting.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@ private func edits(from original: DocumentSnapshot, to edited: String) -> [TextE
106106
switch change {
107107
case .insert(offset: let offset, element: let element, associatedWith: _):
108108
let absolutePosition = AbsolutePosition(utf8Offset: offset)
109-
return IncrementalEdit(range: absolutePosition..<absolutePosition, replacement: [element])
109+
return SourceEdit(range: absolutePosition..<absolutePosition, replacement: [element])
110110
case .remove(offset: let offset, element: _, associatedWith: _):
111111
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: [])
113113
}
114114
}
115115

@@ -118,9 +118,9 @@ private func edits(from original: DocumentSnapshot, to edited: String) -> [TextE
118118
// Map the offset-based edits to line-column based edits to be consumed by LSP
119119

120120
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 {
124124
logger.fault("Failed to get String from UTF-8 bytes \(edit.replacement)")
125125
return nil
126126
}

Sources/SourceKitLSP/Swift/SemanticTokens.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ extension SyntaxClassifiedRange {
110110
return SyntaxHighlightingTokens(tokens: [])
111111
}
112112

113-
let multiLineRange = snapshot.positionOf(utf8Offset: self.offset)..<snapshot.positionOf(utf8Offset: self.endOffset)
113+
let multiLineRange =
114+
snapshot.positionOf(
115+
utf8Offset: range.lowerBound.utf8Offset
116+
)..<snapshot.positionOf(utf8Offset: range.upperBound.utf8Offset)
114117
let ranges = multiLineRange.splitToSingleLineRanges(in: snapshot)
115118

116119
let tokens = ranges.map {

Sources/SourceKitLSP/Swift/SwiftLanguageService.swift

Lines changed: 6 additions & 5 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.length.utf8Length,
540+
keys.length: edit.range.length.utf8Length,
541541
keys.sourceText: edit.replacement,
542542
])
543543
do {
@@ -554,10 +554,11 @@ extension SwiftLanguageService {
554554

555555
let concurrentEdits = ConcurrentEdits(
556556
fromSequential: edits.map {
557-
IncrementalEdit(
558-
offset: $0.range.lowerBound.utf8Offset,
559-
length: $0.length.utf8Length,
560-
replacementLength: $0.replacement.utf8.count
557+
SourceEdit(
558+
range: AbsolutePosition(
559+
utf8Offset: $0.range.lowerBound.utf8Offset
560+
)..<AbsolutePosition(utf8Offset: $0.range.lowerBound.utf8Offset + $0.range.length.utf8Length),
561+
replacement: $0.replacement
561562
)
562563
}
563564
)

0 commit comments

Comments
 (0)