KeyHandler // Integrate InlineDumpPinyinInLieuOfZhuyin.

This commit is contained in:
ShikiSuen 2022-05-14 19:16:26 +08:00
parent 61b2563062
commit cf3d400858
2 changed files with 46 additions and 6 deletions

View File

@ -51,4 +51,31 @@ extension KeyHandler {
}
return cursorIndex
}
// Ruby
func cnvZhuyinKeyToTextbookReading(target: String, newSeparator: String = "-") -> String {
var arrReturn: [String] = []
for neta in target.split(separator: "-") {
var newString = String(neta)
if String(neta.reversed()[0]) == "˙" {
newString = String(neta.dropLast())
newString.insert("˙", at: newString.startIndex)
}
arrReturn.append(newString)
}
return arrReturn.joined(separator: newSeparator)
}
// Ruby
func restoreToneOneInZhuyinKey(target: String, newSeparator: String = "-") -> String {
var arrReturn: [String] = []
for neta in target.split(separator: "-") {
var newNeta = String(neta)
if !"ˊˇˋ˙".contains(String(neta.reversed()[0])), !neta.contains("_") {
newNeta += "1"
}
arrReturn.append(newNeta)
}
return arrReturn.joined(separator: newSeparator)
}
}

View File

@ -281,11 +281,15 @@ extension KeyHandler {
return false
}
let readings: [String] = currentReadings()
let composingBuffer =
(IME.areWeUsingOurOwnPhraseEditor)
? readings.joined(separator: "-")
: readings.joined(separator: " ")
var composingBuffer = currentReadings().joined(separator: "-")
if mgrPrefs.inlineDumpPinyinInLieuOfZhuyin {
composingBuffer = restoreToneOneInZhuyinKey(target: composingBuffer) //
composingBuffer = Tekkon.cnvPhonaToHanyuPinyin(target: composingBuffer) //
}
if !IME.areWeUsingOurOwnPhraseEditor {
composingBuffer = composingBuffer.replacingOccurrences(of: "-", with: " ")
}
clear()
@ -309,7 +313,16 @@ extension KeyHandler {
for theAnchor in _walkedNodes {
if let node = theAnchor.node {
let key = node.currentKeyValue().key.replacingOccurrences(of: "-", with: " ")
var key = node.currentKeyValue().key
if mgrPrefs.inlineDumpPinyinInLieuOfZhuyin {
key = restoreToneOneInZhuyinKey(target: key) //
key = Tekkon.cnvPhonaToHanyuPinyin(target: key) //
key = Tekkon.cnvHanyuPinyinToTextbookStyle(target: key) // 調
key = key.replacingOccurrences(of: "-", with: " ")
} else {
key = cnvZhuyinKeyToTextbookReading(target: key, newSeparator: " ")
}
let value = node.currentKeyValue().value
if key.contains("_") { //
composed += value