Connect to several servers, one coloured window each

This commit is contained in:
Ian Gulliver
2026-10-18 20:58:56 -07:00
parent c0b2f38584
commit 4347d4e9e4
15 changed files with 456 additions and 209 deletions
+13 -11
View File
@@ -22,11 +22,10 @@ private let emptyText: [ChangeMode: String] = [
.step: "This step changed nothing.",
]
@MainActor
private enum ChangesMemory {
static var open: Set<String> = []
static var range = ChangeMode.main
static var pinRange = ChangeMode.step
struct ChangesMemory {
var open: Set<String> = []
var range = ChangeMode.main
var pinRange = ChangeMode.step
}
func untilCancelled() async {
@@ -43,9 +42,9 @@ final class ChangesModel {
private(set) var changes: TaskChanges?
private(set) var error = ""
private(set) var diffs: [String: Result<String, ApiError>] = [:]
private(set) var open = ChangesMemory.open
private(set) var range = ChangesMemory.range
private(set) var pinRange = ChangesMemory.pinRange
private(set) var open: Set<String>
private(set) var range: ChangeMode
private(set) var pinRange: ChangeMode
@ObservationIgnored private var loading = false
@ObservationIgnored private var again = false
@ObservationIgnored private var timer: Task<Void, Never>?
@@ -56,6 +55,9 @@ final class ChangesModel {
init(_ store: Store, compact: Bool) {
self.store = store
self.compact = compact
open = store.changesMemory.open
range = store.changesMemory.range
pinRange = store.changesMemory.pinRange
}
var pinned: Int? {
@@ -161,7 +163,7 @@ final class ChangesModel {
return
}
range = r
ChangesMemory.range = r
store.changesMemory.range = r
retarget()
}
@@ -170,7 +172,7 @@ final class ChangesModel {
return
}
pinRange = r
ChangesMemory.pinRange = r
store.changesMemory.pinRange = r
retarget()
}
@@ -180,7 +182,7 @@ final class ChangesModel {
} else {
open.remove(path)
}
ChangesMemory.open = open
store.changesMemory.open = open
}
func shows(_ a: LineAnchor) -> Bool {