2005年 11月 05日

*-mode in textarea

似非 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)

しにがみのバラッド。@電撃hp 38

電撃 hp 2005 OCTOBER VOLUME 38 「しにがみのバラッド。てのひらの銀河<前編> Cherish You (Side-A)」 76ページ にヘッドフォン娘がっていう話を友人から聞いて貸してもらった。絵のやつはアートモニターシリーズっぽいヘッドフォン。

作中にデムパったヘッドフォンガールがでてくるんだけど、名前が黒崎クロエ。笑うって。笑うって。

樋浦トイロってなんだっけっていう感じだったけど親父の話が出てきたところで思い出す。あぁ。あぁ。とかなんとか。

臭いがするのは、メロディーフラッグ (BUMP OF CHICKEN)・MISS WORLD (ART-SCHOOL)・乾いた花 (ART-SCHOOL)・鋼鉄の朝 (BURGER NUDS) trick or treat (Good Dog Happy Men)

なんか消化しきれてないんだなぁって思った。ばらばらというか、なんというか。思い込みの激しい登場人物が多いとかなんとか誰かが言ってました。

ヘッドフォンの役割は理想的だった。役割なんて1つしかないけど。

スウィングガールズ

テレビでやってたのを見た。

セーラー服!

メガネの女の子が危険

なんか短いよね。特に前半

竹中直人が割りと好きなんだけど、こう、やっぱ竹中直人じゃないとダメだなって感じがしてよかった。あとドラムソロがカッコヨサス

2005年 11月 04日

動的補完 in textarea

textarea で動く劣化コピー xml-mode 続き。

TAB 入力時動的補完リストを表示させてみる。たいして意味がない気がする。xyzzy の dabbrev に相当。

デフォルトの内容で j[TAB] とすると ja, javascript, js が候補にあがる。Down/Up で選択してもう一度 TAB を押すと補完される。

「動的」なので、適当に vfsgergfherkgr とか入力したあと、vfs[TAB] とかやれば補完される。

似非 xml-mode じゃホント意味ないなぁ。っていうかほんとはタグの予測補完をやろうと思ったんだけどめんどくてやめたんです。動的補完のが簡単だけどソレなりの面白さはあるかなと。

関係ないところでは C-x h を入力したときキーバインド一覧をだすようにしてみた。微妙。

直前に動的補完できそうな文字がない場合は、親要素に合わせて開始タグ候補をリストするようにしてみた。

xml.complementList = {
"head" : ['<meta name="" content=""/>', '<link rel="" href=""/>'],
"body" : ['<div class="section"', "<p>", "<address>"],
"div"  : ['<div class="section"', "<p>"],
"p"    : ['<abbr title', "<span class"],
"ul"   : ["<li>"],
"ol"   : ["<li>"],
"dl"   : ["<dt>", "<dd>"]
"pre"  : ["<![CDATA["]
};

Bloglines can't find my feed

2005-10-20 を最後に更新されてないらしいです。たぶん DNS エントリ消したせいなので復活させて 301 投げなおします。いままで 301 返してたつもりだったんだけどなぁ。今 eNom がメンテ中でなにもできん。

DNS 更新 / ドメイン設定 / リダイレクト設定 が終わった。Bloglines 巡回待ち。

1時間以上たったけど更新されないな。ちゃんとリダイレクトされているんだけど。Bloglines の挙動をまとめたページとかないのかなぁ。わけわからんよ。

似非 xml-mode in textarea

制限つきながら、IE でも動くように。閉じタグ補完とかだけ。

Ajax による Full IME のコードをパクっています。

keypress 時のコードがうまくかければもうちょい使えるだろうけど、いかんせん IE はデバッグしにくいのでやる気起きない。Opera も。

Feed クロールの混乱

mixi の最新日記も更新されないなぁ。わからん。なにが悪いのか全然分からん。

Fucking IE

IE がモノとして存在していたら、とりあえず床に叩きつけ、五階建てマンションのベランダから踏み切りにほうりなげ、電車によりつぶされる様なストーリーを連想したりするんだけど、きっと IE がモノとして存在するとすれば、東京タワーあるいはもっとよくわからんデカイものなのだろうから、叩きつけることも、五階建てマンションのベランダから放り投げることもできないし、ましてや踏み切りにいきなり東京タワーなんて現れた日には事故どころじゃないよサイコキネシスだ、とここまで書いてちょっと切なくなってきた。つまるところ今なんでこのトップページだけが IE でズレて表示されるのか全くわからなくてむかついていたわけです。CSS のどこ書き換えてもなおらねぇ。a { border: 1px solid red } とかやるとなおるけどな!!

というか、なんでトップページだけなんだよと。意味わかんねぇよと。IE なんて死んでしまえばいいんだ。ほんとうに。でも俺と IE どっちのほうが価値があるかっていったら明らかに IE さんなわけで、あぁ、これはきっと僻みなんだな。俺ってばバカなやつ、あはは。とかなんとか。

自動筆記で日記書くのって頭悪いなぁ。なぁ。

そんなわけで、もう知らない。知らないったら知らないよ!!!!

Bloglines sanitize <script>alert("unco");</script>

なんか Bloglines が title を sanitize しない気が。。。

title に &lt;textarea&gt; って書いたやつ (すなわちタグじゃなく実態参照) からバグって表示される。なんですか。いぢめ食らってますか僕。

script じゃダメっぽいな。textarea だけか。

で、いつリダイレクトのほうの URL に書き換わるんだろう。

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() を使えばキャンセルできるみたいだ。書き換えよう。

あー、しかもブラウザのキーバインド横取りできる。

スクロール問題解決?

Ctrl+記号を入力すると文字が誤認される。