Rhinocs_古くなった話題
Rhinocs_古くなった話題
考えているうちに変わった結果、残しておくと混乱がありそうなものを隔離する場所。 ここに持ってきて無くて古くなった話題もあるが。
Starlarcs
最初はStarlarkバックエンドにしようと思ってStarlarcsと呼んでいたが、今はRhinoバックエンドのRhinocsにする事にした。
SKKの実装を検討する
以前jmukがChromOS用に作ってたよなぁ、と思い調べると、そのあとhydrakecat氏がforkしている。
まぁ自分の目的ではあまり違わなさそうだが。
これをそのまま移植するならパッケージとかextensionとかいろいろ考えないといけない事が多いので、まずはそういう難しい事はせずに一つのjsファイルに必要なのを切り貼りしていく感じにするか。
SKK-JISYOは開発中はSがいいな。
SKK dictionary files gh-pages - dict
ここから落とせるか。
SKKの開発を始めるのに必要な事は以下か。
- skk.jsの場所を指定して保存するようにし、起動時に自動で読むようにする
- skk.jsと同じフォルダにあるSKK-JISYO.Sをロードする
この2つが終われば、あとはjs側の開発が始められる。
いや、一番最初は平仮名とカタカナでいいか。まずは平仮名の実装からはじめよう。
以前ちょっと調べた時にxyzzyの実装は割と簡単に実現できそうだった。
loyaltouch/Skk-Mode: xyzzy-skk-mode
この辺を参考にしつつちょっとずつ進めたい。
最初の目標
考えないといけない事は無限にあって永遠に前に進めない気がするので、一番最初の目標を決めてそれに必要な事だけをやる感じにしたい。
やりたいのはこのWikiなどを書きたい。それに必要最低限のものから始めたい。
- SAFでのファイルの読み書き
- 日本語入力
- SKK
- ダイアログでEditText
- キーマップと基本的な入力
- カット、コピー、ヤンク
日本語入力は必須なので、最初から半角-全角の扱いはしたい。逆にこの枠組みに収まらない言語はやらない。
SKKはちゃんとやると結構いろいろな機能が必要になってしまうので、とりあえず複数windowが無くても出来るような範囲だけをやりたい。 ミニバッファ絡みの機能も最初はやらない。
その代わりEditTextで普通にタッチ入力する逃げ道は作っておきたい。
ウィンドウのsplitは無しでもまずはいけるか?ミニバッファとウィンドウのsplitがなければだいぶ話は楽そうだが。 switch-bufferは必要だろうが、最初の目標としては無しの状態でとりあえず動く所までを目指すか。
最初の最初の目標はSKKの実装を開始するまでの最低限
SKKを必要最低限に実装するのは結構大変ではある。 これが最初の目標というのは遠すぎる。
そして作り始めないと何が必要かは完全には分からないので、最初に作り始める所を最初の最初の目標とするか。
SKKを作り始めるのが最初の最初の目標とすると、必要なのはなんだろう?
- SAFでのファイルの読み書き
- Rhinoのキーマップ経由のローマ字の入力
- Rhinoによるjsのロード
モードとかを最初に整備するのは避けたいので、単純にSAFでskk.jsをロードしてしまって良いとは思っている。 このくらいが動けばjsの作業を開始出来るか。
ここまでを最初の最初の目標とするか。
SKKを書き始めるのにとりあえず必要なのは以下か?
- Rhinoからのバッファの操作
- Rhinoからの辞書のロード
- Rhinoからのread-key的な処理
この辺を揃え始めるのが最初の最初の目標かな。ドッグフードはまだまだだいぶ先だが。
Viewについての雑記(初期、やっぱり変える)
一行一TextViewで、RecyclerViewを使いたいが、厳しいかなぁ。 内部的には対応する行に合わせたグリフ情報を構成して、それを書く。 各TextViewは前に書いたグリフ情報はキャッシュし、、、ってそこまでやるならTextViewよりも自分で書く方がいいかなぁ。
View側と内部の両方を一気につくると永遠に完成しないのでViewは手抜きで始めたい気もするな。 そうすると一番単純にはスクロールとかは無視して、画面に表示している範囲の文字をdrawするだけの方が楽か。 まぁ最初はそこからか。
そう考えるならZipSourceCodeReadingと同じ感じでいいか。 ZipSourceCodeReadingはスクロールがいまいちだったので、将来的には各行を表示するViewを作ってRecyclerViewに任せたい気もするが、 キーボード中心と割り切れば別にスクロールがいまいちでも我慢出来るかもしれない。 なんにせよ最初は単に配列を画面に表示するだけの方がいいな。
とりあえず、内部で画面に表示する文字の一覧を作る。これはグリフの配列とする。 Viewはそれを表示するだけで、スクロールとかは一切サポートしない。 こんな感じで始めるか。 グリフを作る所まではどうせ一緒なので、そこから先は真面目に書きたくなったら書けばいいだろう。