Skip to content

Commit 2c3c58f

Browse files
committed
Simplify KeyBindingManager initialization
1 parent 785d84f commit 2c3c58f

4 files changed

Lines changed: 16 additions & 35 deletions

File tree

Core/Package.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,12 +329,14 @@ let package = Package(
329329
.target(
330330
name: "KeyBindingManager",
331331
dependencies: [
332+
.product(name: "CommandHandler", package: "Tool"),
332333
.product(name: "Workspace", package: "Tool"),
333334
.product(name: "Preferences", package: "Tool"),
334335
.product(name: "Logger", package: "Tool"),
335-
.product(name: "CGEventOverride", package: "CGEventOverride"),
336336
.product(name: "AppMonitoring", package: "Tool"),
337337
.product(name: "UserDefaultsObserver", package: "Tool"),
338+
.product(name: "CGEventOverride", package: "CGEventOverride"),
339+
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
338340
]
339341
),
340342
.testTarget(

Core/Sources/KeyBindingManager/KeyBindingManager.swift

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
import Foundation
22
import Workspace
33

4+
45
public final class KeyBindingManager {
56
let tabToAcceptSuggestion: TabToAcceptSuggestion
67

7-
public init(
8-
workspacePool: WorkspacePool,
9-
acceptSuggestion: @escaping () -> Void,
10-
dismissSuggestion: @escaping () -> Void
11-
) {
12-
tabToAcceptSuggestion = .init(
13-
workspacePool: workspacePool,
14-
acceptSuggestion: acceptSuggestion,
15-
dismissSuggestion: dismissSuggestion
16-
)
8+
public init() {
9+
tabToAcceptSuggestion = .init()
1710
}
1811

1912
public func start() {

Core/Sources/KeyBindingManager/TabToAcceptSuggestion.swift

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import ActiveApplicationMonitor
22
import AppKit
33
import CGEventOverride
4+
import CommandHandler
5+
import Dependencies
46
import Foundation
57
import Logger
68
import Preferences
@@ -14,9 +16,9 @@ final class TabToAcceptSuggestion {
1416
Logger.service.debug("TabToAcceptSuggestion: \(message)")
1517
}
1618

17-
let workspacePool: WorkspacePool
18-
let acceptSuggestion: () -> Void
19-
let dismissSuggestion: () -> Void
19+
@Dependency(\.workspacePool) var workspacePool
20+
@Dependency(\.commandHandler) var commandHandler
21+
2022
private var CGEventObservationTask: Task<Void, Error>?
2123
private var isObserving: Bool { CGEventObservationTask != nil }
2224
private let userDefaultsObserver = UserDefaultsObserver(
@@ -43,16 +45,9 @@ final class TabToAcceptSuggestion {
4345
stopObservation()
4446
}
4547

46-
init(
47-
workspacePool: WorkspacePool,
48-
acceptSuggestion: @escaping () -> Void,
49-
dismissSuggestion: @escaping () -> Void
50-
) {
48+
init() {
5149
_ = ThreadSafeAccessToXcodeInspector.shared
52-
self.workspacePool = workspacePool
53-
self.acceptSuggestion = acceptSuggestion
54-
self.dismissSuggestion = dismissSuggestion
55-
50+
5651
hook.add(
5752
.init(
5853
eventsOfInterest: [.keyDown],
@@ -193,7 +188,7 @@ final class TabToAcceptSuggestion {
193188
)
194189

195190
if shouldAcceptSuggestion {
196-
acceptSuggestion()
191+
Task { await commandHandler.acceptSuggestion() }
197192
return .discarded
198193
} else {
199194
return .unchanged
@@ -215,7 +210,7 @@ final class TabToAcceptSuggestion {
215210
filespace.presentingSuggestion != nil
216211
else { return .unchanged }
217212

218-
dismissSuggestion()
213+
Task { await commandHandler.dismissSuggestion() }
219214
return .discarded
220215
default:
221216
return .unchanged

Core/Sources/Service/Service.swift

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,7 @@ public final class Service {
5757
let guiController = GraphicalUserInterfaceController()
5858
self.guiController = guiController
5959
globalShortcutManager = .init(guiController: guiController)
60-
61-
keyBindingManager = .init(
62-
workspacePool: workspacePool,
63-
acceptSuggestion: {
64-
Task { await PseudoCommandHandler().acceptSuggestion() }
65-
},
66-
dismissSuggestion: {
67-
Task { await PseudoCommandHandler().dismissSuggestion() }
68-
}
69-
)
60+
keyBindingManager = .init()
7061

7162
#if canImport(ProService)
7263
proService = ProService()

0 commit comments

Comments
 (0)