Skip to content

Commit ca8f7e9

Browse files
committed
Fix opened files
1 parent 3505d0d commit ca8f7e9

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

CodeEdit/Breadcrumbs/BreadcrumbsView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ struct BreadcrumbsView: View {
5656
private func fileInfo(_ file: WorkspaceClient.FileItem) {
5757
self.fileItems = []
5858
var currentFile: WorkspaceClient.FileItem? = file
59-
while currentFile != nil {
60-
self.fileItems.insert(currentFile!, at: 0)
61-
currentFile = currentFile!.parent
59+
while let currentFileLoop = currentFile {
60+
self.fileItems.insert(currentFileLoop, at: 0)
61+
currentFile = currentFileLoop.parent
6262
}
6363
}
6464
}

CodeEdit/Documents/WorkspaceDocument.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ class WorkspaceDocument: NSDocument, ObservableObject, NSToolbarDelegate {
138138
let state = try JSONDecoder().decode(WorkspaceSelectionState.self,
139139
from: Data(contentsOf: selectionStateFile))
140140
self.selectionState.fileItems = state.fileItems
141-
state.openFileItems.forEach { item in
141+
state.openFileItems
142+
.compactMap { try? workspaceClient?.getFileItem($0.id) }
143+
.forEach { item in
142144
self.openFile(item: item)
143145
}
144146
self.selectionState.selectedId = state.selectedId

CodeEditModules/Modules/WorkspaceClient/src/Model/FileItem.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public extension WorkspaceClient {
1313
case id
1414
case url
1515
case children
16-
case parent
1716
}
1817

1918
class FileItem: Hashable, Identifiable, Comparable, Codable {
@@ -146,10 +145,14 @@ public extension WorkspaceClient {
146145
}
147146
}
148147

148+
// MARK: Hashable
149149
public func hash(into hasher: inout Hasher) {
150150
hasher.combine(id)
151+
hasher.combine(url)
152+
hasher.combine(children)
151153
}
152154

155+
// MARK: Codable
153156
public func encode(to encoder: Encoder) throws {
154157
var container = encoder.container(keyedBy: FileItemCodingKeys.self)
155158
try container.encode(id, forKey: .id)
@@ -161,7 +164,7 @@ public extension WorkspaceClient {
161164
let values = try decoder.container(keyedBy: FileItemCodingKeys.self)
162165
id = try values.decode(String.self, forKey: .id)
163166
url = try values.decode(URL.self, forKey: .url)
164-
children = try values.decode([FileItem].self, forKey: .children)
167+
children = try values.decode([FileItem]?.self, forKey: .children)
165168
}
166169
}
167170
}

0 commit comments

Comments
 (0)