Skip to content

Commit 60856ce

Browse files
committed
Use new API's from SwiftSyntax SourceEdit
1 parent 8eae8c5 commit 60856ce

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ extension SyntaxClassifiedRange {
107107
return SyntaxHighlightingTokens(tokens: [])
108108
}
109109

110-
let multiLineRange = snapshot.positionOf(utf8Offset: self.offset)..<snapshot.positionOf(utf8Offset: self.endOffset)
110+
let multiLineRange = snapshot.positionOf(utf8Offset: range.lowerBound.utf8Offset)..<snapshot.positionOf(utf8Offset: range.upperBound.utf8Offset)
111111
let ranges = multiLineRange.splitToSingleLineRanges(in: snapshot)
112112

113113
let tokens = ranges.map {

Sources/SourceKitLSP/Swift/SwiftLanguageService.swift

Lines changed: 4 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,9 @@ 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(utf8Offset: $0.range.lowerBound.utf8Offset)..<AbsolutePosition(utf8Offset: $0.range.lowerBound.utf8Offset + $0.range.length.utf8Length),
559+
replacement: $0.replacement
561560
)
562561
}
563562
)

0 commit comments

Comments
 (0)