2.8.5 SP1 // Bug fixes. Merge PR#166 from upd/2.8.5sp1

This commit is contained in:
ShikiSuen 2022-10-02 17:33:23 +08:00 committed by GitHub
commit a8b6b350b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 49 additions and 16 deletions

View File

@ -151,9 +151,19 @@ extension vChewingLM.LMUserOverride {
}
}
// MARK: - Hash and Dehash the entire UOM data
// MARK: - Hash and Dehash the entire UOM data, etc.
extension vChewingLM.LMUserOverride {
public func bleachSpecifiedSuggestions(target: String, saveCallback: @escaping () -> Void) {
for neta in mutLRUMap {
if neta.value.observation.overrides.keys.contains(target) {
mutLRUMap.removeValue(forKey: neta.key)
}
}
resetMRUList()
saveCallback()
}
/// LRU
public func bleachUnigrams(saveCallback: @escaping () -> Void) {
for key in mutLRUMap.keys {

View File

@ -43,12 +43,11 @@ extension Megrez {
extension Array where Element == Megrez.Unigram {
///
///
public mutating func consolidate(filter theFilter: Set<String> = .init()) {
var inserted: [String: Double] = [:]
var insertedArray: [Megrez.Unigram] = []
for neta in filter({ !theFilter.contains($0.value) }) {
if let existed = inserted[neta.value], existed >= neta.score { continue }
if inserted.keys.contains(neta.value) { continue }
inserted[neta.value] = neta.score
insertedArray.append(neta)
}

View File

@ -56,6 +56,7 @@ public protocol StateDataProtocol {
var attributedStringNormal: NSAttributedString { get }
var attributedStringMarking: NSAttributedString { get }
var attributedStringPlaceholder: NSAttributedString { get }
var userPhraseKVPair: (String, String) { get }
var userPhraseDumped: String { get }
var userPhraseDumpedConverted: String { get }
var doesUserPhraseExist: Bool { get }

View File

@ -62,7 +62,7 @@ extension KeyHandler {
composer.receiveKey(fromString: input.text)
keyConsumedByReading = true
// 調 updateClientdisplayedText() return true
// 調 setInlineDisplayWithCursor() return true
// 調
if !composer.hasToneMarker() {
stateCallback(buildInputtingState)
@ -119,7 +119,7 @@ extension KeyHandler {
//
composer.clear()
// updateClientdisplayedText()
// setInlineDisplayWithCursor()
var inputting = buildInputtingState
inputting.textToCommit = textToCommit
stateCallback(inputting)
@ -151,7 +151,7 @@ extension KeyHandler {
/// 調
if keyConsumedByReading {
// updateClientdisplayedText()
// setInlineDisplayWithCursor()
stateCallback(buildInputtingState)
return true
}

View File

@ -610,6 +610,17 @@ public enum LMMgr {
group.notify(queue: DispatchQueue.main) {}
}
public static func bleachSpecifiedSuggestions(target: String, mode: Shared.InputMode) {
switch mode {
case .imeModeCHS:
Self.uomCHT.bleachSpecifiedSuggestions(target: target, saveCallback: { Self.uomCHT.saveData() })
case .imeModeCHT:
Self.uomCHS.bleachSpecifiedSuggestions(target: target, saveCallback: { Self.uomCHS.saveData() })
case .imeModeNULL:
break
}
}
public static func removeUnigramsFromUserOverrideModel(_ mode: Shared.InputMode) {
switch mode {
case .imeModeCHS:

View File

@ -103,7 +103,11 @@ public class PrefMgr: PrefMgrProtocol {
public var upperCaseLetterKeyBehavior: Int
@AppProperty(key: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue, defaultValue: true)
public var togglingAlphanumericalModeWithLShift: Bool
public var togglingAlphanumericalModeWithLShift: Bool {
didSet {
SessionCtl.theShiftKeyDetector.alsoToggleWithLShift = togglingAlphanumericalModeWithLShift
}
}
@AppProperty(key: UserDef.kDisableShiftTogglingAlphanumericalMode.rawValue, defaultValue: false)
public var disableShiftTogglingAlphanumericalMode: Bool

View File

@ -173,6 +173,7 @@ extension SessionCtl {
keyHandler.clear() // handle State.Empty()
keyHandler.ensureKeyboardParser()
Self.theShiftKeyDetector.alsoToggleWithLShift = PrefMgr.shared.togglingAlphanumericalModeWithLShift
if isASCIIMode, !isCapsLocked, PrefMgr.shared.disableShiftTogglingAlphanumericalMode { isASCIIMode = false }
if isCapsLocked { isASCIIMode = isCapsLocked } // Caps Lock

View File

@ -39,6 +39,13 @@ extension SessionCtl: KeyHandlerDelegate {
{
return false
}
// 使
let rawPair = state.data.userPhraseKVPair
let valueCurrent = rawPair.1
let valueReversed = ChineseConverter.crossConvert(rawPair.1)
LMMgr.bleachSpecifiedSuggestions(target: valueCurrent, mode: IMEApp.currentInputMode)
LMMgr.bleachSpecifiedSuggestions(target: valueReversed, mode: IMEApp.currentInputMode.reversed)
//
return true
}
}

View File

@ -5,7 +5,7 @@
<key>CFBundleShortVersionString</key>
<string>2.8.5</string>
<key>CFBundleVersion</key>
<string>2850</string>
<string>2851</string>
<key>UpdateInfoEndpoint</key>
<string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string>
<key>UpdateInfoSite</key>

View File

@ -1272,7 +1272,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
@ -1312,7 +1312,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@ -1351,7 +1351,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@ -1404,7 +1404,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_NS_ASSERTIONS = NO;
@ -1539,7 +1539,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@ -1600,7 +1600,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@ -1648,7 +1648,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = YES;
@ -1694,7 +1694,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2850;
CURRENT_PROJECT_VERSION = 2851;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
ENABLE_HARDENED_RUNTIME = YES;