2007年 10月 25日

Chemr

今日のスナップショット

http://lab.lowreal.net/test/chemr/Chemr.2007-10-24.dmg

全部入りの dmg です。RubyCocoa さえ同梱してあります (svn head にちかめ)。たれかです。


あとキーバインドを設定からよむようにして (たぶん ~/.chemr/chemr-keys あたりを eval するだけ)、ユーザ CSS はかなぁ。実装自体よりどうやったら簡単かで悩むむ。

キーバインドはいまのところ

keybinds = {
	"C-j" => self.method(:nextCandidate),
	"C-n" => self.method(:nextCandidate),
	"C-k" => self.method(:prevCandidate),
	"C-p" => self.method(:prevCandidate),
	"¥r"  => self.method(:jumpToCurrent),
	"¥t"  => self.method(:completion),
	" "   => Proc.new {|s|
		@webview.stringByEvaluatingJavaScriptFromString <<-JS
			window.scrollBy(0, 200);
		JS
	},
	"C-u" => Proc.new {|s|
		@search.stringValue = ""
	},
	"G-[" => Proc.new {|s|
		@webview.goBack
	},
	"G-]" => Proc.new {|s|
		@webview.goForward
	},
	"G-=" => Proc.new {|s|
		@webview.makeTextLarger(self)
	},
	"G--" => Proc.new {|s|
		@webview.makeTextSmaller(self)
	},
}

こんなかんじにしてある。.call! .call! Duck Typing! JS よんでるのがすこしきもいけど、WebView の API しらべるより簡単だし、いろいろできそうな感じがしてこれはこれでいい気がした

とにかくもう Ruby で書いてあるからもうなんでもできますね。ってかんじだけれど、トピックツリーを処理させるようにすると、NSOutlineView のよびだし (でも delegate メソッドではない) で頻繁に落ちようになったり、あと謎のタイミングで落ちるようになったりしたので機能を無効化してある。どうせキーワード検索しかつかわない。

2ファイルにしか分離せずクラスに機能をめっさ詰めこんでる (デリゲート対象になりまくってる)。これたぶんよくないんだろうけど、めんどいしなぁ。