From shirai at meadowy.org Wed Jun 8 17:44:40 2005 From: shirai at meadowy.org (Hideyuki SHIRAI (=?iso-2022-jp?B?GyRCR3IwZj0oOVQbKEI=?=)) Date: Wed Jun 8 17:44:49 2005 Subject: [migemo] =?iso-2022-jp?b?RW1hY3MgInNoeSBncm91cCIgGyRCQlAxfiRIGyhC?= =?iso-2022-jp?b?IEVtYWNzIBskQiRLJGgka08iSjhAYUJQMX4bKEI=?= Message-ID: <20050608.174440.88946884.shirai.hideyuki@rdmg.mgcs.mei.co.jp> 白井です。 ずーーと思っていた内容なのですが、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@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