KeyHandler // Commiting HTML Ruby Composition by ⌘⌃⌥Enter.
This commit is contained in:
parent
8d0babf954
commit
2540b3137c
|
@ -341,7 +341,9 @@ extension KeyHandler {
|
||||||
|
|
||||||
if input.isEnter {
|
if input.isEnter {
|
||||||
return (input.isCommandHold && input.isControlHold)
|
return (input.isCommandHold && input.isControlHold)
|
||||||
? handleCtrlCommandEnter(state: state, stateCallback: stateCallback, errorCallback: errorCallback)
|
? (input.isOptionHold
|
||||||
|
? handleCtrlOptionCommandEnter(state: state, stateCallback: stateCallback, errorCallback: errorCallback)
|
||||||
|
: handleCtrlCommandEnter(state: state, stateCallback: stateCallback, errorCallback: errorCallback))
|
||||||
: handleEnter(state: state, stateCallback: stateCallback, errorCallback: errorCallback)
|
: handleEnter(state: state, stateCallback: stateCallback, errorCallback: errorCallback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -268,7 +268,7 @@ extension KeyHandler {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - CMD+Enter 鍵處理
|
// MARK: - CMD+Enter 鍵處理(注音文)
|
||||||
|
|
||||||
func handleCtrlCommandEnter(
|
func handleCtrlCommandEnter(
|
||||||
state: InputState,
|
state: InputState,
|
||||||
|
@ -292,6 +292,38 @@ extension KeyHandler {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - CMD+Alt+Enter 鍵處理(網頁 Ruby 注音文標記)
|
||||||
|
|
||||||
|
func handleCtrlOptionCommandEnter(
|
||||||
|
state: InputState,
|
||||||
|
stateCallback: @escaping (InputState) -> Void,
|
||||||
|
errorCallback _: @escaping () -> Void
|
||||||
|
) -> Bool {
|
||||||
|
if !(state is InputState.Inputting) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
var composed = ""
|
||||||
|
|
||||||
|
for theAnchor in _walkedNodes {
|
||||||
|
if let node = theAnchor.node {
|
||||||
|
let key = node.currentKeyValue().key.replacingOccurrences(of: "-", with: " ")
|
||||||
|
let value = node.currentKeyValue().value
|
||||||
|
if key.contains("_") { // 不要給標點符號等特殊元素加注音
|
||||||
|
composed += value
|
||||||
|
} else {
|
||||||
|
composed += "<ruby>\(value)<rp>(</rp><rt>\(key)</rt><rp>)</rp></ruby>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
clear()
|
||||||
|
|
||||||
|
stateCallback(InputState.Committing(poppedText: composed))
|
||||||
|
stateCallback(InputState.Empty())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - 處理 Backspace (macOS Delete) 按鍵行為
|
// MARK: - 處理 Backspace (macOS Delete) 按鍵行為
|
||||||
|
|
||||||
func handleBackspace(
|
func handleBackspace(
|
||||||
|
|
Loading…
Reference in New Issue