[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 での動作もチェックした方がいいという宿題を
   もらってしまった... (^^;