Skip to content

Commit caae42c

Browse files
committed
Fix opened files
1 parent 4325890 commit caae42c

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

CodeEdit/Breadcrumbs/BreadcrumbsComponent.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ struct BreadcrumbsComponent: View {
6262
Text(fileItem.fileName)
6363
.foregroundStyle(.primary)
6464
.font(.system(size: 11))
65-
.fixedSize()
6665
}
6766
.onTapGesture {
6867
if let siblings = fileItem.parent?.children?.sortItems(foldersOnTop: true), !siblings.isEmpty {

CodeEdit/Breadcrumbs/BreadcrumbsView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ struct BreadcrumbsView: View {
5959
private func fileInfo(_ file: WorkspaceClient.FileItem) {
6060
self.fileItems = []
6161
var currentFile: WorkspaceClient.FileItem? = file
62-
while currentFile != nil {
63-
self.fileItems.insert(currentFile!, at: 0)
64-
currentFile = currentFile!.parent
62+
while let currentFileLoop = currentFile {
63+
self.fileItems.insert(currentFileLoop, at: 0)
64+
currentFile = currentFileLoop.parent
6565
}
6666
}
6767
}

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 {
@@ -158,10 +157,14 @@ public extension WorkspaceClient {
158157
}
159158
}
160159

160+
// MARK: Hashable
161161
public func hash(into hasher: inout Hasher) {
162162
hasher.combine(id)
163+
hasher.combine(url)
164+
hasher.combine(children)
163165
}
164166

167+
// MARK: Codable
165168
public func encode(to encoder: Encoder) throws {
166169
var container = encoder.container(keyedBy: FileItemCodingKeys.self)
167170
try container.encode(id, forKey: .id)
@@ -173,7 +176,7 @@ public extension WorkspaceClient {
173176
let values = try decoder.container(keyedBy: FileItemCodingKeys.self)
174177
id = try values.decode(String.self, forKey: .id)
175178
url = try values.decode(URL.self, forKey: .url)
176-
children = try values.decode([FileItem].self, forKey: .children)
179+
children = try values.decode([FileItem]?.self, forKey: .children)
177180
}
178181
}
179182
}

0 commit comments

Comments
 (0)