キーバインドの実装
textarea で動く劣化コピー xml-mode の入力まわりを整理して分離してみた。C-x i とかいうツーストローク以上のキーバインドも可能に。ただ、やっぱり文字入力をキャンセルさせる方法がわからないため、入力された文字をあとから削除する方法になってる。チラつく。
これである程度自由にキーバインドが変えられるようになった。
function xmlText_initialize() {
var xml = new xmlText(document.getElementById("xmltext"));
var kb = new keyBinding(document.getElementById("xmltext"), {
"C-x i" : function () { xml.indentLine() },
"TAB" : function () { xml.indentLine() },
"C-q" : function () { xml.indentBuffer() },
"C-." : function () { xml.wellClose() },
"/" : function () { xml.slash() },
"=" : function () { xml.equal() },
"RET" : function () { xml.newLineAndIndent() }
});
}
window.addEventListener("load", xmlText_initialize, true);
劣化コピー xml-mode と一緒に使うとき、キャレット位置が若干混乱するのが微妙。なんで混乱するのかよくわからないのだけれど。
textarea のスクロール位置をセットしなおす方法が分からん。使えないって!
event.preventDefault() を使えばキャンセルできるみたいだ。書き換えよう。
あー、しかもブラウザのキーバインド横取りできる。
スクロール問題解決?
Ctrl+記号を入力すると文字が誤認される。
関連エントリー
- xml-mode in textarea textarea で動く劣化コピー xml-mode まだまだバグがあるんだけど、ぶっちゃけ微妙に飽きてきたので公開 (してモチベーションあ...
- 動的補完 in textarea textarea で動く劣化コピー xml-mode 続き。 TAB 入力時動的補完リストを表示させてみる。たいして意味がない気がする。xy...
- 携帯のキーストローク数 function array_index(val) { for (var i = 0; i < this.length; i++) { if...
- はてダの編集テキストボックスを自動スクロールさせる GM hatena-textarea-scroll.user.js はてなの編集画面を開くたびにいちいち下までスクロールするのが面倒くさいので作っ...
- Windows Terminal で Ctrl-V を殺すと Win+V も動かなくなる https://github.com/microsoft/terminal/issues/322 Windows Terminal の se...