Skip to content

バッファテーブル

tyru edited this page Aug 12, 2010 · 1 revision

eskk.vimでは入力された文字はまずeskk#filter_key()やeskk#filter_key_info()に送られ、モードに送られます。
そこでasciiモードなら直接その文字が入力されますし、
hiraモードならバッファテーブルに貯められます。

バッファテーブルとして括りだすことで
入力中の文字に対する補完や変換など
様々な処理をする関数などに包括的な受け渡しが可能になります。

実装の詳細

バッファテーブルはフェーズごとに「バッファ文字列」というものを持っています。
バッファ文字列はさらに

  • ローマ字用バッファ
  • ローマ字によって変換されたひらがななどの文字用バッファ
  • 入力された文字の開始位置
    を持っています。

(TODO: それぞれの用途の詳細など)

実際に挿入される文字はどのようにして決まるか

実際に挿入される文字は

  • マーカー
  • フィルタ済みバッファ
  • ローマ字バッファ
    の順番に挿入されていきます。

(TODO: それぞれのフェーズ処理)