2005-11-03
キーバインドの実装
- Reference URI
- http://lowreal.net/logs/2005/11/03/1
- Written Time
- 2005-11-03T11:38:01+09:00
- Tags
-
- script
- javascript
- web
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() を使えばキャンセルできるみたいだ。書き換えよう。
Inserted at 2005-11-03T12:45:20+09:00
あー、しかもブラウザのキーバインド横取りできる。
Inserted at 2005-11-03T12:51:43+09:00
スクロール問題解決?
Inserted at 2005-11-03T13:17:48+09:00
Ctrl+記号を入力すると文字が誤認される。
Inserted at 2005-11-03T19:25:32+09:00
Trackback URI: http://lowreal.net/logs/2005/11/03/1.trackback
NULL
Generated with Taglibro
この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。
Comments (0)