File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,8 @@ import AppKit
22import Foundation
33import Preferences
44import XcodeInspector
5+ import Dependencies
6+ import Workspace
57
68extension AppDelegate {
79 fileprivate var statusBarMenuIdentifier : NSUserInterfaceItemIdentifier {
@@ -95,6 +97,12 @@ extension AppDelegate {
9597 action: #selector( reactivateObservationsToXcode) ,
9698 keyEquivalent: " "
9799 )
100+
101+ let resetWorkspacesItem = NSMenuItem (
102+ title: " Reset workspaces " ,
103+ action: #selector( destroyWorkspacePool) ,
104+ keyEquivalent: " "
105+ )
98106
99107 reactivateObservationsItem. target = self
100108
@@ -108,6 +116,7 @@ extension AppDelegate {
108116 statusBarMenu. addItem ( xcodeInspectorDebug)
109117 statusBarMenu. addItem ( accessibilityAPIPermission)
110118 statusBarMenu. addItem ( reactivateObservationsItem)
119+ statusBarMenu. addItem ( resetWorkspacesItem)
111120 statusBarMenu. addItem ( quitItem)
112121
113122 statusBarMenu. delegate = self
@@ -248,6 +257,13 @@ private extension AppDelegate {
248257 )
249258 }
250259 }
260+
261+ @objc func destroyWorkspacePool( ) {
262+ @Dependency ( \. workspacePool) var workspacePool : WorkspacePool
263+ Task {
264+ await workspacePool. destroy ( )
265+ }
266+ }
251267}
252268
253269private extension NSMenuItem {
Original file line number Diff line number Diff line change @@ -68,6 +68,11 @@ public class WorkspacePool {
6868 }
6969 return nil
7070 }
71+
72+ @WorkspaceActor
73+ public func destroy( ) {
74+ workspaces = [ : ]
75+ }
7176
7277 @WorkspaceActor
7378 public func fetchOrCreateWorkspace( workspaceURL: URL ) async throws -> Workspace {
You can’t perform that action at this time.
0 commit comments