@@ -3,7 +3,6 @@ import AppKit
33import AsyncAlgorithms
44import AXExtension
55import AXNotificationStream
6- import CGEventObserver
76import Environment
87import Foundation
98import Logger
@@ -13,7 +12,6 @@ import Workspace
1312import XcodeInspector
1413
1514public actor RealtimeSuggestionController {
16- let eventObserver : CGEventObserverType = CGEventObserver ( eventsOfInterest: [ . keyDown] )
1715 private var task : Task < Void , Error > ?
1816 private var inflightPrefetchTask : Task < Void , Error > ?
1917 private var windowChangeObservationTask : Task < Void , Error > ?
@@ -29,7 +27,6 @@ public actor RealtimeSuggestionController {
2927 Task { [ weak self] in
3028 if let app = ActiveApplicationMonitor . shared. activeXcode {
3129 await self ? . handleXcodeChanged ( app)
32- await self ? . startHIDObservation ( )
3330 }
3431 var previousApp = ActiveApplicationMonitor . shared. activeXcode
3532 for await app in ActiveApplicationMonitor . shared. createStream ( ) {
@@ -40,32 +37,8 @@ public actor RealtimeSuggestionController {
4037 if let app = ActiveApplicationMonitor . shared. activeXcode, app != previousApp {
4138 await self . handleXcodeChanged ( app)
4239 }
43-
44- if ActiveApplicationMonitor . shared. activeXcode != nil {
45- await startHIDObservation ( )
46- } else {
47- await stopHIDObservation ( )
48- }
49- }
50- }
51- }
52-
53- private func startHIDObservation( ) {
54- if task == nil {
55- task = Task { [ weak self, eventObserver] in
56- for await event in eventObserver. createStream ( ) {
57- guard let self else { return }
58- await self . handleHIDEvent ( event: event)
59- }
6040 }
6141 }
62- eventObserver. activateIfPossible ( )
63- }
64-
65- private func stopHIDObservation( ) {
66- task? . cancel ( )
67- task = nil
68- eventObserver. deactivate ( )
6942 }
7043
7144 private func handleXcodeChanged( _ app: NSRunningApplication ) {
@@ -169,21 +142,6 @@ public actor RealtimeSuggestionController {
169142 }
170143 }
171144
172- func handleHIDEvent( event: CGEvent) async {
173- guard await Environment . isXcodeActive ( ) else { return }
174-
175- let keycode = Int ( event. getIntegerValueField ( . keyboardEventKeycode) )
176- let escape = 0x35
177-
178- // Escape should cancel in-flight tasks.
179- // Except that when the completion panel is presented, it should trigger prefetch instead.
180- if keycode == escape {
181- if event. type == . keyDown {
182- await cancelInFlightTasks ( )
183- }
184- }
185- }
186-
187145 func triggerPrefetchDebounced( force: Bool = false ) {
188146 inflightPrefetchTask = Task { @WorkspaceActor in
189147 try ? await Task . sleep ( nanoseconds: UInt64 ( (
0 commit comments