[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00282] Re: mhc-snap19991211



nom> Category の補完はまだです。仕様の段階で悩んでます。
nom> Category は 1つにしてしまっても不自由ないのかな、と思うようにも
nom> なりました。既に複数書いて使ってる人はいますか?

まだ使用していないですが、使用しそうです...

きょう gnu.emacs.help で補完あたりの話をしていたら Stefan Monnier さん
にサンプルコードをいただきました。

そのままでは動かなかったので、ちょっと手を加えました。その結果以下の
様なものができたました。

(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
	(mapcar 
	 (lambda (s)
	   (concat lead s))
	 (all-completions str table pred))
      (let ((result))
	(setq result (try-completion str table pred))
	(if (not (stringp result))
	    (concat lead str)
	  (concat lead result))))))

(completing-read prompt 'my-completion)

こんな感じのものを応用するというのはいかがでしょうか? 

# *Completions* buffer の中身が気になります。上記のコードを
   実行し、「see,」を補完すればわかると思います。なんとかできないかなぁ。