UOM // Fix the processing of convertKeyFrom().

This commit is contained in:
ShikiSuen 2022-06-20 23:04:50 +08:00
parent ee7e7870b4
commit 282144be88
1 changed files with 10 additions and 9 deletions

View File

@ -159,24 +159,25 @@ extension vChewing {
walkedNodes: [Megrez.NodeAnchor], cursorIndex: Int
) -> String {
let arrEndingPunctuation = ["", "", "", "", "", "", "", ""]
var arrNodesReversed: [Megrez.NodeAnchor] = []
var arrNodes: [Megrez.NodeAnchor] = []
var intLength = 0
for theNodeAnchor in walkedNodes {
// .reverse()
arrNodesReversed = [theNodeAnchor] + arrNodesReversed
arrNodes.append(theNodeAnchor)
intLength += theNodeAnchor.spanningLength
if intLength >= cursorIndex {
break
}
}
if arrNodesReversed.isEmpty { return "" }
if arrNodes.isEmpty { return "" }
arrNodes = Array(arrNodes.reversed())
var strCurrent = "()"
var strPrevious = "()"
var strAnterior = "()"
guard let kvCurrent = arrNodesReversed[0].node?.currentKeyValue,
guard let kvCurrent = arrNodes[0].node?.currentKeyValue,
!arrEndingPunctuation.contains(kvCurrent.value)
else {
return ""
@ -185,15 +186,15 @@ extension vChewing {
//
strCurrent = kvCurrent.key
if arrNodesReversed.count >= 2,
let kvPrevious = arrNodesReversed[1].node?.currentKeyValue,
if arrNodes.count >= 2,
let kvPrevious = arrNodes[1].node?.currentKeyValue,
!arrEndingPunctuation.contains(kvPrevious.value)
{
strPrevious = "(\(kvPrevious.key),\(kvPrevious.value))"
}
if arrNodesReversed.count >= 3,
let kvAnterior = arrNodesReversed[2].node?.currentKeyValue,
if arrNodes.count >= 3,
let kvAnterior = arrNodes[2].node?.currentKeyValue,
!arrEndingPunctuation.contains(kvAnterior.value)
{
strAnterior = "(\(kvAnterior.key),\(kvAnterior.value))"