Skip to content

Commit 82c93b4

Browse files
committed
Improve splitToSingleLineRanges
Omit empty tokens and remove `omittingEmptyRange` parameter, since we never used it.
1 parent f3dfa71 commit 82c93b4

File tree

2 files changed

+18
-28
lines changed

2 files changed

+18
-28
lines changed

Sources/SourceKitLSP/Swift/SyntaxHighlightingTokenParser.swift

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,8 @@ struct SyntaxHighlightingTokenParser {
205205

206206
extension Range where Bound == Position {
207207
/// Splits a potentially multi-line range to multiple single-line ranges.
208-
fileprivate func splitToSingleLineRanges(
209-
in snapshot: DocumentSnapshot,
210-
omittingEmptyRange: Bool = true
211-
) -> [Self] {
212-
if omittingEmptyRange && isEmpty {
208+
fileprivate func splitToSingleLineRanges(in snapshot: DocumentSnapshot) -> [Self] {
209+
if isEmpty {
213210
return []
214211
}
215212

@@ -238,13 +235,11 @@ extension Range where Bound == Position {
238235
)
239236
return start..<end
240237
}
238+
.filter { !$0.isEmpty }
241239
}
242240

243241
/// **Public for testing**
244-
public func _splitToSingleLineRanges(
245-
in snapshot: DocumentSnapshot,
246-
omittingEmptyRange: Bool = true
247-
) -> [Self] {
248-
splitToSingleLineRanges(in: snapshot, omittingEmptyRange: omittingEmptyRange)
242+
public func _splitToSingleLineRanges(in snapshot: DocumentSnapshot) -> [Self] {
243+
splitToSingleLineRanges(in: snapshot)
249244
}
250245
}

Tests/SourceKitLSPTests/SemanticTokensTests.swift

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -204,24 +204,19 @@ final class SemanticTokensTests: XCTestCase {
204204
}
205205

206206
let empty = Position(line: 0, utf16index: 1)..<Position(line: 0, utf16index: 1)
207-
XCTAssertEqual(empty._splitToSingleLineRanges(in: snapshot, omittingEmptyRange: true), [])
208-
XCTAssertEqual(empty._splitToSingleLineRanges(in: snapshot, omittingEmptyRange: false), [empty])
209-
210-
for omittingEmptyRange in [false, true] {
211-
let multiLine = Position(line: 1, utf16index: 6)..<Position(line: 2, utf16index: 7)
212-
XCTAssertEqual(multiLine._splitToSingleLineRanges(in: snapshot, omittingEmptyRange: omittingEmptyRange), [
213-
Position(line: 1, utf16index: 6)..<Position(line: 1, utf16index: 12),
214-
Position(line: 2, utf16index: 0)..<Position(line: 2, utf16index: 7),
215-
])
216-
217-
let emptyLines = Position(line: 2, utf16index: 14)..<Position(line: 5, utf16index: 1)
218-
XCTAssertEqual(emptyLines._splitToSingleLineRanges(in: snapshot, omittingEmptyRange: omittingEmptyRange), [
219-
Position(line: 2, utf16index: 14)..<Position(line: 2, utf16index: 15),
220-
Position(line: 3, utf16index: 0)..<Position(line: 3, utf16index: 0),
221-
Position(line: 4, utf16index: 0)..<Position(line: 4, utf16index: 0),
222-
Position(line: 5, utf16index: 0)..<Position(line: 5, utf16index: 1),
223-
])
224-
}
207+
XCTAssertEqual(empty._splitToSingleLineRanges(in: snapshot), [])
208+
209+
let multiLine = Position(line: 1, utf16index: 6)..<Position(line: 2, utf16index: 7)
210+
XCTAssertEqual(multiLine._splitToSingleLineRanges(in: snapshot), [
211+
Position(line: 1, utf16index: 6)..<Position(line: 1, utf16index: 12),
212+
Position(line: 2, utf16index: 0)..<Position(line: 2, utf16index: 7),
213+
])
214+
215+
let emptyLines = Position(line: 2, utf16index: 14)..<Position(line: 5, utf16index: 1)
216+
XCTAssertEqual(emptyLines._splitToSingleLineRanges(in: snapshot), [
217+
Position(line: 2, utf16index: 14)..<Position(line: 2, utf16index: 15),
218+
Position(line: 5, utf16index: 0)..<Position(line: 5, utf16index: 1),
219+
])
225220
}
226221

227222
func testEmpty() {

0 commit comments

Comments
 (0)