@@ -16,6 +16,10 @@ extension AppDelegate {
1616 . init( " accessibilitAPIPermissionMenuItem " )
1717 }
1818
19+ fileprivate var sourceEditorDebugMenu : NSUserInterfaceItemIdentifier {
20+ . init( " sourceEditorDebugMenu " )
21+ }
22+
1923 @objc func buildStatusBarMenu( ) {
2024 let statusBar = NSStatusBar . system
2125 statusBarItem = statusBar. statusItem (
@@ -122,6 +126,17 @@ extension AppDelegate: NSMenuDelegate {
122126 . append ( . text( " Active Workspace: \( inspector. activeWorkspaceURL? . path ?? " N/A " ) " ) )
123127 menu. items
124128 . append ( . text( " Active Document: \( inspector. activeDocumentURL? . path ?? " N/A " ) " ) )
129+
130+ if let sourceEditor = inspector. focusedEditor {
131+ menu. items. append ( . text(
132+ " Active Source Editor: \( sourceEditor. element. isSourceEditor ? " Found " : " Error " ) "
133+ ) )
134+ } else {
135+ menu. items. append ( . text( " Active Source Editor: N/A " ) )
136+ }
137+
138+ menu. items. append ( . separator( ) )
139+
125140 for xcode in inspector. xcodes {
126141 let item = NSMenuItem (
127142 title: " Xcode \( xcode. runningApplication. processIdentifier) " ,
@@ -161,12 +176,27 @@ extension AppDelegate: NSMenuDelegate {
161176 }
162177 }
163178 }
179+
180+ menu. items. append ( . separator( ) )
181+
182+ menu. items. append ( NSMenuItem (
183+ title: " Restart Xcode Inspector " ,
184+ action: #selector( restartXcodeInspector) ,
185+ keyEquivalent: " "
186+ ) )
187+
164188 default :
165189 break
166190 }
167191 }
168192}
169193
194+ private extension AppDelegate {
195+ @objc func restartXcodeInspector( ) {
196+ XcodeInspector . shared. restart ( cleanUp: true )
197+ }
198+ }
199+
170200private extension NSMenuItem {
171201 static func text( _ text: String ) -> NSMenuItem {
172202 let item = NSMenuItem (
0 commit comments