35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/textbringer/input_methods/hangul_input_method.rb', line 35
def handle_event(event)
return event if !event.is_a?(String)
jamo = KEY_TO_COMPATIBILITY_JAMO[event]
return event if jamo.nil?
with_target_buffer do |buffer|
prev = buffer.char_before
if /[\u{3131}-\u{3183}\u{ac00}-\u{d7a3}]/.match?(prev)
decomposed_prev, prev = decompose_prev(prev, jamo)
if c = compose_hangul(prev, jamo)
buffer.backward_delete_char
c = decomposed_prev + c if decomposed_prev
buffer.insert(c)
Window.redisplay
return nil
end
end
end
jamo
end
|