Skip to content

Commit f709880

Browse files
committed
Add a button to reactivate observations to Xcode in the menu
1 parent 3fbf8ae commit f709880

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

ExtensionService/AppDelegate+Menu.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ extension AppDelegate {
8282
keyEquivalent: ""
8383
)
8484
quitItem.target = self
85+
86+
let reactivateObservationsItem = NSMenuItem(
87+
title: "Reactivate Observations to Xcode",
88+
action: #selector(reactivateObservationsToXcode),
89+
keyEquivalent: ""
90+
)
91+
92+
reactivateObservationsItem.target = self
8593

8694
statusBarMenu.addItem(copilotName)
8795
statusBarMenu.addItem(openCopilotForXcode)
@@ -91,6 +99,7 @@ extension AppDelegate {
9199
statusBarMenu.addItem(.separator())
92100
statusBarMenu.addItem(xcodeInspectorDebug)
93101
statusBarMenu.addItem(accessibilityAPIPermission)
102+
statusBarMenu.addItem(reactivateObservationsItem)
94103
statusBarMenu.addItem(quitItem)
95104

96105
statusBarMenu.delegate = self
@@ -211,6 +220,10 @@ private extension AppDelegate {
211220
@objc func restartXcodeInspector() {
212221
XcodeInspector.shared.restart(cleanUp: true)
213222
}
223+
224+
@objc func reactivateObservationsToXcode() {
225+
XcodeInspector.shared.reactivateObservationsToXcode()
226+
}
214227
}
215228

216229
private extension NSMenuItem {

Tool/Sources/XcodeInspector/XcodeInspector.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,15 @@ public final class XcodeInspector: ObservableObject {
227227
appChangeObservations.insert(appChangeTask)
228228
}
229229

230+
public func reactivateObservationsToXcode() {
231+
Task { @MainActor in
232+
if let activeXcode {
233+
setActiveXcode(activeXcode)
234+
activeXcode.observeAXNotifications()
235+
}
236+
}
237+
}
238+
230239
@MainActor
231240
private func setActiveXcode(_ xcode: XcodeAppInstanceInspector) {
232241
previousActiveApplication = activeApplication
@@ -257,13 +266,11 @@ public final class XcodeInspector: ObservableObject {
257266
} else if let element = focusedElement,
258267
let editorElement = element.firstParent(where: \.isSourceEditor)
259268
{
260-
Logger.service.debug("Focused on child of source editor.")
261269
focusedEditor = .init(
262270
runningApplication: xcode.runningApplication,
263271
element: editorElement
264272
)
265273
} else {
266-
Logger.service.debug("No source editor found.")
267274
focusedEditor = nil
268275
}
269276
}
@@ -272,7 +279,6 @@ public final class XcodeInspector: ObservableObject {
272279
let focusedElementChanged = Task { @MainActor in
273280
for await notification in xcode.axNotifications {
274281
if notification.kind == .focusedUIElementChanged {
275-
Logger.service.debug("Update focused element")
276282
try Task.checkCancellation()
277283
setFocusedElement()
278284
}

0 commit comments

Comments
 (0)