アーカイブ

2006年 1月 25日 のアーカイブ

SJIS外の文字幅計算が目的だったが、やってみたら大してボトルネックにならないようだし、
せっかく幅を取得してキャッシュするし、真魚はプロポーショナルフォントに対応しちゃった。
記事:フォントの幅計算
仕組み上は出来そうだったので、早速作ってみた。
http://mana.ikuto.com/

事務所や自宅のパソコンでは遅くなったとは体感できないが、非力なマシンではどうかな。
これまで、真魚の動作で遅くなりそうなところと言えば、文字を画面に書く作業で、
たとえば、真魚を最大化してフォントを小さくした場合、
画面全体に対して、一度にたくさん字を書く瞬間が生まれる。
その状態でスクロールさせた場合、たくさんの文字を別の場所に書き直すから遅い。
その、文字を書かせる作業に比べれば、幅を計算する作業など遅い内には入らないだろう。
少なくとも、手持ちのパソコンでは体感差はない。

仕様上、どうするべきか迷っているのは、折り返しとかルーラーとか、カーソル上下移動。
たとえば、iとwの幅は違うので、iだけ続く行とwだけ続く行で文字数が倍くらい違う。
何を持って、80文字折り返しとか判断すればいいのかと言う話。
一応、フォント固有の平均幅か、数字の0の幅を使って、何文字分とか数えてる現状。
また、タブ文字はどの幅で8文字分とか判断するかも、その方法でやってる。
では、カーソルキーで入力位置を上下に動かしたとき、どこに動くべきかの話。
iiiiiiiiiiiiiiiここにカーソルiiiiiiiiii
wwwwwここに移動①wwwwwwwwwwここに移動②wwwwwwwwww
もとの行の何文字目かで下の行に移れば②だが、直感的には①に動きたい。
ルーラーは、今何文字目かではなくて、カーソルのある大体の位置にポッチを置いてみた。
他にも、今までは「半角一文字分」と決めつけていた部分が一定でなくなったため、
様々な仕様が変更されたり、バグに気がつかなかったり、問題はいくらでも出るだろう。
おそらく、ちょっといじってはアップデートを何度も繰り返すだろうから、
バージョンが次々上がるのもウザいし、テスト版として公開しながら直していく。

ようやく、メモ帳に負けている部分にメスが入った形。
いや、OSぐるみで文字書いてるエディタを完全に凌駕するのは無理だろうけども。

B0007WCAIG
B0007WCAIG