File tree Expand file tree Collapse file tree 9 files changed +27
-27
lines changed
Sources/CodeEditSourceEditor
Tests/CodeEditSourceEditorTests/Highlighting Expand file tree Collapse file tree 9 files changed +27
-27
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ import OSLog
1717///
1818/// This class manages multiple objects that help perform this task:
1919/// - ``StyledRangeContainer``
20- /// - ``StyledRangeStore ``
20+ /// - ``RangeStore ``
2121/// - ``VisibleRangeProvider``
2222/// - ``HighlightProviderState``
2323///
@@ -35,7 +35,7 @@ import OSLog
3535/// | Queries coalesced styles
3636/// v
3737/// +-------------------------------+ +-----------------------------+
38- /// | StyledRangeContainer | ------> | StyledRangeStore [] |
38+ /// | StyledRangeContainer | ------> | RangeStore [] |
3939/// | | | | Stores styles for one provider
4040/// | - manages combined ranges | | - stores raw ranges & |
4141/// | - layers highlight styles | | captures |
Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ class StyledRangeContainer {
4545 }
4646 }
4747
48- var _storage : [ ProviderID : StyledRangeStore < StyleElement > ] = [ : ]
48+ var _storage : [ ProviderID : RangeStore < StyleElement > ] = [ : ]
4949 weak var delegate : StyledRangeContainerDelegate ?
5050
5151 /// Initialize the container with a list of provider identifiers. Each provider is given an id, they should be
@@ -55,13 +55,13 @@ class StyledRangeContainer {
5555 /// - providers: An array of identifiers given to providers.
5656 init ( documentLength: Int , providers: [ ProviderID ] ) {
5757 for provider in providers {
58- _storage [ provider] = StyledRangeStore < StyleElement > ( documentLength: documentLength)
58+ _storage [ provider] = RangeStore < StyleElement > ( documentLength: documentLength)
5959 }
6060 }
6161
6262 func addProvider( _ id: ProviderID , documentLength: Int ) {
6363 assert ( !_storage. keys. contains ( id) , " Provider already exists " )
64- _storage [ id] = StyledRangeStore < StyleElement > ( documentLength: documentLength)
64+ _storage [ id] = RangeStore < StyleElement > ( documentLength: documentLength)
6565 }
6666
6767 func removeProvider( _ id: ProviderID ) {
Original file line number Diff line number Diff line change 11//
2- // StyledRangeStore +Internals.swift
2+ // RangeStore +Internals.swift
33// CodeEditSourceEditor
44//
55// Created by Khan Winter on 10/25/24
66//
77
88import _RopeModule
99
10- extension StyledRangeStore {
10+ extension RangeStore {
1111 /// Coalesce items before and after the given range.
1212 ///
1313 /// Compares the next run with the run at the given range. If they're the same, removes the next run and grows the
Original file line number Diff line number Diff line change 11//
2- // StyledRangeStore +FindIndex.swift
2+ // RangeStore +FindIndex.swift
33// CodeEditSourceEditor
44//
55// Created by Khan Winter on 1/6/25.
66//
77
8- extension StyledRangeStore {
8+ extension RangeStore {
99 /// Finds a Rope index, given a string offset.
1010 /// - Parameter offset: The offset to query for.
1111 /// - Returns: The index of the containing element in the rope.
Original file line number Diff line number Diff line change 11//
2- // StyledRangeStore +OffsetMetric.swift
2+ // RangeStore +OffsetMetric.swift
33// CodeEditSourceEditor
44//
55// Created by Khan Winter on 10/25/24
66//
77
88import _RopeModule
99
10- extension StyledRangeStore {
10+ extension RangeStore {
1111 struct OffsetMetric : RopeMetric {
1212 typealias Element = StyledRun
1313
14- func size( of summary: StyledRangeStore . StyledRun . Summary ) -> Int {
14+ func size( of summary: RangeStore . StyledRun . Summary ) -> Int {
1515 summary. length
1616 }
1717
18- func index( at offset: Int , in element: StyledRangeStore . StyledRun ) -> Int {
18+ func index( at offset: Int , in element: RangeStore . StyledRun ) -> Int {
1919 return offset
2020 }
2121 }
Original file line number Diff line number Diff line change 11//
2- // StyledRangeStore +StyledRun.swift
2+ // RangeStore +StyledRun.swift
33// CodeEditSourceEditor
44//
55// Created by Khan Winter on 10/25/24
66
77import _RopeModule
88
9- extension StyledRangeStore {
9+ extension RangeStore {
1010 struct StyledRun {
1111 var length : Int
1212 let value : Element ?
@@ -32,7 +32,7 @@ extension StyledRangeStore {
3232 }
3333}
3434
35- extension StyledRangeStore . StyledRun : RopeElement {
35+ extension RangeStore . StyledRun : RopeElement {
3636 typealias Index = Int
3737
3838 var summary : Summary { Summary ( length: length) }
@@ -63,28 +63,28 @@ extension StyledRangeStore.StyledRun: RopeElement {
6363 }
6464}
6565
66- extension StyledRangeStore . StyledRun {
66+ extension RangeStore . StyledRun {
6767 struct Summary {
6868 var length : Int
6969 }
7070}
7171
72- extension StyledRangeStore . StyledRun . Summary : RopeSummary {
72+ extension RangeStore . StyledRun . Summary : RopeSummary {
7373 // FIXME: This is entirely arbitrary. Benchmark this.
7474 @inline ( __always)
7575 static var maxNodeSize : Int { 10 }
7676
7777 @inline ( __always)
78- static var zero : StyledRangeStore . StyledRun . Summary { Self ( length: 0 ) }
78+ static var zero : RangeStore . StyledRun . Summary { Self ( length: 0 ) }
7979
8080 @inline ( __always)
8181 var isZero : Bool { length == 0 }
8282
83- mutating func add( _ other: StyledRangeStore . StyledRun . Summary ) {
83+ mutating func add( _ other: RangeStore . StyledRun . Summary ) {
8484 length += other. length
8585 }
8686
87- mutating func subtract( _ other: StyledRangeStore . StyledRun . Summary ) {
87+ mutating func subtract( _ other: RangeStore . StyledRun . Summary ) {
8888 length -= other. length
8989 }
9090}
Original file line number Diff line number Diff line change 11//
2- // StyledRangeStore .swift
2+ // RangeStore .swift
33// CodeEditSourceEditor
44//
55// Created by Khan Winter on 10/24/24
66//
77
88import _RopeModule
99
10- /// StyledRangeStore is a container type that allows for setting and querying captures and modifiers for syntax
10+ /// RangeStore is a container type that allows for setting and querying captures and modifiers for syntax
1111/// highlighting. The container reflects a text document in that its length needs to be kept up-to-date.
1212///
1313/// Internally this class uses a `Rope` from the swift-collections package, allowing for efficient updates and
1414/// retrievals.
15- struct StyledRangeStore < Element: StyledRangeStoreElement > : Sendable {
15+ struct RangeStore < Element: StyledRangeStoreElement > : Sendable {
1616 typealias Run = StyledRangeStoreRun < Element >
1717 typealias RopeType = Rope < StyledRun >
1818 typealias Index = RopeType . Index
@@ -93,7 +93,7 @@ struct StyledRangeStore<Element: StyledRangeStoreElement>: Sendable {
9393
9494// MARK: - Storage Sync
9595
96- extension StyledRangeStore {
96+ extension RangeStore {
9797 /// Handles keeping the internal storage in sync with the document.
9898 mutating func storageUpdated( replacedCharactersIn range: Range < Int > , withCount newLength: Int ) {
9999 assert ( range. lowerBound >= 0 , " Negative lowerBound " )
File renamed without changes.
Original file line number Diff line number Diff line change 11import XCTest
22@testable import CodeEditSourceEditor
33
4- extension StyledRangeStore {
4+ extension RangeStore {
55 var length : Int { _guts. summary. length }
66 var count : Int { _guts. count }
77}
88
99final class StyledRangeStoreTests : XCTestCase {
10- typealias Store = StyledRangeStore < StyledRangeContainer . StyleElement >
10+ typealias Store = RangeStore < StyledRangeContainer . StyleElement >
1111
1212 override var continueAfterFailure : Bool {
1313 get { false }
You can’t perform that action at this time.
0 commit comments