popup.el:popup-isearch で migemo での検索を。

popup.el の popup-isearch で日本語が検索しづらいので、migemo で検索できるようにいじってみました。
パッチです。

--- /home/khiker/site-lisp/popup.el     2010-04-28 01:19:03.000000000 +0900
+++ /home/khiker/popup.el       2010-04-28 00:55:52.000000000 +0900
@@ -683,7 +683,12 @@
        (<= char 126)))
 
 (defun popup-isearch-filter-list (pattern list)
-  (loop with regexp = (regexp-quote pattern)
+  (loop with regexp = (concat (regexp-quote pattern)
+                              ;; migemize. (require 'migemo) is required!
+                              (and pattern
+                                   (fboundp 'migemo-get-pattern)
+                                   (concat "\\|"
+                                           (migemo-get-pattern pattern))))
         for item in list
         do
         (unless (stringp item)

とりあえず、まだ1日も使ってないですが、動いてるっぽです。

追記

migemo が作る正規表現がでかすぎて、「Regular expression too big」というエラーが出る事があるぽみたいです…。
とりあえず、pattern が2文字以上じゃないと検索しないーとかにした方が良いのかなあとか考えたり考えなかったりです。

更新時刻

  • 2010/04/28/01:55
  • 2010/04/29/03:38