Skip to content

Commit 3f8bf0b

Browse files
authored
Merge pull request #143 from azooKey/feat/add_forget_memory
feat: 「この候補の学習をリセット」機能を導入
2 parents 4eba48c + dbbab7a commit 3f8bf0b

7 files changed

Lines changed: 25 additions & 5 deletions

File tree

Core/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ let package = Package(
1414
),
1515
],
1616
dependencies: [
17-
.package(url: "https://github.com/azooKey/AzooKeyKanaKanjiConverter", from: "0.8.0", traits: ["Zenzai"]),
17+
.package(url: "https://github.com/azooKey/AzooKeyKanaKanjiConverter", revision: "a6e35f91acd873a579ee76211988de573b7bed53", traits: ["Zenzai"]),
1818
],
1919
targets: [
2020
.executableTarget(

Core/Sources/Core/InputUtils/Actions/ClientAction.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public enum ClientAction {
4040
case enableDebugWindow
4141
case disableDebugWindow
4242

43+
/// 学習のリセット
44+
case forgetMemory
45+
4346
// Fnキーでの変換
4447
case submitKatakanaCandidate
4548
case submitHiraganaCandidate

Core/Sources/Core/InputUtils/Actions/UserAction.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public enum UserAction {
1313
case number(Number)
1414
case editSegment(Int)
1515
case suggest
16+
case forget
1617

1718
public enum NavigationDirection: Sendable, Equatable, Hashable {
1819
case up, down, right, left

Core/Sources/Core/InputUtils/InputState.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public enum InputState: Sendable, Hashable {
8383
} else {
8484
return (.fallthrough, .fallthrough)
8585
}
86-
case .unknown, .navigation, .backspace, .enter, .escape, .function, .editSegment, .tab:
86+
case .unknown, .navigation, .backspace, .enter, .escape, .function, .editSegment, .tab, .forget:
8787
return (.fallthrough, .fallthrough)
8888
}
8989
case .composing:
@@ -136,7 +136,7 @@ public enum InputState: Sendable, Hashable {
136136
} else {
137137
return (.fallthrough, .fallthrough)
138138
}
139-
case .unknown, .tab:
139+
case .forget, .unknown, .tab:
140140
return (.fallthrough, .fallthrough)
141141
}
142142
case .previewing:
@@ -179,7 +179,7 @@ public enum InputState: Sendable, Hashable {
179179
}
180180
case .editSegment(let count):
181181
return (.editSegment(count), .transition(.selecting))
182-
case .unknown, .suggest, .tab:
182+
case .unknown, .suggest, .tab, .forget:
183183
return (.fallthrough, .fallthrough)
184184
}
185185
case .selecting:
@@ -242,6 +242,8 @@ public enum InputState: Sendable, Hashable {
242242
}
243243
case .editSegment(let count):
244244
return (.editSegment(count), .transition(.selecting))
245+
case .forget:
246+
return (.forgetMemory, .fallthrough)
245247
case .かな:
246248
return (.consume, .fallthrough)
247249
case .英数:

azooKeyMac/InputController/SegmentsManager.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,14 @@ final class SegmentsManager {
247247
self.updateRawCandidate()
248248
}
249249

250+
@MainActor
251+
func forgetMemory() {
252+
if let selectedCandidate {
253+
self.kanaKanjiConverter.sendToDicdataStore(.forgetMemory(selectedCandidate))
254+
self.appendDebugMessage("\(#function): forget \(selectedCandidate.data.map {$0.word})")
255+
}
256+
}
257+
250258
private var candidates: [Candidate]? {
251259
if let rawCandidates {
252260
if !self.didExperienceSegmentEdition {

azooKeyMac/InputController/UserAction+getUserAction.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ extension UserAction {
114114
return .space(prefersFullWidthWhenInput: false)
115115
}
116116
case 51: // Delete
117-
return .backspace
117+
if event.modifierFlags.contains(.control) {
118+
return .forget
119+
} else {
120+
return .backspace
121+
}
118122
case 53: // Escape
119123
return .escape
120124
case 93: // Yen

azooKeyMac/InputController/azooKeyMacInputController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ class azooKeyMacInputController: IMKInputController { // swiftlint:disable:this
230230
self.segmentsManager.requestDebugWindowMode(enabled: false)
231231
case .stopComposition:
232232
self.segmentsManager.stopComposition()
233+
case .forgetMemory:
234+
self.segmentsManager.forgetMemory()
233235
case .selectInputLanguage(let language):
234236
self.inputLanguage = language
235237
self.switchInputLanguage(language, client: client)

0 commit comments

Comments
 (0)