CandidateNode // Add data of Hanin Keyboard Symbols for query.

This commit is contained in:
ShikiSuen 2023-02-10 21:16:54 +08:00
parent 84ea8de1d2
commit 86b85b9c83
1 changed files with 84 additions and 0 deletions

View File

@ -398,3 +398,87 @@ extension CandidateNode {
]
)
}
// MARK: - Hanin Symbol Support (except Ctrl+3 menu).
public extension CandidateNode {
static func queryHaninKeyboardSymbols(char key: String) -> CandidateNode? {
guard let rawData = Self.mapHaninKeyboardSymbols[key] else { return nil }
return CandidateNode(name: key, symbols: rawData)
}
// Ref: https://github.com/vChewing/vChewing-macOS/wiki/HaninFormatSpec
static let mapHaninKeyboardSymbols: [String: [String]] = [
" ": [" "],
"(": ["", "", "", "", "", ""],
")": ["", "", "", "", "", ""],
"+": ["", "", "", "", "", "±", ""],
",": ["", "", "", "", ""],
"-": [
"", "", "", "", "", "÷", "±", "", "",
"", "", "", "", "", "", "", "", "",
],
".": ["", "", "", "", "·", "", "÷", "", "", "", "", "", ""],
"/": ["", "", "", "", "", "", "", ""],
"0": ["", "", "", "", "", "", ""],
"1": ["", "", "", ""],
"2": ["", "", "", "", ""],
"3": ["", "", "ˇ", "", ""],
"4": ["", "", "ˋ", "", "", "", "§"],
"5": ["", "", "", "", "", "Λ"],
"6": ["", "", "ˊ", "︿", "", ""],
"7": ["", "", "˙", "", ""],
"8": ["", "", "", "", "", "", ""],
"9": ["", "", "", "", "", "", ""],
":": ["", "", "", "", ""],
";": ["", "", "", "", "", ""],
"<": [
"", "", "", "", "", "", "", "", "",
"", "", "", "︿", "", "", "", "Δ", "", "",
"", "", "", "", "", "", "", "", "", "",
],
">": [
"", "", "", "", "", "", "÷", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
],
"=": ["", "", "", "", "", "", ""],
"?": ["", ""],
"a": ["", "", "", "Α", "", "α"],
"b": ["", "", "", "Β", "", "β"],
"c": ["", "", "", "", "Γ", "", ""],
"d": ["", "", "", "Δ", "δ", ""],
"e": ["", "", "", "ε", "Ε", ""],
"f": ["", "", "", "", ""],
"g": ["", "", "", ""],
"h": ["", "", "", "Η", ""],
"i": ["", "", "", "Ι", "ι", ""],
"j": ["", "", "", ""],
"k": ["", "", "", "Κ", "κ", ""],
"l": ["", "", "", "Γ", "", "", "λ", ""],
"m": ["", "", "", "Ο", "Μ", "Σ", ""],
"n": ["", "", "", "Ν", "", "η"],
"o": ["", "", "", "", "", "", "", "Θ", "Ο", "Φ", "θ", "ο", "φ", ""],
"p": ["", "", "", "π", "Ρ", ""],
"q": ["", "", "", ""],
"r": ["", "", "", "γ", "ρ", ""],
"s": ["", "", "", "", "", "σ", ""],
"t": ["", "", "", "Τ", "Υ", "廿"],
"u": ["", "", "", "", "", "Π", "Ψ", "μ", "ψ", ""],
"v": ["", "", "", "", "", "", "", "", "", "", "ν", "υ", ""],
"w": ["", "", "", "Ω", "ω", ""],
"x": ["", "", "", "×", "", "Χ", "χ", "ξ"],
"y": ["", "", "", "", ""],
"z": ["Ζ", "", "", "τ"],
"[": ["", "", "", "", "", "", "", "", ""],
"\"": ["", "", "", "", ""],
"\'": ["", "", "", ""],
"]": ["", "", "", "", "", "", "", "", "", "", ""],
"_": ["_", "ˍ"],
"`": ["", ""],
"{": ["", "", ""],
"}": ["", "", ""],
"~": ["", "", ""],
]
}