UOM // Fix the processing of convertKeyFrom().
This commit is contained in:
parent
ee7e7870b4
commit
282144be88
|
@ -159,24 +159,25 @@ extension vChewing {
|
||||||
walkedNodes: [Megrez.NodeAnchor], cursorIndex: Int
|
walkedNodes: [Megrez.NodeAnchor], cursorIndex: Int
|
||||||
) -> String {
|
) -> String {
|
||||||
let arrEndingPunctuation = [",", "。", "!", "?", "」", "』", "”", "’"]
|
let arrEndingPunctuation = [",", "。", "!", "?", "」", "』", "”", "’"]
|
||||||
var arrNodesReversed: [Megrez.NodeAnchor] = []
|
var arrNodes: [Megrez.NodeAnchor] = []
|
||||||
var intLength = 0
|
var intLength = 0
|
||||||
for theNodeAnchor in walkedNodes {
|
for theNodeAnchor in walkedNodes {
|
||||||
// 這裡直接生成一個反向排序的陣列,之後就不用再「.reverse()」了。
|
arrNodes.append(theNodeAnchor)
|
||||||
arrNodesReversed = [theNodeAnchor] + arrNodesReversed
|
|
||||||
intLength += theNodeAnchor.spanningLength
|
intLength += theNodeAnchor.spanningLength
|
||||||
if intLength >= cursorIndex {
|
if intLength >= cursorIndex {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if arrNodesReversed.isEmpty { return "" }
|
if arrNodes.isEmpty { return "" }
|
||||||
|
|
||||||
|
arrNodes = Array(arrNodes.reversed())
|
||||||
|
|
||||||
var strCurrent = "()"
|
var strCurrent = "()"
|
||||||
var strPrevious = "()"
|
var strPrevious = "()"
|
||||||
var strAnterior = "()"
|
var strAnterior = "()"
|
||||||
|
|
||||||
guard let kvCurrent = arrNodesReversed[0].node?.currentKeyValue,
|
guard let kvCurrent = arrNodes[0].node?.currentKeyValue,
|
||||||
!arrEndingPunctuation.contains(kvCurrent.value)
|
!arrEndingPunctuation.contains(kvCurrent.value)
|
||||||
else {
|
else {
|
||||||
return ""
|
return ""
|
||||||
|
@ -185,15 +186,15 @@ extension vChewing {
|
||||||
// 前置單元只記錄讀音,在其後的單元則同時記錄讀音與字詞
|
// 前置單元只記錄讀音,在其後的單元則同時記錄讀音與字詞
|
||||||
strCurrent = kvCurrent.key
|
strCurrent = kvCurrent.key
|
||||||
|
|
||||||
if arrNodesReversed.count >= 2,
|
if arrNodes.count >= 2,
|
||||||
let kvPrevious = arrNodesReversed[1].node?.currentKeyValue,
|
let kvPrevious = arrNodes[1].node?.currentKeyValue,
|
||||||
!arrEndingPunctuation.contains(kvPrevious.value)
|
!arrEndingPunctuation.contains(kvPrevious.value)
|
||||||
{
|
{
|
||||||
strPrevious = "(\(kvPrevious.key),\(kvPrevious.value))"
|
strPrevious = "(\(kvPrevious.key),\(kvPrevious.value))"
|
||||||
}
|
}
|
||||||
|
|
||||||
if arrNodesReversed.count >= 3,
|
if arrNodes.count >= 3,
|
||||||
let kvAnterior = arrNodesReversed[2].node?.currentKeyValue,
|
let kvAnterior = arrNodes[2].node?.currentKeyValue,
|
||||||
!arrEndingPunctuation.contains(kvAnterior.value)
|
!arrEndingPunctuation.contains(kvAnterior.value)
|
||||||
{
|
{
|
||||||
strAnterior = "(\(kvAnterior.key),\(kvAnterior.value))"
|
strAnterior = "(\(kvAnterior.key),\(kvAnterior.value))"
|
||||||
|
|
Loading…
Reference in New Issue