Category script.

はてなの入力欄で動く xml-modeそれのナロー化 css-mode

バグバグだけどなんか今日はもうやる気しない。留年しそうなんだもん。一個単位数え間違えてた。これから軽く必死こいても、あがれる確立20%ぐらい。はぁーうまくいかない。

  • インデントしないエリアにバグ。閉じた直後の RET がおかしい。いままでずっと CDATA で囲ってたから気付かなかった。
  • css-mode の開き括弧直後の RET がおかしい。
  • 補完リストの位置がおかしい。offsetLeft がおかしいのか?
  • はてなのエリアだと右下の広げるやつを一回やっとかないと横に伸びる。はてなの JS とのコンフリクト

物好きの方がいたらどうぞ。eta.user.js

余計なことしなくていいよモード (謎) は M-x c RET

  1. トップ
  2. javascript
  3. GreaseMonkey スクリプトのデバッグが激しく面倒くさい
  1. トップ
  2. firefox
  3. GreaseMonkey スクリプトのデバッグが激しく面倒くさい
  1. トップ
  2. script
  3. GreaseMonkey スクリプトのデバッグが激しく面倒くさい
  1. トップ
  2. xml
  3. GreaseMonkey スクリプトのデバッグが激しく面倒くさい

違いがわからんうえに、ちゃんとキーボードと対応してない。英語キーボードだとちゃんと対応してんのか?

e.which, e.charCode, e.keyCode, String.fromCharCode(e.which) の順で、前者が keydown、後者が keypress。環境は Firefox 1.0.7

;
61 0 61 = / 59 59 0 ;
C-;
61 0 61 = / 61 61 0 =
C-+ (Ctrl+Shidt+;) テンキー側の C-+ は問題なし
61 0 61 = / 61 61 0 =
C-:
59 0 59 ; / 59 59 0 ;
C-| (Ctrl+Shift+\)
220 0 220 テ・ / 発生しない
C-a
65 0 65 A / 97 97 0 a
C-F1
112 0 112 p / 0 0 112

差が一定ってわけじゃないし、どうやってマッピングすればいいか見当がつかない。さらに IE だとイベントが発生するタイミングがまた全然違う。帰れ。

Gecko_DOM_Reference:Examples#Example_7:_Displaying_Event_Object_Constants

つまり、正確に処理するにはキーボード配置を自分で作らないとダメなわけか。入力された文字を取得したいのに、入力されたキーしか取得できない。Gecko の e.charCode って charCode じゃないだろ。

それにしてもなんでセミコロンの位置でDOM_VK_EQUALSなんだろう。わからん。

  1. トップ
  2. javascript
  3. Event.which, Event.charCode, Event.keyCode
  1. トップ
  2. script
  3. Event.which, Event.charCode, Event.keyCode
  1. トップ
  2. dom
  3. Event.which, Event.charCode, Event.keyCode

似非 xyzzy

テキストエリアの管理部分と、モード用機能を分離してみた。似非ミニバッファ搭載!

新しくモード用のオブジェクト (関数) をつくればいい感じに。まぁあんまり綺麗な実装じゃないんだけど……

似非ミニバッファは M-x でフォーカス移動。入力した内容を eval した結果を挿入。M-x new Date() RET とかやれば Sat Nov 05 2005 06:57:29 GMT+0900 みたいに挿入される。ただの eval なのでグローバルに見えてる関数じゃないと使いにくい。

モードはテスト用に xmlc (中身は未実装)。M-x c RET とかやるとモード変更。これは特別に判定させてる。

余談だけど M-x (new Date()).w3cdtf() RET とか眠い。

再び Firefox 限定になりました。IE と Gecko とだと、イベント起きたときの e.which とか e.keyCode とかがバラバラなんだもん。IE は Ctrl+* で keypress が発生しないし。

まぁ色分けできない textarea ではかなり微妙な感じになってきました。XML はインデントさえまともなら色ついてなくてもいい (逆にインデントがまともじゃないと色がついてても読めない) んだけどねぇ。

リージョンをサポート。C-SPC でマーク。C-w (kill-region), M-w (copy-region-as-kill), C-y (yank), C-x n (narrow-to-region), C-x w (widen)

  1. トップ
  2. web
  3. *-mode in textarea
  1. トップ
  2. script
  3. *-mode in textarea
  1. トップ
  2. javascript
  3. *-mode in textarea