RandomThoughts

RandomThoughts

Starlarcs

Contents:
  1. Viewについての雑記
  2. パッケージについて
  3. バッファについて

そのうち作りたいものの構想をメモする。

キーボード前提のAndroidのエディタを作りたい。

AndroidのIME周辺のキーボードの扱いが好きになれないので、全部キーコードを自前でハンドルするエディタを作りたい。 テキスト入力専用で快適に長文が入力出来る感じの。

Starlarkバックエンドにしたemacsみたいなエディタをぼんやりと考えている。 ということで名前はStarlark backendのemacsっぽいAndroid用エディタ、Starlarcsとしたい。

日本語入力はSKKを移植する感じで。

Viewについての雑記

一行一TextViewで、RecyclerViewを使いたいが、厳しいかなぁ。 内部的には対応する行に合わせたグリフ情報を構成して、それを書く。 各TextViewは前に書いたグリフ情報はキャッシュし、、、ってそこまでやるならTextViewよりも自分で書く方がいいかなぁ。

View側と内部の両方を一気につくると永遠に完成しないのでViewは手抜きで始めたい気もするな。 そうすると一番単純にはスクロールとかは無視して、画面に表示している範囲の文字をdrawするだけの方が楽か。 まぁ最初はそこからか。

そう考えるならZipSourceCodeReadingと同じ感じでいいか。 ZipSourceCodeReadingはスクロールがいまいちだったので、将来的には各行を表示するViewを作ってRecyclerViewに任せたい気もするが、 キーボード中心と割り切れば別にスクロールがいまいちでも我慢出来るかもしれない。 なんにせよ最初は単に配列を画面に表示するだけの方がいいな。

とりあえず、内部で画面に表示する文字の一覧を作る。これはグリフの配列とする。 Viewはそれを表示するだけで、スクロールとかは一切サポートしない。 こんな感じで始めるか。 グリフを作る所まではどうせ一緒なので、そこから先は真面目に書きたくなったら書けばいいだろう。

パッケージについて

最初にホームディレクトリを指定させる。これはSAFで。とりあえずそこにstarlarkのスクリプト置いて、それをロードする感じでいってみたい。 本当にそれでエディタになるのかは少し自信が無い所もあるが、 カスタマイズしたい訳では無いので、既存のパッケージの関数の上書きとかは出来なくてもいいだろう。 どちらかといえば途中からは実装をStarlark側でやるようにしたいなぁ、という気持ちが強い。

JavaのStarlarkの外部スクリプトのロードはサポートされてないが、手作業では出来るっぽいことを以前Stackoverflowで見かけた気がするので、やれば出来そう。

バッファについて

バッファは行のリストで。ギャップは入れないで単純に毎回コピーする。 バッファ周りはAPIは割と真面目に作る。