LMMgr // Lazy-reload UserPhrasesData when writing phrases.
- Make loadUserPhrasesData() more precise.
This commit is contained in:
parent
ae4efede82
commit
e499437f2c
|
@ -57,9 +57,6 @@ public enum LMMgr {
|
||||||
// LMMgr 的 loadUserPhrases 等函式在自動讀取 dataFolderPath 時,
|
// LMMgr 的 loadUserPhrases 等函式在自動讀取 dataFolderPath 時,
|
||||||
// 如果發現自訂目錄不可用,則會自動抹去自訂目錄設定、改採預設目錄。
|
// 如果發現自訂目錄不可用,則會自動抹去自訂目錄設定、改採預設目錄。
|
||||||
// 所以這裡不需要特別處理。
|
// 所以這裡不需要特別處理。
|
||||||
if PrefMgr.shared.associatedPhrasesEnabled { Self.loadUserAssociatesData() }
|
|
||||||
if PrefMgr.shared.phraseReplacementEnabled { Self.loadUserPhraseReplacement() }
|
|
||||||
if PrefMgr.shared.useSCPCTypingMode { Self.loadUserSCPCSequencesData() }
|
|
||||||
Self.loadUserPhrasesData()
|
Self.loadUserPhrasesData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,22 +197,47 @@ public enum LMMgr {
|
||||||
vChewingLM.LMInstantiator.loadCassetteData(path: cassettePath())
|
vChewingLM.LMInstantiator.loadCassetteData(path: cassettePath())
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func loadUserPhrasesData() {
|
public static func loadUserPhrasesData(type: vChewingLM.ReplacableUserDataType? = nil) {
|
||||||
Self.lmCHT.loadUserPhrasesData(
|
guard let type = type else {
|
||||||
path: userPhrasesDataURL(.imeModeCHT).path,
|
Self.lmCHT.loadUserPhrasesData(
|
||||||
filterPath: userFilteredDataURL(.imeModeCHT).path
|
path: userPhrasesDataURL(.imeModeCHT).path,
|
||||||
)
|
filterPath: userFilteredDataURL(.imeModeCHT).path
|
||||||
Self.lmCHS.loadUserPhrasesData(
|
)
|
||||||
path: userPhrasesDataURL(.imeModeCHS).path,
|
Self.lmCHS.loadUserPhrasesData(
|
||||||
filterPath: userFilteredDataURL(.imeModeCHS).path
|
path: userPhrasesDataURL(.imeModeCHS).path,
|
||||||
)
|
filterPath: userFilteredDataURL(.imeModeCHS).path
|
||||||
Self.lmCHT.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHT).path)
|
)
|
||||||
Self.lmCHS.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHS).path)
|
Self.lmCHT.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHT).path)
|
||||||
|
Self.lmCHS.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHS).path)
|
||||||
|
|
||||||
|
if PrefMgr.shared.associatedPhrasesEnabled { Self.loadUserAssociatesData() }
|
||||||
|
if PrefMgr.shared.phraseReplacementEnabled { Self.loadUserPhraseReplacement() }
|
||||||
|
if PrefMgr.shared.useSCPCTypingMode { Self.loadUserSCPCSequencesData() }
|
||||||
|
|
||||||
Self.uomCHT.loadData(fromURL: userOverrideModelDataURL(.imeModeCHT))
|
Self.uomCHT.loadData(fromURL: userOverrideModelDataURL(.imeModeCHT))
|
||||||
Self.uomCHS.loadData(fromURL: userOverrideModelDataURL(.imeModeCHS))
|
Self.uomCHS.loadData(fromURL: userOverrideModelDataURL(.imeModeCHS))
|
||||||
|
|
||||||
CandidateNode.load(url: Self.userSymbolMenuDataURL())
|
CandidateNode.load(url: Self.userSymbolMenuDataURL())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
switch type {
|
||||||
|
case .thePhrases, .theFilter:
|
||||||
|
Self.lmCHT.loadUserPhrasesData(
|
||||||
|
path: userPhrasesDataURL(.imeModeCHT).path,
|
||||||
|
filterPath: userFilteredDataURL(.imeModeCHT).path
|
||||||
|
)
|
||||||
|
Self.lmCHS.loadUserPhrasesData(
|
||||||
|
path: userPhrasesDataURL(.imeModeCHS).path,
|
||||||
|
filterPath: userFilteredDataURL(.imeModeCHS).path
|
||||||
|
)
|
||||||
|
case .theReplacements:
|
||||||
|
if PrefMgr.shared.phraseReplacementEnabled { Self.loadUserPhraseReplacement() }
|
||||||
|
case .theAssociates:
|
||||||
|
if PrefMgr.shared.associatedPhrasesEnabled { Self.loadUserAssociatesData() }
|
||||||
|
case .theSymbols:
|
||||||
|
Self.lmCHT.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHT).path)
|
||||||
|
Self.lmCHS.loadUserSymbolData(path: userSymbolDataURL(.imeModeCHS).path)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func loadUserAssociatesData() {
|
public static func loadUserAssociatesData() {
|
||||||
|
@ -587,7 +609,7 @@ public enum LMMgr {
|
||||||
// The new FolderMonitor module does NOT monitor cases that files are modified
|
// The new FolderMonitor module does NOT monitor cases that files are modified
|
||||||
// by the current application itself, requiring additional manual loading process here.
|
// by the current application itself, requiring additional manual loading process here.
|
||||||
// if !PrefMgr.shared.shouldAutoReloadUserDataFiles {}
|
// if !PrefMgr.shared.shouldAutoReloadUserDataFiles {}
|
||||||
loadUserPhrasesData()
|
loadUserPhrasesData(type: .thePhrases)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in New Issue