w3m は規模が大きすぎて改造しきれない
何度か w3m の改造に挑戦しているのだが、 なかなか使える状態にならない。
そもそも規模が大きすぎるためだと、ようやくわかってきた。 いままではなるべく元の機能を残そうとしていたが、 大胆に使わない機能を削除することで量を減らすことが必要だ。
目標
小さくして、改造しやすくする。 keymap とかを lua に移動して core を小さくする。 tab とか非同期更新にする。
Windowsでも動くようにする
select, ioctrl, signal termcap/curses 依存を置き換えればできる。 これらは目処がついて、libuv や ftxui あたりで代替することを計画。 ついでに、longjmp による例外処理もいったんやめて libuv で同等の機能を代替する。
libwc / BohemGC をやめて utf-8 決めうちに
BohemGC をやめて、 std::string とかに変えていきたいのだが、 BohemGC が各所で使われていて容易にはできない。 libwc の文字変換の中継表現が、 wtf とか ces などの名がついていたので調べていたのだがよくわからなかった。 名前が被っているだけで別物らしく、unicode と エスケープシーケンスの文字装飾flag を or で合体したものかもしれない。 libwc を残すのを諦めて、同時に色やアンダーラインなどもいったんやめる。 こうすると、無変換の utf-8 string が流れるようにできそう。 プレーンテキストの二次元レイアウトの保存に注力する。
io 回りの複雑さを減らす
pager 機能
frame 関連
http/https 以外の通信機能
減らす機能
ifdef 削り
コマンドライン
Option画面
複数キーのキーマップ