EditArea よむ
わからない挙動
- なんで同じ行のシンタックスハイライトができるのか
- なんで日本語入力中もちゃんと後続文字が動くのか
- なんで iframe
とりあえず CSS を切ると、本来の textarea とは別に textarea があるので、それが透明になっててほげほげっぽい。と予想できる
日本語入力中も大丈夫なことから、setInterval で監視しているのか? と予想。
ソースを開いてカーソル移動らへんを見ると manege_area.js#area_select がセレクションと、カーソル設定を担当していることがわかる。setSelectionRage っぽいやつ。
が、この関数はもともと textarea の範囲設定を更新しているだけっぽくて、実際描画されている EditArea のカーソルとかは直接動かしてない。やっぱり setInterval とかで監視して反映させてる?
が、setInterval は使ってない。setTimeout で調べると check_line_selection があやしい。ちまちま見ていくと displayToCursorPosition を読んでて、これがカーソル描画らしい。
たぶんダミーの textarea を常に編集させて、HTML を常に更新していく感じなのかなぁ。全部いっかつして書き換えているっぽい? でもどうやって変換中も文字とか、変換候補がちゃんとした位置にでるようにしてるんだろう。どこで textarea の位置を変えてるんだ。
やっぱ行を textarea 化してるっぽい感じだよなぁ。括弧の対応は特別扱いしてる。専用の要素が
マジでぜんぜんわからない><