From 4a98e0f7a96ffec67abe2a038f778d7c2e1bbffb Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 23 Feb 2022 12:31:00 +0800 Subject: [PATCH] LMConsolidator // Removing Sorting Feature. - This feature is now considered troublesome, considering that there is no way to control the sorting method in Cpp: Some people prefer sorting things alphabetically, and some prefer counting strokes, etc. --- Source/Modules/FileHandlers/LMConsolidator.h | 2 +- Source/Modules/FileHandlers/LMConsolidator.mm | 7 ++-- .../IMEModules/PreferencesModule.swift | 32 +-------------- .../SubLanguageModels/AssociatedPhrases.mm | 2 +- .../SubLanguageModels/PhraseReplacementMap.mm | 2 +- .../SubLanguageModels/UserPhrasesLM.mm | 2 +- .../Modules/LangModelRelated/mgrLangModel.mm | 2 +- .../WindowNIBs/Base.lproj/frmPrefWindow.xib | 40 ++----------------- .../WindowNIBs/en.lproj/frmPrefWindow.strings | 6 --- .../WindowNIBs/ja.lproj/frmPrefWindow.strings | 6 --- .../zh-Hans.lproj/frmPrefWindow.strings | 6 --- .../zh-Hant.lproj/frmPrefWindow.strings | 6 --- 12 files changed, 12 insertions(+), 101 deletions(-) diff --git a/Source/Modules/FileHandlers/LMConsolidator.h b/Source/Modules/FileHandlers/LMConsolidator.h index 3dd481ca..38b25ae8 100644 --- a/Source/Modules/FileHandlers/LMConsolidator.h +++ b/Source/Modules/FileHandlers/LMConsolidator.h @@ -37,7 +37,7 @@ class LMConsolidator public: static bool CheckPragma(const char *path); static bool FixEOF(const char *path); - static bool ConsolidateContent(const char *path, bool shouldsort, bool shouldCheckPragma); + static bool ConsolidateContent(const char *path, bool shouldCheckPragma); }; } // namespace vChewing diff --git a/Source/Modules/FileHandlers/LMConsolidator.mm b/Source/Modules/FileHandlers/LMConsolidator.mm index d3350e2f..1cb685df 100644 --- a/Source/Modules/FileHandlers/LMConsolidator.mm +++ b/Source/Modules/FileHandlers/LMConsolidator.mm @@ -71,8 +71,8 @@ bool LMConsolidator::FixEOF(const char *path) } // END: EOF FIXER. // CONTENT CONSOLIDATOR. CREDIT: Shiki Suen. -bool LMConsolidator::ConsolidateContent(const char *path, bool shouldsort, bool shouldCheckPragma) { - if (LMConsolidator::CheckPragma(path) && !shouldsort && shouldCheckPragma){ +bool LMConsolidator::ConsolidateContent(const char *path, bool shouldCheckPragma) { + if (LMConsolidator::CheckPragma(path) && shouldCheckPragma){ return true; } @@ -97,8 +97,7 @@ bool LMConsolidator::ConsolidateContent(const char *path, bool shouldsort, bool vecEntry[i] = regex_replace(vecEntry[i], sedTrailingSpace, "").c_str(); // 去掉行尾空格。 } } - // 在第二遍 for 運算之前,針對 vecEntry 排序+去除重複條目。 - if (shouldsort) {sort(vecEntry.begin(), vecEntry.end());} // 要不要排序,得做成開關。 + // 在第二遍 for 運算之前,針對 vecEntry 去除重複條目。 vecEntry.erase(unique(vecEntry.begin(), vecEntry.end()), vecEntry.end()); // 去重複。 // 統整完畢。開始將統整過的內容寫入檔案。 ofstream zfdContentConsolidatorOutput(path); // 這裡是要從頭開始重寫檔案內容,所以不需要「 ios_base::app 」。 diff --git a/Source/Modules/IMEModules/PreferencesModule.swift b/Source/Modules/IMEModules/PreferencesModule.swift index 9774cce4..ff67acb3 100644 --- a/Source/Modules/IMEModules/PreferencesModule.swift +++ b/Source/Modules/IMEModules/PreferencesModule.swift @@ -28,9 +28,6 @@ private let kFunctionKeyKeyboardLayoutOverrideIncludeShift = "FunctionKeyKeyboar private let kCandidateListTextSize = "CandidateListTextSize" private let kAppleLanguagesPreferences = "AppleLanguages" private let kShouldAutoReloadUserDataFiles = "ShouldAutoReloadUserDataFiles" -private let kShouldAutoSortUserPhrasesAndExclListOnLoad = "ShouldAutoSortUserPhrasesAndExclListOnLoad" -private let kShouldAutoSortPhraseReplacementMapOnLoad = "ShouldAutoSortPhraseReplacementMapOnLoad" -private let kShouldAutoSortAssociatedPhrasesOnLoad = "ShouldAutoSortAssociatedPhrasesOnLoad" private let kSelectPhraseAfterCursorAsCandidatePreference = "SelectPhraseAfterCursorAsCandidate" private let kUseHorizontalCandidateListPreference = "UseHorizontalCandidateList" private let kComposingBufferSizePreference = "ComposingBufferSize" @@ -222,9 +219,6 @@ struct ComposingBufferSize { kCandidateListTextSize, kAppleLanguagesPreferences, kShouldAutoReloadUserDataFiles, - kShouldAutoSortUserPhrasesAndExclListOnLoad, - kShouldAutoSortPhraseReplacementMapOnLoad, - kShouldAutoSortAssociatedPhrasesOnLoad, kSelectPhraseAfterCursorAsCandidatePreference, kUseHorizontalCandidateListPreference, kComposingBufferSizePreference, @@ -270,26 +264,11 @@ struct ComposingBufferSize { UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpace) } - // 在檔案載入時,預設不啟用使用者自訂語彙表與語彙排除表的內容排序。 + // 自動檢測使用者自訂語彙數據的變動並載入。 if UserDefaults.standard.object(forKey: kShouldAutoReloadUserDataFiles) == nil { UserDefaults.standard.set(Preferences.shouldAutoReloadUserDataFiles, forKey: kShouldAutoReloadUserDataFiles) } - // 在檔案載入時,預設不啟用語彙置換表的內容排序。 - if UserDefaults.standard.object(forKey: kShouldAutoSortUserPhrasesAndExclListOnLoad) == nil { - UserDefaults.standard.set(Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, forKey: kShouldAutoSortUserPhrasesAndExclListOnLoad) - } - - // 在檔案載入時,預設不啟用自訂聯想詞表的內容排序。 - if UserDefaults.standard.object(forKey: kShouldAutoSortAssociatedPhrasesOnLoad) == nil { - UserDefaults.standard.set(Preferences.shouldAutoSortAssociatedPhrasesOnLoad, forKey: kShouldAutoSortAssociatedPhrasesOnLoad) - } - - // 自動檢測使用者自訂語彙數據的變動並載入。 - if UserDefaults.standard.object(forKey: kShouldAutoSortPhraseReplacementMapOnLoad) == nil { - UserDefaults.standard.set(Preferences.shouldAutoSortPhraseReplacementMapOnLoad, forKey: kShouldAutoSortPhraseReplacementMapOnLoad) - } - // 預設禁用逐字選字模式(就是每個字都要選的那種),所以設成 false if UserDefaults.standard.object(forKey: kUseSCPCTypingMode) == nil { UserDefaults.standard.set(Preferences.useSCPCTypingMode, forKey: kUseSCPCTypingMode) @@ -371,15 +350,6 @@ struct ComposingBufferSize { @UserDefault(key: kShouldAutoReloadUserDataFiles, defaultValue: true) @objc static var shouldAutoReloadUserDataFiles: Bool - @UserDefault(key: kShouldAutoSortUserPhrasesAndExclListOnLoad, defaultValue: false) - @objc static var shouldAutoSortUserPhrasesAndExclListOnLoad: Bool - - @UserDefault(key: kShouldAutoSortPhraseReplacementMapOnLoad, defaultValue: false) - @objc static var shouldAutoSortPhraseReplacementMapOnLoad: Bool - - @UserDefault(key: kShouldAutoSortAssociatedPhrasesOnLoad, defaultValue: false) - @objc static var shouldAutoSortAssociatedPhrasesOnLoad: Bool - @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreference, defaultValue: true) @objc static var selectPhraseAfterCursorAsCandidate: Bool diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm b/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm index 4970f8a3..1af8c9d0 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm @@ -59,7 +59,7 @@ bool AssociatedPhrases::open(const char *path) } LMConsolidator::FixEOF(path); - LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortAssociatedPhrasesOnLoad, true); + LMConsolidator::ConsolidateContent(path, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm b/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm index 64d2071e..835c24b6 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm @@ -54,7 +54,7 @@ bool PhraseReplacementMap::open(const char *path) } LMConsolidator::FixEOF(path); - LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortPhraseReplacementMapOnLoad, true); + LMConsolidator::ConsolidateContent(path, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm index f23206f8..cd82d11c 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm @@ -60,7 +60,7 @@ bool UserPhrasesLM::open(const char *path) } LMConsolidator::FixEOF(path); - LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, true); + LMConsolidator::ConsolidateContent(path, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index 2564a8e5..c6f830f6 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -266,7 +266,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing [writeFile closeFile]; // We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load. - vChewing::LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false); + vChewing::LMConsolidator::ConsolidateContent([path UTF8String], false); // We use FSEventStream to monitor the change of the user phrase folder, // so we don't have to load data here unless FSEventStream is disabled by user. diff --git a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index 0af096a0..e4395504 100644 --- a/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -503,36 +503,8 @@ - -