Keep only address after completion

Hideyuki SHIRAI (白井秀行) shira****@meado*****
2002年 10月 2日 (水) 12:35:52 JST


白井です。

# 土屋さんの現実逃避先が lsdb になってうれしい限り :-)

現在、lsdb に以下の advice をあてているのですが、これ、本体に取
り込んじゃっても良いでしょうか?補完後に "key <address>" となっ
ていたら、key 部分を消去するものですが、私の場合、残ると結構うざっ
たいものがあるのです。

当然、何らかの変数をもうけて挙動を切り変えます。が、良い名前が浮
かばない。。。


  (defvar lsdb-complete-point nil)
  
  (defadvice lsdb-complete-name-highlight (before keep-point activate)
    (if (and start end)
	(setq lsdb-complete-point
	      (cons (or (and (markerp start)
			     (marker-position start))
			start)
		    end))
      (setq lsdb-complete-point nil)))

  (defadvice lsdb-complete-name-highlight-update (after remove-key activate)
    (unless (eq this-command 'lsdb-complete-name)
      (when lsdb-complete-point
	(let* ((start (car lsdb-complete-point))
	       (end (cdr lsdb-complete-point))
	       (str (buffer-substring start end)))
	  (when (string-match "^[^<]+<\\([^>]+\\)>$" str)
	    (setq str (match-string 1 str))
	    (delete-region start end)
	    (insert str))))))

P.S.
それと『このフォルダでは学習しない』という仕組みがあると良いです
ね。Mew ならすぐでっち上げられるのですが、汎用的な方が良いでしょ
うか。

-- 
白井秀行 (mailto:shira****@meado*****)



Lsdb-info メーリングリストの案内
Back to archive index