[#37492] ReFe 0.6 — Minero Aoki <aamine@...>

あおきです。

27 messages 2003/04/01
[#37525] ReFe 0.7 (Re: ReFe 0.6) — Minero Aoki <aamine@...> 2003/04/06

あおきです。

[#37528] Re: ReFe 0.7 (Re: ReFe 0.6) — Koji Arai <JCA02266@...> 2003/04/07

新井です。

[#37545] Re: ReFe 0.7 (Re: ReFe 0.6) — Kazuhiro NISHIYAMA <zn@...> 2003/04/10

西山和広です。

[#37546] Re: ReFe 0.7 (Re: ReFe 0.6) — Koji Arai <JCA02266@...> 2003/04/10

新井です。

[#37551] Re: ReFe 0.7 (Re: ReFe 0.6) — Kazuhiro NISHIYAMA <zn@...> 2003/04/11

西山和広です。

[#37554] refe.el (Re: ReFe 0.7 (Re: ReFe 0.6)) — Koji Arai <JCA02266@...> 2003/04/12

新井です。

[#37619] net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド — Keisuke Minami <keisuke@...>

こんにちは。三並です。

18 messages 2003/04/26

[#37622] net/imapのTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru)

 木村といいます。

31 messages 2003/04/27
[#37628] Re: net/imapのTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/04/28

前田です。

[#37632] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/04/28

 木村といいます。

[#37635] Re: net/imap のTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/04/30

前田です。

[#37638] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/05/01

 木村です。

[#37641] Re: net/imap のTHREAD Extension 対応 — Shugo Maeda <shugo@...> 2003/05/02

前田です。

[#37647] Re: net/imap のTHREAD Extension 対応 — wanowa.kimura@... (kimura wataru) 2003/05/06

 木村です。

[#37648] マッチした部分を配列にしまう方法 — Hirano Satoshi <hirano@...> 2003/05/07

こんにちは。

[ruby-list:37528] Re: ReFe 0.7 (Re: ReFe 0.6)

From: Koji Arai <JCA02266@...>
Date: 2003-04-07 18:23:40 UTC
List: ruby-list #37528
新井です。

In message "[ruby-list:37525] ReFe 0.7 (Re: ReFe 0.6)"
  on 07 Apr 2003 08:02:48 +0900,
  Minero Aoki <aamine@loveruby.net> wrote:

何げに refe.el 添付です(本メール末尾)。かなり即興ですのでバ
グがあるはずです。使い勝手も追求されてません。(まだあまり使っ
てません^^;)

refe の以下の動作を想定しています。

* refe "" で、全メソッドのリストが出ることを想定しています。
* 説明文には、"^---" が含まれることを想定しています。

使い方は

M-x load-library refe

した後、調べたいメソッド名の付近で

M-x refe

します。入力したメソッド名に対して複数のクラス候補がある場合
はクラス名を聞いて来ます。メソッド名、クラス名の入力には補完
が効きます。

誰かがちゃんとしたのを作ってくれるといいなあ。

--
新井康司 (Koji Arai)


(defvar refe-program-name "refe")
(defvar refe-buffer-name "*Refe*")
(defvar refe-method-table nil)

(defun refe-make-completion-table ()
  (setq refe-method-table (make-vector 547 0))
  (with-temp-buffer
    (call-process refe-program-name nil t nil "")

    (goto-char (point-min))
    (while (looking-at "^[A-Z][A-Za-z_0-9:]*[#.]\\(.*\\)")
      (intern (match-string 1) refe-method-table)
      (forward-line)))
  nil)

(refe-make-completion-table)

(defun refe-get-word-at-point ()
  (save-excursion
    (while (looking-at "\\sw\\|\\s_")
      (forward-char 1))
    (if (or (re-search-backward "\\sw\\|\\s_"
				(save-excursion (beginning-of-line) (point))
				t)
	    (re-search-forward "\\(\\sw\\|\\s_\\)+"
			       (save-excursion (end-of-line) (point))
			       t))
	(progn (goto-char (match-end 0))
	       (buffer-substring (point)
				 (progn (forward-sexp -1)
					(while (looking-at "\\s'")
					  (forward-char 1))
					(point))))
      nil)))

(defun refe ()
  (interactive)
  (let* ((default (refe-get-word-at-point))
	 (word (completing-read (if default
				    (format "Method (default %s): " default)
				  "Method: ")
				refe-method-table nil nil nil nil default))
	 (buf (or (get-buffer refe-buffer-name)
		  (generate-new-buffer refe-buffer-name)))
	(pop-up-windows t)
	(pop-up-frames nil))
    (set-buffer buf)
    (setq buffer-read-only nil)
    (erase-buffer)

    (call-process refe-program-name nil buf nil word)

    (goto-char (point-min))
    (if (re-search-forward "^---" nil t)
	nil
      (let ((klass-table (make-vector 17 0))
	    klass)
	(goto-char (point-min))
	(while (looking-at "^\\([A-Z][A-Za-z_0-9:]*\\)[#.]")
	  (intern (match-string 1) klass-table)
	  (forward-line))
	(setq klass (completing-read "Class: "
				    klass-table nil nil nil nil nil))
	(erase-buffer)
	(call-process refe-program-name nil buf nil klass word)))

    (set-buffer-modified-p nil)
    (setq buffer-read-only t)
    (goto-char (point-min))
    (display-buffer buf)))

In This Thread