Skip to content

Commit 1aa0803

Browse files
committed
Add Active Source Editor to menu bar app
1 parent 28ead25 commit 1aa0803

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

ExtensionService/AppDelegate+Menu.swift

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
170200
private extension NSMenuItem {
171201
static func text(_ text: String) -> NSMenuItem {
172202
let item = NSMenuItem(

0 commit comments

Comments
 (0)