ctlIME // Move kanji conversion to IME module.

This commit is contained in:
ShikiSuen 2022-06-18 13:59:27 +08:00
parent ad1141a7fd
commit 8076b083fe
3 changed files with 18 additions and 16 deletions

View File

@ -146,7 +146,7 @@ class InputState {
var attributedString: NSAttributedString {
let attributedString = NSAttributedString(
string: composingBuffer,
string: IME.kanjiConversionIfRequired(composingBuffer),
attributes: [
.underlineStyle: NSUnderlineStyle.single.rawValue,
.markedClauseSegment: 0,
@ -260,7 +260,7 @@ class InputState {
}
override var attributedString: NSAttributedString {
let attributedString = NSMutableAttributedString(string: composingBuffer)
let attributedString = NSMutableAttributedString(string: IME.kanjiConversionIfRequired(composingBuffer))
let end = markedRange.upperBound
attributedString.setAttributes(

View File

@ -446,4 +446,19 @@ class KeyHandler {
func deleteCompositorReadingToTheFrontOfCursor() {
compositor.deleteReadingToTheFrontOfCursor()
}
// MARK: -
func kanjiConversionIfRequired(_ text: String) -> String {
if inputMode == InputMode.imeModeCHT {
switch (mgrPrefs.chineseConversionEnabled, mgrPrefs.shiftJISShinjitaiOutputEnabled) {
case (false, true): return vChewingKanjiConverter.cnvTradToJIS(text)
case (true, false): return vChewingKanjiConverter.cnvTradToKangXi(text)
//
case (true, true): return vChewingKanjiConverter.cnvTradToJIS(text)
case (false, false): return text
}
}
return text
}
}

View File

@ -298,20 +298,7 @@ extension ctlInputMethod {
///
private func commit(text: String) {
func kanjiConversionIfRequired(_ text: String) -> String {
if keyHandler.inputMode == InputMode.imeModeCHT {
switch (mgrPrefs.chineseConversionEnabled, mgrPrefs.shiftJISShinjitaiOutputEnabled) {
case (false, true): return vChewingKanjiConverter.cnvTradToJIS(text)
case (true, false): return vChewingKanjiConverter.cnvTradToKangXi(text)
//
case (true, true): return vChewingKanjiConverter.cnvTradToJIS(text)
case (false, false): return text
}
}
return text
}
let buffer = kanjiConversionIfRequired(text)
let buffer = keyHandler.kanjiConversionIfRequired(text)
if buffer.isEmpty {
return
}