mtgto/macSKK

ローマ字テーブル変更時、送り仮名を伴う変換候補が適切に出てこない。

gw31415 opened this issue · 2 comments

ローマ字テーブルを変更している者です。
例えば「か」行を c で打てるようにしているのですが(ca ci cu ce co)、sa;cuから「咲く」が候補に出てきません。

そもそもSKKの辞書が 咲k のようにローマ字テーブルを決め打ちした構造になっているので、変更した際にkから始まる候補をcで検索できないのだと思います。

参考に、skkeletonというVimプラグインでは送り仮名の平仮名が確定したらその平仮名からアルファベットを逆引きしてすり替えているみたいです
(sacuさくさkuさkを検索)。
ddskkやlibskkもこの動作だと聞きました。

※ その際送り仮名が「っ」の時に子音アルファベットが確定しないという問題が生じますが統計的根拠から t と決めちゃってるみたいですね。

参考: https://github.com/vim-skk/skkeleton/blob/32e0048f0f4198ef0344b5f177056db7b41bdcef/denops/skkeleton/okuri.ts

勉強不足でSwiftで貢献できずIssueを送ってばかりで申し訳ありません🙇

mtgto commented

不具合報告ありがとうございます。

そもそもSKKの辞書が 咲k のようにローマ字テーブルを決め打ちした構造になっているので、変更した際にkから始まる候補をcで検索できないのだと思います。

ご想像のとおり、macSKKではローマ字変換テーブルの一文字目のアルファベットを元に辞書を引いているため、このような変換ルールが設定されている状態では sa;ca という入力では さc で検索してしまっています。

skkeletonのようにひらがなの数だけ送り仮名のアルファベット表記を持っておくのが簡単そうなのでそれで対応しようと思います。
促音の送りはおそらくt固定にすると思いますが、実装しながら考えます。


勉強不足でSwiftで貢献できずIssueを送ってばかりで申し訳ありません🙇

全然お気になさらないでいただいて大丈夫です。こうやってIssueでお伝えしていただけるだけでもOSS活動への貢献になりますし、ありがたいです。
正直私自身、AquaSKKをほとんどカスタマイズせずに使っていたので (キー配列もQWERTYですし、ローマ字変換ルールはデフォルトのまま使っていました。AZIKも使っていません)、こうやってカスタマイズして使ってる方が不具合があることを教えてくれることに感謝しています。

mtgto commented