Skip to content

Commit c5699fb

Browse files
committed
Fix deprecated ByteSourceRange
1 parent a71b428 commit c5699fb

9 files changed

+30
-19
lines changed

Sources/SourceKitLSP/Rename.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,7 @@ extension SwiftLanguageService {
989989
}
990990

991991
if let startToken, let endToken {
992-
return snapshot.range(
992+
return snapshot.absolutePositionRange(
993993
of: startToken.positionAfterSkippingLeadingTrivia..<endToken.endPositionBeforeTrailingTrivia
994994
)
995995
}

Sources/SourceKitLSP/Swift/CodeActions/PackageManifestEdits.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ fileprivate extension PackageEditResult {
138138
// The edits to perform on the manifest itself.
139139
let manifestTextEdits = manifestEdits.map { edit in
140140
TextEdit(
141-
range: snapshot.range(of: edit.range),
141+
range: snapshot.absolutePositionRange(of: edit.range),
142142
newText: edit.replacement
143143
)
144144
}

Sources/SourceKitLSP/Swift/CodeActions/SyntaxRefactoringCodeActionProvider.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ extension SyntaxRefactoringCodeActionProvider where Self.Context == Void {
3636

3737
let textEdits = sourceEdits.compactMap { (edit) -> TextEdit? in
3838
let edit = TextEdit(
39-
range: scope.snapshot.range(of: edit.range),
39+
range: scope.snapshot.absolutePositionRange(of: edit.range),
4040
newText: edit.replacement
4141
)
4242
if edit.isNoOp(in: scope.snapshot) {

Sources/SourceKitLSP/Swift/Diagnostic.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ extension CodeAction {
6161
init?(_ fixIt: FixIt, in snapshot: DocumentSnapshot) {
6262
var textEdits = [TextEdit]()
6363
for edit in fixIt.edits {
64-
textEdits.append(TextEdit(range: snapshot.range(of: edit.range), newText: edit.replacement))
64+
textEdits.append(TextEdit(range: snapshot.absolutePositionRange(of: edit.range), newText: edit.replacement))
6565
}
6666

6767
self.init(
@@ -281,7 +281,7 @@ extension Diagnostic {
281281
var range = Range(snapshot.position(of: diag.position))
282282
for highlight in diag.highlights {
283283
let swiftSyntaxRange = highlight.positionAfterSkippingLeadingTrivia..<highlight.endPositionBeforeTrailingTrivia
284-
let highlightRange = snapshot.range(of: swiftSyntaxRange)
284+
let highlightRange = snapshot.absolutePositionRange(of: swiftSyntaxRange)
285285
if range.upperBound == highlightRange.lowerBound {
286286
range = range.lowerBound..<highlightRange.upperBound
287287
} else {
@@ -345,7 +345,7 @@ extension DiagnosticRelatedInformation {
345345
init(_ note: Note, in snapshot: DocumentSnapshot) {
346346
let nodeRange = note.node.positionAfterSkippingLeadingTrivia..<note.node.endPositionBeforeTrailingTrivia
347347
self.init(
348-
location: Location(uri: snapshot.uri, range: snapshot.range(of: nodeRange)),
348+
location: Location(uri: snapshot.uri, range: snapshot.absolutePositionRange(of: nodeRange)),
349349
message: note.message
350350
)
351351
}

Sources/SourceKitLSP/Swift/DocumentSymbols.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ fileprivate final class DocumentSymbolsFinder: SyntaxAnyVisitor {
7474
if !self.range.overlaps(range) {
7575
return .skipChildren
7676
}
77-
let positionRange = snapshot.range(of: range)
78-
let selectionPositionRange = snapshot.range(of: selection)
77+
let positionRange = snapshot.absolutePositionRange(of: range)
78+
let selectionPositionRange = snapshot.absolutePositionRange(of: selection)
7979

8080
// Record MARK comments on the node's leading and trailing trivia in `result` not as a child of `node`.
8181
visit(node.leadingTrivia, position: node.position)
@@ -141,7 +141,9 @@ fileprivate final class DocumentSymbolsFinder: SyntaxAnyVisitor {
141141
let trimmedComment = commentText.trimmingCharacters(in: CharacterSet(["/", "*"]).union(.whitespaces))
142142
if trimmedComment.starts(with: markPrefix) {
143143
let markText = trimmedComment.dropFirst(markPrefix.count)
144-
let range = snapshot.range(of: position..<position.advanced(by: piece.sourceLength.utf8Length))
144+
let range = snapshot.absolutePositionRange(
145+
of: position..<position.advanced(by: piece.sourceLength.utf8Length)
146+
)
145147
result.append(
146148
DocumentSymbol(
147149
name: String(markText),

Sources/SourceKitLSP/Swift/SemanticTokens.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ extension SwiftLanguageService {
5858
if let range = range.flatMap({ snapshot.byteSourceRange(of: $0) }) {
5959
range
6060
} else {
61-
ByteSourceRange(offset: 0, length: await tree.totalLength.utf8Length)
61+
await tree.range
6262
}
6363

6464
let tokens =
@@ -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.absolutePositionRange(of: self.range)
111111
let ranges = multiLineRange.splitToSingleLineRanges(in: snapshot)
112112

113113
let tokens = ranges.map {

Sources/SourceKitLSP/Swift/SwiftLanguageService.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ extension SwiftLanguageService {
690690

691691
result.append(
692692
ColorInformation(
693-
range: snapshot.range(of: node.position..<node.endPosition),
693+
range: snapshot.absolutePositionRange(of: node.position..<node.endPosition),
694694
color: Color(red: red, green: green, blue: blue, alpha: alpha)
695695
)
696696
)
@@ -1138,7 +1138,7 @@ extension DocumentSnapshot {
11381138
/// If the bounds of the range do not refer to a valid positions with in the snapshot, this function adjusts them to
11391139
/// the closest valid positions and logs a fault containing the file and line of the caller (from `callerFile` and
11401140
/// `callerLine`).
1141-
func range(
1141+
func absolutePositionRange(
11421142
of range: Range<AbsolutePosition>,
11431143
callerFile: StaticString = #fileID,
11441144
callerLine: UInt = #line
@@ -1169,9 +1169,12 @@ extension DocumentSnapshot {
11691169
of range: Range<Position>,
11701170
callerFile: StaticString = #fileID,
11711171
callerLine: UInt = #line
1172-
) -> ByteSourceRange {
1172+
) -> Range<AbsolutePosition> {
11731173
let utf8OffsetRange = utf8OffsetRange(of: range, callerFile: callerFile, callerLine: callerLine)
1174-
return ByteSourceRange(offset: utf8OffsetRange.startIndex, length: utf8OffsetRange.count)
1174+
return Range<AbsolutePosition>(
1175+
position: AbsolutePosition(utf8Offset: utf8OffsetRange.startIndex),
1176+
length: SourceLength(utf8Length: utf8OffsetRange.count)
1177+
)
11751178
}
11761179

11771180
// MARK: Position <-> RenameLocation

Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,9 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor {
248248
return .skipChildren
249249
}
250250

251-
let range = snapshot.range(of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia)
251+
let range = snapshot.absolutePositionRange(
252+
of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia
253+
)
252254
// Members won't be extensions since extensions will only be at the top level.
253255
let testItem = AnnotatedTestItem(
254256
testItem: TestItem(
@@ -306,7 +308,9 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor {
306308
let name =
307309
node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName.text):" }.joined() + ")"
308310

309-
let range = snapshot.range(of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia)
311+
let range = snapshot.absolutePositionRange(
312+
of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia
313+
)
310314
let testItem = AnnotatedTestItem(
311315
testItem: TestItem(
312316
id: (parentTypeNames + [name]).joined(separator: "/"),

Sources/SourceKitLSP/TestDiscovery.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ final class SyntacticSwiftXCTestScanner: SyntaxVisitor {
402402
// declarations are probably less common than helper functions that start with `test` and have a return type.
403403
return nil
404404
}
405-
let range = snapshot.range(
405+
let range = snapshot.absolutePositionRange(
406406
of: function.positionAfterSkippingLeadingTrivia..<function.endPositionBeforeTrailingTrivia
407407
)
408408

@@ -436,7 +436,9 @@ final class SyntacticSwiftXCTestScanner: SyntaxVisitor {
436436
// Don't report a test class if it doesn't contain any test methods.
437437
return .visitChildren
438438
}
439-
let range = snapshot.range(of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia)
439+
let range = snapshot.absolutePositionRange(
440+
of: node.positionAfterSkippingLeadingTrivia..<node.endPositionBeforeTrailingTrivia
441+
)
440442
let testItem = AnnotatedTestItem(
441443
testItem: TestItem(
442444
id: node.name.text,

0 commit comments

Comments
 (0)