Skip to content

Commit a03221f

Browse files
committed
Support opening ExtensionManager from menu item
1 parent b1dddcc commit a03221f

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

ExtensionService/AppDelegate+Menu.swift

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ extension AppDelegate {
4646
keyEquivalent: ""
4747
)
4848

49+
let openExtensionManager = NSMenuItem(
50+
title: "Open Extension Manager",
51+
action: #selector(openExtensionManager),
52+
keyEquivalent: ""
53+
)
54+
4955
let openCopilotForXcode = NSMenuItem(
5056
title: "Open \(hostAppName)",
5157
action: #selector(openCopilotForXcode),
@@ -82,18 +88,19 @@ extension AppDelegate {
8288
keyEquivalent: ""
8389
)
8490
quitItem.target = self
85-
91+
8692
let reactivateObservationsItem = NSMenuItem(
8793
title: "Reactivate Observations to Xcode",
8894
action: #selector(reactivateObservationsToXcode),
8995
keyEquivalent: ""
9096
)
91-
97+
9298
reactivateObservationsItem.target = self
9399

94100
statusBarMenu.addItem(copilotName)
95101
statusBarMenu.addItem(openCopilotForXcode)
96102
statusBarMenu.addItem(checkForUpdate)
103+
statusBarMenu.addItem(openExtensionManager)
97104
statusBarMenu.addItem(.separator())
98105
statusBarMenu.addItem(openGlobalChat)
99106
statusBarMenu.addItem(.separator())
@@ -216,16 +223,28 @@ extension AppDelegate: NSMenuDelegate {
216223
}
217224
}
218225

226+
import XPCShared
227+
219228
private extension AppDelegate {
220229
@objc func restartXcodeInspector() {
221230
Task {
222231
await XcodeInspector.shared.restart(cleanUp: true)
223232
}
224233
}
225-
234+
226235
@objc func reactivateObservationsToXcode() {
227236
XcodeInspector.shared.reactivateObservationsToXcode()
228237
}
238+
239+
@objc func openExtensionManager() {
240+
guard let data = try? JSONEncoder().encode(ExtensionServiceRequests.OpenExtensionManager())
241+
else { return }
242+
service.handleXPCServiceRequests(
243+
endpoint: ExtensionServiceRequests.OpenExtensionManager.endpoint,
244+
requestBody: data,
245+
reply: { _, _ in }
246+
)
247+
}
229248
}
230249

231250
private extension NSMenuItem {

0 commit comments

Comments
 (0)