Skip to content

[FEATURE] 3段フリック周りのリファクタリング #852

Description

@tetta-pdnt

この機能リクエストは、何か問題に関連していますか?説明してください。

3段フリック周りを今後拡張しやすくするため、段階的にリファクタしたいです。
現状の KeyboardDefaultLayouts では、3段フリックの候補ツリーが TfbiFlickNode の runtime 構造として直接手書きされています。
そのため、候補の出し分け、角度判定の拡張、将来的なカスタムキーボード対応を入れるたびに、巨大なデフォルト定義へ条件分岐を足す形になるので保守性が下がるのではと懸念しています

望む解決策を説明してください

まずは runtime 用の TfbiFlickNode とは別に、保存・編集・生成に使える中立の flick definition schema を追加したいです。
最初の対象は3段フリックですが、設計としては「キーに対して、方向ごとの候補ツリーを持つ」汎用的な schema に寄せる予定です。
これにより、将来的には通常フリックや二段フリックも同じ定義モデルから runtime map へ変換できたらよいと考えています

schema から TfbiFlickNode.StatefulKey へ変換する mapper によって既存の3段フリックを移行できたら,以下を進めたいです

  • デフォルト3段フリック定義をgenerator経由に
    • きゃ/きゅ/きょ や きゅう/きょう のような候補を各行で重複して手書きする必要をなくします
  • あ行二段目候補を無効化する機能を追加
    • schema の feature filter として実装
    • 「ぁ」や「ゔ」など使用頻度が低い割に誤判定されがちな候補を無効にできるようにしたいです
  • 判定角度調整を一般化
  • カスタムキーボードで3段フリックを選択可能に
    • schemaをUI上で保存・編集できるようにします

各PRは可能な限り小さくするように努めます
全体の方向性など、ご意見いただけますと幸いです

追加のコンテキスト

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions