[migemo] Emacs "shy group" 対応と Emacs による連文節対応
Hideyuki SHIRAI ( 白井秀行 )
shirai at meadowy.org
Wed Jun 8 17:44:40 JST 2005
白井です。
ずーーと思っていた内容なのですが、migemo-isearch-min-length に触
発されていろいろと改造しました。目玉は
・shy group が使える Emacs のときは \(?: を使う。
=> Zaurus で心持ち軽くなったかも?
・連文節(というか単語の区切り)のパースを Emacs で行なう。
=> 自由にいろいろと出来るように。
・Migemo の isearch 中は一切の大文字小文字の差異を無視するように
する。
=> 反対の人がいるかしらん。
です。そのため、以下の改造をしました。
1. Ruby Migemo 側
1.1 shy group 対応
option に "--type emacsshy" を増やしました。
1.2 機能ダウン (申し訳ない (_ _))
option に "--noparse (-p)" をつけると一切のパースを行ないません。
2. migemo.el 側
1.1 shy group 対応
migemo.el ロード時に自動的に決定して、"-t emacs" or
"-t emacsshy" のどちらかを使います。
キャッシュファイルも混同しちゃうとまずいので、
昔の Emacs => ~/.migemo-frequent, ~/.migemo-pattern
今時 Emacs => ~/.migemo-frequent.shy, ~/.migemo-pattern.shy
としました。
1.2 Emacs によるパース
migemo-pattern-parser-function で挙動を指定します。
(1) (setq migemo-pattern-parser-function 'migemo-get-pattern-upcase-kugiri)
大文字で分割する。記号の処理をのぞいてほぼ現在の migemo と同じ
挙動。これがデフォルト設定。
(2) (setq migemo-pattern-parser-function 'migemo-get-pattern-space-kugiri)
スペースで分割する。ほとんど白井専用か。
(3) (setq migemo-pattern-parser-function 'migemo-get-pattern-1)
まったく分割しない。Ruby Migemo でも分割しない。
(4) (setq migemo-pattern-parser-function nil)
Ruby Megemo 側に分割処理をまかす。現在の migemo と同じ挙動。
(5) (setq migemo-pattern-parser-function 'なにかの関数)
ご自由に。
となっています。このうち (1), (2) は
migemo-pattern-separator-regex で指定される記号も分割対象としま
す。デフォルトは "[.,]" なので、
hideyuki.shirai => "hideyuki" "." "shirai"
のように分割します。ただし、その前の文字が一文字のときは前の文
字にくっつけます。
h.shirai => "h." "shirai"
な感じにします。数字も対象に入れた方が良いかも。
1.3 emacs によるキャッシュ
migemo-use-pattern-alist が nil でも emacs によるキャッシュを有
効にしました。ただし、nil のときはファイルに保存しません。その
場限りです。
これは、1.2 の Emacs 側のパースを使うと、"shiraiHideyuki" と検
索するときは、
"shirai" => "shirai" + "h" => "shirai" + "hi" => "shirai" + "hid"
のように migemo エンジン?を動かしますが、"shirai" を何度も
migemo 側で検索しないですませるためです。
1.4 isearch 中の大文字/小文字問題
以前からたまに case が違うと検索できない、という話を聞いていま
したが、(真面目に ^^;;;) isearch.el を読んで、migemo な isearch
中は一切の大文字小文字を無視するようにしました。
といった感じの変更内容です。結構大幅かつ勝手に思い込んでいる内容
なので、とりあえず commit しないでパッチとしてつけておきます。
(反対意見などの)ご意見などよろしくです。
## shy group と emacs パースとわけて作れば良かったと、今頃思って
## います ^^:;;
--
白井秀行 (mailto:shirai at meadowy.org)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: shy-parse.diff.gz
Type: application/octet-stream
Size: 4775 bytes
Desc: not available
Url : http://www.namazu.org/pipermail/migemo/attachments/20050608/ec00b762/shy-parse.diff.obj
Migemo メーリングリストの案内