2007年 10月 27日

今の Amalgam の曖昧検索と Chemr の補完

r = /(#{str.split(//).map {|c| Regexp.escape(c) }.join(").*?(")})/i
@now.concat @candidates.select {|i|
	r === i.name
}.sort_by {|i|
	# 文字が前のほうに集っているほど高ランクになるように
	m = r.match(i.name)
	(0...m.size).map {|i| m.begin(i) }.inject {|p,i| p + i }
}

もっとうまくかけるかな、というかいいアルゴリズムあるかな……(Chemr にもうつそう)
いまつかってるかぎりだとけっこういい感じ

adp
Adobe Photoshop
fi
Finder
dip
Displays.prefPane
dis
Displays.prefPane
thu
Thunderbird
safa
Safari
tem
Terminal
trm
Terminal
itu
iTunes

みたいにそれっぽくトップにくる。てきとうにうってもあたるのはやっぱいいなぁ。QS もそうだけど


あと Chemr で TAB おしたときに

keys[0].zip(*keys[1..-1]) do |a|
	m = a.first.downcase
	if a.all? {|v| v && (m == v.downcase)}
		common << m
	else
		break
	end
end

ってやってるけど、もっとうまく書けないかなぁ……要素中の先頭から共通の部分を最長でもってくる……

こういうの考えるの苦手すぎる……すなわち頭が悪いというこなんだけど……

Chemr 2007-10-27

http://coderepos.org/share/changeset?new=lang%2Fruby%2FChemr%40759&old=lang%2Fruby%2FChemr%40740

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

  • .chm バンドルをサポート
  • 検索結果がなくなった場合自動的に曖昧検索になるように
    • 曖昧検索中はテーブルビューが赤くなる
    • かなり重いのでデフォルトにはできない……