Skip to content

Commit 8cc55b4

Browse files
committed
fix: refactor to remove NSEvent from InputState.swift
1 parent dd5c032 commit 8cc55b4

File tree

2 files changed

+45
-21
lines changed

2 files changed

+45
-21
lines changed

Core/Sources/Core/InputUtils/InputState.swift

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import InputMethodKit
1+
import Foundation
22
import KanaKanjiConverterModule
33

44
public enum InputState: Sendable, Hashable {
@@ -10,29 +10,18 @@ public enum InputState: Sendable, Hashable {
1010
case replaceSuggestion
1111
case unicodeInput(String)
1212

13+
public enum ModifierFlag: Sendable, Equatable, Hashable {
14+
case option
15+
case control
16+
case command
17+
case shift
18+
}
19+
1320
public struct EventCore: Sendable, Equatable {
14-
public init(modifierFlags: NSEvent.ModifierFlags) {
21+
public init(modifierFlags: [ModifierFlag]) {
1522
self.modifierFlags = modifierFlags
1623
}
17-
var modifierFlags: NSEvent.ModifierFlags
18-
}
19-
20-
public func event( // swiftlint:disable:this function_parameter_count
21-
_ event: NSEvent!,
22-
userAction: UserAction,
23-
inputLanguage: InputLanguage,
24-
liveConversionEnabled: Bool,
25-
enableDebugWindow: Bool,
26-
enableSuggestion: Bool
27-
) -> (ClientAction, ClientActionCallback) {
28-
self.event(
29-
eventCore: EventCore(modifierFlags: event.modifierFlags),
30-
userAction: userAction,
31-
inputLanguage: inputLanguage,
32-
liveConversionEnabled: liveConversionEnabled,
33-
enableDebugWindow: enableDebugWindow,
34-
enableSuggestion: enableSuggestion
35-
)
24+
var modifierFlags: [ModifierFlag]
3625
}
3726

3827
// この種のコードは複雑にしかならないので、lintを無効にする
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import Cocoa
2+
import Core
3+
4+
extension InputState {
5+
public func event( // swiftlint:disable:this function_parameter_count
6+
_ event: NSEvent!,
7+
userAction: UserAction,
8+
inputLanguage: InputLanguage,
9+
liveConversionEnabled: Bool,
10+
enableDebugWindow: Bool,
11+
enableSuggestion: Bool
12+
) -> (ClientAction, ClientActionCallback) {
13+
var modifierFlags: [InputState.ModifierFlag] = []
14+
if event.modifierFlags.contains(.shift) {
15+
modifierFlags.append(.shift)
16+
}
17+
if event.modifierFlags.contains(.control) {
18+
modifierFlags.append(.control)
19+
}
20+
if event.modifierFlags.contains(.command) {
21+
modifierFlags.append(.command)
22+
}
23+
if event.modifierFlags.contains(.option) {
24+
modifierFlags.append(.option)
25+
}
26+
return self.event(
27+
eventCore: EventCore(modifierFlags: modifierFlags),
28+
userAction: userAction,
29+
inputLanguage: inputLanguage,
30+
liveConversionEnabled: liveConversionEnabled,
31+
enableDebugWindow: enableDebugWindow,
32+
enableSuggestion: enableSuggestion
33+
)
34+
}
35+
}

0 commit comments

Comments
 (0)