xml-mode in textarea
まだまだバグがあるんだけど、ぶっちゃけ微妙に飽きてきたので公開 (してモチベーションあげる作戦)。Firefox でしか確認してない。IE では絶対動かないだろう。Opera でもたぶん動かないだろう。問題なのは setSelectionRange, selectionStart。綺麗にクロスブラウザ化するスクリプトをどっかで見たけどまぁいいや。
keydown/keyup は shift とかを単体で押しても反応しやがるので困った。keypress はイベント発生時点で、まだ textarea.value に文字が入力されないのが困った。かなりキモイ方法で解決したけど、スマートなのは keypress 単体を使って、文字入力をキャンセルする方法かなぁ。できなかったけど。
キャレット位置がおかしいバグがなおせたらそこそこ実用になるかな。
dump() しまくってるので Fx のコンソール表示させてると楽しいですよ。なにがだよ?
TAB 以外の文字でのインデントは一切考えていません。必要性を感じませんから。
属性に/を書こうとすると空要素タグ補完されてうざい。文字列の中にいるか外にいるか調べられればいいんだけどうまくいかない。タグの中の"[^"]*"をスキャンするとかなんとか。たまに補完後のキャレットの位置がおかしい。原因・再現性不明- CDATA を見事に無視してインデントする。そんなに難しくないと思うけど、面倒くさいと思う。大して使わないのでどうでもいいちゃどうでもいい。
- <empty-tag /></close-tag> みたいなときインデント崩れる。原因は空要素タグを最初から無視しているせいなんだけど、これ修正するのはめんどい。
関連エントリー
- キーバインドの実装 textarea で動く劣化コピー xml-mode の入力まわりを整理して分離してみた。C-x i とかいうツーストローク以上のキーバイン...
- GreaseMonkey スクリプトのデバッグが激しく面倒くさい はてなの入力欄で動く xml-mode と それのナロー化 css-mode バグバグだけどなんか今日はもうやる気しない。留年しそうなんだも...
- 動的補完 in textarea textarea で動く劣化コピー xml-mode 続き。 TAB 入力時動的補完リストを表示させてみる。たいして意味がない気がする。xy...
- Bloglines sanitize <script>alert("unco");</script> なんか Bloglines が title を sanitize しない気が。。。 title に <textarea> って書...
- 似非 xml-mode in textarea 制限つきながら、IE でも動くように。閉じタグ補完とかだけ。 Ajax による Full IME のコードをパクっています。 keypres...