[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:00283] multiple completions (was Re: mhc-snap19991211)
複数補完の件の続きです。
Stefan さんから新な助言をいただきました。
mapcar を取り除くと *Completions* buffer の件はテストしたかぎりでは
解消される様です。
# が、彼いわく「うまくいくかも」程度の発言でした。
修正をすると以下の様になります。
(setq prompt "Prompt: ")
(setq table '(("see" "this" "code" "work" "not")))
(setq separator ",")
(defun my-completion (str pred all)
(let ((lead ""))
(when (string-match (concat ".*" separator) str)
(setq lead (substring str 0 (match-end 0)))
(setq str (substring str (match-end 0))))
(if all
(all-completions str table pred)
(let ((result))
(setq result (try-completion str table pred))
(if (not (stringp result))
result
(concat lead result))))))
(completing-read prompt 'my-completion)
# completing-read の REQUIRE-MATCH が non-nil の時の動作や
partial-completion-mode での動作もチェックした方がいいという宿題を
もらってしまった... (^^;