Files
AzooKeyKanaKanjiConverter/Sources/KanaKanjiConverterModule/Converter/Unicode.swift
2023-07-23 00:34:27 +09:00

34 lines
1.1 KiB
Swift

//
// Unicode.swift
// Keyboard
//
// Created by ensan on 2020/11/04.
// Copyright © 2020 ensan. All rights reserved.
//
import Foundation
extension KanaKanjiConverter {
/// unicode`"uxxxx, Uxxxx, u+xxxx, U+xxxx"`
/// - parameters:
func unicodeCandidates(_ inputData: ComposingText) -> [Candidate] {
let value0: PValue = -10
let string = inputData.convertTarget.toKatakana()
for prefix in ["u", "U", "u+", "U+"] where string.hasPrefix(prefix) {
if let number = Int(string.dropFirst(prefix.count), radix: 16), let unicodeScalar = UnicodeScalar(number) {
let char = String(unicodeScalar)
return [
Candidate(
text: char,
value: value0,
correspondingCount: inputData.input.count,
lastMid: MIDData..mid,
data: [DicdataElement(word: char, ruby: string, cid: .zero, mid: MIDData..mid, value: value0)]
)
]
}
}
return []
}
}