Class: Textbringer::SkkInputMethod
- Inherits:
-
InputMethod
- Object
- InputMethod
- Textbringer::SkkInputMethod
- Defined in:
- lib/textbringer/input_methods/skk_input_method.rb
Constant Summary collapse
- HIRAGANA_TABLE =
{ "a" => "あ", "i" => "い", "u" => "う", "e" => "え", "o" => "お", "ka" => "か", "ki" => "き", "ku" => "く", "ke" => "け", "ko" => "こ", "ga" => "が", "gi" => "ぎ", "gu" => "ぐ", "ge" => "げ", "go" => "ご", "sa" => "さ", "si" => "し", "su" => "す", "se" => "せ", "so" => "そ", "za" => "ざ", "zi" => "じ", "zu" => "ず", "ze" => "ぜ", "zo" => "ぞ", "sha" => "しゃ", "shi" => "し", "shu" => "しゅ", "she" => "しぇ", "sho" => "しょ", "ja" => "じゃ", "ji" => "じ", "ju" => "じゅ", "je" => "じぇ", "jo" => "じょ", "ta" => "た", "ti" => "ち", "tu" => "つ", "te" => "て", "to" => "と", "da" => "だ", "di" => "ぢ", "du" => "づ", "de" => "で", "do" => "ど", "cha" => "ちゃ", "chi" => "ち", "chu" => "ちゅ", "che" => "ちぇ", "cho" => "ちょ", "na" => "な", "ni" => "に", "nu" => "ぬ", "ne" => "ね", "no" => "の", "ha" => "は", "hi" => "ひ", "hu" => "ふ", "he" => "へ", "ho" => "ほ", "ba" => "ば", "bi" => "び", "bu" => "ぶ", "be" => "べ", "bo" => "ぼ", "pa" => "ぱ", "pi" => "ぴ", "pu" => "ぷ", "pe" => "ぺ", "po" => "ぽ", "ma" => "ま", "mi" => "み", "mu" => "む", "me" => "め", "mo" => "も", "ya" => "や", "yi" => "い", "yu" => "ゆ", "ye" => "いぇ", "yo" => "よ", "ra" => "ら", "ri" => "り", "ru" => "る", "re" => "れ", "ro" => "ろ", "wa" => "わ", "wi" => "ゐ", "wu" => "う", "we" => "ゑ", "wo" => "を", "nn" => "ん", "kya" => "きゃ", "kyi" => "きぃ", "kyu" => "きゅ", "kye" => "きぇ", "kyo" => "きょ", "gya" => "ぎゃ", "gyi" => "ぎぃ", "gyu" => "ぎゅ", "gye" => "ぎぇ", "gyo" => "ぎょ", "sya" => "しゃ", "syi" => "しぃ", "syu" => "しゅ", "sye" => "しぇ", "syo" => "しょ", "zya" => "じゃ", "zyi" => "じぃ", "zyu" => "じゅ", "zye" => "じぇ", "zyo" => "じょ", "tya" => "ちゃ", "tyi" => "ちぃ", "tyu" => "ちゅ", "tye" => "ちぇ", "tyo" => "ちょ", "dya" => "ぢゃ", "dyi" => "ぢぃ", "dyu" => "ぢゅ", "dye" => "ぢぇ", "dyo" => "ぢょ", "nya" => "にゃ", "nyi" => "にぃ", "nyu" => "にゅ", "nye" => "にぇ", "nyo" => "にょ", "hya" => "ひゃ", "hyi" => "ひぃ", "hyu" => "ひゅ", "hye" => "ひぇ", "hyo" => "ひょ", "bya" => "びゃ", "byi" => "びぃ", "byu" => "びゅ", "bye" => "びぇ", "byo" => "びょ", "pya" => "ぴゃ", "pyi" => "ぴぃ", "pyu" => "ぴゅ", "pye" => "ぴぇ", "pyo" => "ぴょ", "mya" => "みゃ", "myi" => "みぃ", "myu" => "みゅ", "mye" => "みぇ", "myo" => "みょ", "rya" => "りゃ", "ryi" => "りぃ", "ryu" => "りゅ", "rye" => "りぇ", "ryo" => "りょ", "fa" => "ふぁ", "fi" => "ふぃ", "fu" => "ふ", "fe" => "ふぇ", "fo" => "ふぉ", "va" => "ヴぁ", "vi" => "ヴぃ", "vu" => "ヴ", "ve" => "ヴぇ", "vo" => "ヴぉ", "tsa" => "つぁ", "tsi" => "つぃ", "tse" => "つぇ", "tso" => "つぉ", "la" => "ぁ", "li" => "ぃ", "lu" => "ぅ", "le" => "ぇ", "lo" => "ぉ", "lya" => "ゃ", "lyu" => "ゅ", "lyo" => "ょ", "lka" => "ヵ", "lke" => "ヶ", "xtu" => "っ", "xtsu" => "っ", "xya" => "ゃ", "xyu" => "ゅ", "xyo" => "ょ", "xa" => "ぁ", "xi" => "ぃ", "xu" => "ぅ", "xe" => "ぇ", "xo" => "ぉ", "," => "、", "." => "。", }
- HIRAGANA_PREFIXES =
HIRAGANA_TABLE.keys.flat_map { |s| (s.size - 1).times.map { |i| s[0, i + 1] } }.uniq
- KATAKANA_TABLE =
HIRAGANA_TABLE.transform_values { |v| v.chars.map { |c| c.ord.between?(0x3041, 0x3096) ? (c.ord + 0x60).chr("UTF-8") : c }.join }
- HANKAKU_KATAKANA_TABLE =
{ "a" => "ア", "i" => "イ", "u" => "ウ", "e" => "エ", "o" => "オ", "ka" => "カ", "ki" => "キ", "ku" => "ク", "ke" => "ケ", "ko" => "コ", "ga" => "ガ", "gi" => "ギ", "gu" => "グ", "ge" => "ゲ", "go" => "ゴ", "sa" => "サ", "si" => "シ", "su" => "ス", "se" => "セ", "so" => "ソ", "za" => "ザ", "zi" => "ジ", "zu" => "ズ", "ze" => "ゼ", "zo" => "ゾ", "sha" => "シャ", "shi" => "シ", "shu" => "シュ", "she" => "シェ", "sho" => "ショ", "ja" => "ジャ", "ji" => "ジ", "ju" => "ジュ", "je" => "ジェ", "jo" => "ジョ", "ta" => "タ", "ti" => "チ", "tu" => "ツ", "te" => "テ", "to" => "ト", "da" => "ダ", "di" => "ヂ", "du" => "ヅ", "de" => "デ", "do" => "ド", "cha" => "チャ", "chi" => "チ", "chu" => "チュ", "che" => "チェ", "cho" => "チョ", "na" => "ナ", "ni" => "ニ", "nu" => "ヌ", "ne" => "ネ", "no" => "ノ", "ha" => "ハ", "hi" => "ヒ", "hu" => "フ", "he" => "ヘ", "ho" => "ホ", "ba" => "バ", "bi" => "ビ", "bu" => "ブ", "be" => "ベ", "bo" => "ボ", "pa" => "パ", "pi" => "ピ", "pu" => "プ", "pe" => "ペ", "po" => "ポ", "ma" => "マ", "mi" => "ミ", "mu" => "ム", "me" => "メ", "mo" => "モ", "ya" => "ヤ", "yu" => "ユ", "yo" => "ヨ", "ra" => "ラ", "ri" => "リ", "ru" => "ル", "re" => "レ", "ro" => "ロ", "wa" => "ワ", "wo" => "ヲ", "nn" => "ン", "kya" => "キャ", "kyu" => "キュ", "kyo" => "キョ", "gya" => "ギャ", "gyu" => "ギュ", "gyo" => "ギョ", "sya" => "シャ", "syu" => "シュ", "syo" => "ショ", "zya" => "ジャ", "zyu" => "ジュ", "zyo" => "ジョ", "tya" => "チャ", "tyu" => "チュ", "tyo" => "チョ", "dya" => "ヂャ", "dyu" => "ヂュ", "dyo" => "ヂョ", "nya" => "ニャ", "nyu" => "ニュ", "nyo" => "ニョ", "hya" => "ヒャ", "hyu" => "ヒュ", "hyo" => "ヒョ", "bya" => "ビャ", "byu" => "ビュ", "byo" => "ビョ", "pya" => "ピャ", "pyu" => "ピュ", "pyo" => "ピョ", "mya" => "ミャ", "myu" => "ミュ", "myo" => "ミョ", "rya" => "リャ", "ryu" => "リュ", "ryo" => "リョ", "fa" => "ファ", "fi" => "フィ", "fu" => "フ", "fe" => "フェ", "fo" => "フォ", "," => "、", "." => "。", }
- HANKAKU_KATAKANA_PREFIXES =
HANKAKU_KATAKANA_TABLE.keys.flat_map { |s| (s.size - 1).times.map { |i| s[0, i + 1] } }.uniq
- DEFAULT_CURSOR_COLORS =
{ hiragana: "pink", katakana: "green", hankaku_katakana: "blue", zenkaku_ascii: "yellow", ascii: nil, # nil = reset to terminal default }
Constants included from Commands
Commands::CLIPBOARD_AVAILABLE, Commands::COMPLETION_POPUP_STATUS, Commands::CTAGS, Commands::EMAIL_REGEXP, Commands::HELP_RING, Commands::ISEARCH_STATUS, Commands::ISPELL_STATUS, Commands::ISPELL_WORD_REGEXP, Commands::KEYBOARD_MACROS, Commands::LSP_DOCUMENT_VERSIONS, Commands::LSP_STATUS, Commands::REGISTERS, Commands::RE_SEARCH_STATUS, Commands::URI_REGEXP
Constants included from Utils
Utils::COMPLETION, Utils::EXPRESSION_COMPLETOR, Utils::EXPRESSION_COMPLETOR_OPTIONS, Utils::HOOKS
Instance Method Summary collapse
- #disable ⇒ Object
- #handle_event(event) ⇒ Object
-
#initialize ⇒ SkkInputMethod
constructor
A new instance of SkkInputMethod.
- #status ⇒ Object
- #toggle ⇒ Object
Methods inherited from InputMethod
#enabled?, #filter_event, find, inherited, list, #with_target_buffer
Methods included from Commands
[], #buffer_uri, #command_help, command_table, #completion_popup_done, completion_popup_mode_active?, #completion_popup_pre_command_hook, #completion_popup_start, #current_prefix_arg, define_command, #ensure_ispell_active, #execute_keyboard_macro, #get_tags, #insert_completion, #isearch_done, #isearch_mode, #isearch_mode?, #isearch_pre_command_hook, #isearch_prompt, #isearch_repeat, #isearch_repeat_backward, #isearch_repeat_forward, #isearch_search, #ispell_done, #ispell_forward, #ispell_mode, #keymap_bindings, list, #lsp_after_set_visited_file_name_hook, #lsp_close_signature_window, #lsp_completion_context, #lsp_find_file_hook, #lsp_open_document, #lsp_position, #lsp_setup_buffer_hooks, #lsp_show_signature_window, #lsp_signature_pre_command_hook, #lsp_text_document_sync_kind, #lsp_utf16_length, #match_beginning, #match_end, #match_string, #message_misspelled, #number_prefix_arg, #prefix_numeric_value, #read_input_method_name, #read_keyboard_macro, #read_register, #replace_match, undefine_command, #universal_argument_mode
Methods included from Utils
add_hook, background, complete_for_minibuffer, delete_completions_window, foreground, foreground!, get_hooks, message, read_buffer, read_char, read_command_name, read_encoding, read_event, read_expression, read_file_name, read_from_minibuffer, read_key_sequence, read_object, read_single_char, received_keyboard_quit?, remove_hook, ruby_install_name, run_hooks, run_hooks_in, self_insert_and_exit_minibuffer, set_transient_map, show_exception, sit_for, sleep_for, y_or_n?, yes_or_no?
Constructor Details
#initialize ⇒ SkkInputMethod
Returns a new instance of SkkInputMethod.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/textbringer/input_methods/skk_input_method.rb', line 110 def initialize super @mode = :hiragana # :hiragana | :katakana | :hankaku_katakana | :zenkaku_ascii | :ascii @phase = :normal # :normal | :converting | :selecting @roman_buffer = +"" @yomi = +"" @okuri_roman = nil @okuri_kana = nil @candidates = [] @candidate_index = 0 @marker_pos = nil @okuriiari = nil @okurinasi = nil end |
Instance Method Details
#disable ⇒ Object
134 135 136 137 |
# File 'lib/textbringer/input_methods/skk_input_method.rb', line 134 def disable super reset_cursor_color end |
#handle_event(event) ⇒ Object
149 150 151 152 153 154 155 |
# File 'lib/textbringer/input_methods/skk_input_method.rb', line 149 def handle_event(event) case @phase when :normal then handle_normal(event) when :converting then handle_converting(event) when :selecting then handle_selecting(event) end end |
#status ⇒ Object
139 140 141 142 143 144 145 146 147 |
# File 'lib/textbringer/input_methods/skk_input_method.rb', line 139 def status case @phase when :converting then "▽" when :selecting then "▼" else { hiragana: "あ", katakana: "ア", hankaku_katakana: "ア", zenkaku_ascii: "A", ascii: "A" }[@mode] end end |
#toggle ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'lib/textbringer/input_methods/skk_input_method.rb', line 125 def toggle super if @enabled update_cursor_color else reset_cursor_color end end |