(defun skk-server-completion-migemo-get-pattern (word)
(let* ((jword (let ((str-list (cdr (split-string word ""))))
(with-temp-buffer
(set-mark (point))
(dolist (c str-list)
(let ((last-command-char (string-to-char c)))
(skk-kana-input 1)))
(buffer-string))))
(result-result-list))
(dolist (key (list word jword))
(let ((midasi-list (skk-server-completion-get-midasi-list key))
(result-list (list key)))
;; 再変換
(dolist (midasi midasi-list)
(let ((skk-henkan-key midasi))
;; server だけだとよくない?
(setq result-list
(let ((kouho-list (cons skk-henkan-key (skk-search-server-1 nil nil))))
(if result-list
(append result-list kouho-list)
kouho-list)))))
(setq result-result-list (append result-list result-result-list))))
(regexp-opt result-result-list)))
(defalias 'migemo-get-pattern 'skk-server-completion-migemo-get-pattern)
(skk-server-completion-migemo-get-pattern "machida")
→ "machida\\|まちだ\\(?:あきら\\|えき\\|おだきゅう\\|か\\(?:いど
う\\|つひこ\\|ん\\)\\|がくえん\\|こう\\|さ\\(?:だむ\\|とる\\)\\|し
\\(?:のぶ\\|みん\\|も\\)?\\|せい\\(?:いち\\|し\\)\\|そうほう\\|て
\\(?:るみ\\|ん\\)\\|としのぶ\\|ほうめん\\|まち\\|やすこ\\)?\\|町田
\\(?:;人名&地名\\|街道\\|学園\\|顕;フルネーム,最高裁長官\\|康
\\(?:;フルネーム,パンク歌手 第123回芥川賞\\|子\\)\\|市民\\|宗
鳳;フルネーム,東京外国語大教授 宗教学者\\|勝彦;フルネーム,シャー
プ社長\\|小田急\\|成一;フルネーム,『dancyu』副編集長\\|誠
之;フルネーム,日本紙アカデミー会長\\|定;フルネーム,ケミカル銀行副
支店長\\|典留見;フルネーム,日本発明専門学院教授\\|忍;フルネーム,庶
民文化探究家\\|敏暢;フルネーム,国立環境研究所\\|方面\\|睿;フルネー
ム,荘内銀行頭取\\|[駅下間康市町店]\\)?"

ただし、インクリメンタルに使うには遅くて使い物になりそうにありません(最後の正規表現を得る、という使い方ならOKな気はする)。あと、Annotation が入ってしまうので、本当は取り除く必要がある。

コメントを残す

メールアドレスが公開されることはありません。