NULL::something

Login via flickr, はてな, TypeKey.

2005-11-03

キーバインドの実装

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

Comments (0)

Trackback URI: http://lowreal.net/logs/2005/11/03/1.trackback

NULL

RSS feed meter for http://lowreal.net/logs/latest

Alternates

  1. RSS 1.0
  2. Atom 1.0

Generated with Taglibro

この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。