From f47824292e33b1d89ef7c610d7236106b0905338 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 12 Jul 2022 12:08:27 +0800 Subject: [PATCH] KeyHandler // Optimize punctuationNamePrefix. --- .../ControllerModules/KeyHandler_Core.swift | 15 +++++++++++++++ .../KeyHandler_HandleCandidate.swift | 16 +--------------- .../KeyHandler_HandleInput.swift | 15 +-------------- 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler_Core.swift b/Source/Modules/ControllerModules/KeyHandler_Core.swift index 51cd3e51..50af2fc9 100644 --- a/Source/Modules/ControllerModules/KeyHandler_Core.swift +++ b/Source/Modules/ControllerModules/KeyHandler_Core.swift @@ -413,4 +413,19 @@ class KeyHandler { } return min(nextPosition, compositorLength) } + + /// 生成標點符號索引鍵。 + /// - Parameter input: 輸入的按鍵訊號。 + /// - Returns: 生成的標點符號索引鍵。 + func generatePunctuationNamePrefix(withKeyCondition input: InputSignal) -> String { + if mgrPrefs.halfWidthPunctuationEnabled { + return "_half_punctuation_" + } + switch (input.isControlHold, input.isOptionHold) { + case (true, true): return "_alt_ctrl_punctuation_" + case (true, false): return "_ctrl_punctuation_" + case (false, true): return "_alt_punctuation_" + case (false, false): return "_punctuation_" + } + } } diff --git a/Source/Modules/ControllerModules/KeyHandler_HandleCandidate.swift b/Source/Modules/ControllerModules/KeyHandler_HandleCandidate.swift index 5a91344f..5c4ad2db 100644 --- a/Source/Modules/ControllerModules/KeyHandler_HandleCandidate.swift +++ b/Source/Modules/ControllerModules/KeyHandler_HandleCandidate.swift @@ -334,22 +334,8 @@ extension KeyHandler { /// - 是否是針對當前注音排列/拼音輸入種類專門提供的標點符號。 /// - 是否是需要摁修飾鍵才可以輸入的那種標點符號。 - var punctuationNamePrefix = "" - - if input.isOptionHold && !input.isControlHold { - punctuationNamePrefix = "_alt_punctuation_" - } else if input.isControlHold && !input.isOptionHold { - punctuationNamePrefix = "_ctrl_punctuation_" - } else if input.isControlHold && input.isOptionHold { - punctuationNamePrefix = "_alt_ctrl_punctuation_" - } else if mgrPrefs.halfWidthPunctuationEnabled { - punctuationNamePrefix = "_half_punctuation_" - } else { - punctuationNamePrefix = "_punctuation_" - } - + let punctuationNamePrefix: String = generatePunctuationNamePrefix(withKeyCondition: input) let parser = currentMandarinParser - let arrCustomPunctuations: [String] = [ punctuationNamePrefix, parser, String(format: "%c", CChar(charCode)), ] diff --git a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift index f07cac76..b984167d 100644 --- a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift +++ b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift @@ -414,20 +414,7 @@ extension KeyHandler { /// - 是否是針對當前注音排列/拼音輸入種類專門提供的標點符號。 /// - 是否是需要摁修飾鍵才可以輸入的那種標點符號。 - var punctuationNamePrefix = "" - - if input.isOptionHold && !input.isControlHold { - punctuationNamePrefix = "_alt_punctuation_" - } else if input.isControlHold && !input.isOptionHold { - punctuationNamePrefix = "_ctrl_punctuation_" - } else if input.isControlHold && input.isOptionHold { - punctuationNamePrefix = "_alt_ctrl_punctuation_" - } else if mgrPrefs.halfWidthPunctuationEnabled { - punctuationNamePrefix = "_half_punctuation_" - } else { - punctuationNamePrefix = "_punctuation_" - } - + let punctuationNamePrefix: String = generatePunctuationNamePrefix(withKeyCondition: input) let parser = currentMandarinParser let arrCustomPunctuations: [String] = [ punctuationNamePrefix, parser, String(format: "%c", CChar(charCode)),