InputHandler // Skip UOM observation when inline-rotating candidates.

This commit is contained in:
ShikiSuen 2022-12-15 12:51:11 +08:00
parent 6734bc49c5
commit f9c79d06b4
2 changed files with 19 additions and 4 deletions

View File

@ -33,7 +33,9 @@ public protocol InputHandlerProtocol {
func generateStateOfCandidates() -> IMEStateProtocol
func generateStateOfInputting(sansReading: Bool) -> IMEStateProtocol
func generateStateOfAssociates(withPair pair: Megrez.Compositor.KeyValuePaired) -> IMEStateProtocol
func consolidateNode(candidate: ([String], String), respectCursorPushing: Bool, preConsolidate: Bool)
func consolidateNode(
candidate: ([String], String), respectCursorPushing: Bool, preConsolidate: Bool, skipObservation: Bool
)
func updateUnigramData() -> Bool
}
@ -41,6 +43,13 @@ extension InputHandlerProtocol {
func generateStateOfInputting(sansReading: Bool = false) -> IMEStateProtocol {
generateStateOfInputting(sansReading: sansReading)
}
func consolidateNode(candidate: ([String], String), respectCursorPushing: Bool, preConsolidate: Bool) {
consolidateNode(
candidate: candidate, respectCursorPushing: respectCursorPushing,
preConsolidate: preConsolidate, skipObservation: false
)
}
}
// MARK: - (Delegate).
@ -242,8 +251,10 @@ public class InputHandler: InputHandlerProtocol {
/// - value:
/// - respectCursorPushing: true
/// - preConsolidate:
/// - skipObservation:
public func consolidateNode(
candidate: ([String], String), respectCursorPushing: Bool = true, preConsolidate: Bool = false
candidate: ([String], String), respectCursorPushing: Bool = true,
preConsolidate: Bool = false, skipObservation: Bool = false
) {
let theCandidate: Megrez.Compositor.KeyValuePaired = .init(keyArray: candidate.0, value: candidate.1)
@ -262,7 +273,8 @@ public class InputHandler: InputHandlerProtocol {
let currentNode = currentWalk.findNode(at: cursorForCandidate, target: &accumulatedCursor)
guard let currentNode = currentNode else { return }
if currentNode.currentUnigram.score > -12, prefs.fetchSuggestionsFromUserOverrideModel {
uom: if currentNode.currentUnigram.score > -12, prefs.fetchSuggestionsFromUserOverrideModel {
if skipObservation { break uom }
vCLog("UOM: Start Observation.")
// 使
//

View File

@ -734,7 +734,10 @@ extension InputHandler {
}
if currentIndex >= candidates.count { currentIndex = 0 }
consolidateNode(candidate: candidates[currentIndex], respectCursorPushing: false, preConsolidate: false)
consolidateNode(
candidate: candidates[currentIndex], respectCursorPushing: false,
preConsolidate: false, skipObservation: true
)
delegate.switchState(generateStateOfInputting())
return true
}