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

[xyzzy:08722] Re: another refer-for



やまもとです。
おはようございます。

Nobuaki Arimaさんの<20030319010603.3927.NARIMA1109@xxxxxxxxxxx>から
>
>> > 山本さんが、全項目の記述や使用例とかを見直してみえるとのことな
>> > ので、追加、変更などがあれば、ご連絡されたほうが良いのでは?
>> あ、ほんとだ、素敵なことになってますね。

・空の項目が結構ある。
・全角半角が入り乱れてる。
・説明になってない部分がある。
などと、気になってたので全項目の見直しをしてます、出来るところだ
けですが。CLtL2の丸写しにならないように、理解しながらやってるの
で進捗は極めて遅めです。(未だ1/3ぐらい?)

>ということで、結論としては、山本さんのところでまとめられているということ
>でいいのでしょうか?

現状では自分でお願いします。

>ちなみに、レファレンスは、どのくらいまとまったものを送るべきなのでしょう
>か。さすがに1つ1つ送られるのも、とりまとめる側からすると勘弁してほしい
>という感じだと思うのですが、数がたまるまで手元においておくと、結局永遠に
>送ることができないような気がするので。

とりまとめなくてもいいので出すのが現実的だと思います。溜めてから
出そうとすると、まさに永遠に出せなくなっちゃうので。
という訳で、お待ちしております。

他の方も抱えているものでマージしても良いものがあれば、出して頂け
ると幸いです。



自分はモチベーションを上げる為に下のようなものを書いてやってます。
そのうちにサイトにまとめて出しますが、よければ使ってみてください。
------------------------------------------------------------------------

;;; -*- Mode: Lisp; Package: user -*-
;;;
;;; reference.l(名前も内容も全て暫定版)

;;; author
;;;     YAMAMOTO Taizo <ymtz@xxxxxxxxxxxxxxx>

;;; date
;;;     Last updated: Thu, 20 Mar 2003 06:47:23 +0900

;;; note
;;;     (暫定版)
;;;     siteinit.l内部でreference.xmlの内容を適当にパーズして
;;;     関数や変数にdocstringを無理やり付けます。例えば、
;;;     describe-functionやaproposの時にその内容の一部を表示できます。

;;; install
;;;     1.解凍してreference.lを~/site-lispにコピーします。
;;;     2.reference.xmlを拾ってきて~/site-lispにコピーします。
;;;     3.~/site-lisp/siteinit.lに以下のコードを追加します。
;;;       ※~/.xyzzyは不可
;;;
;;;             (load-library "reference")
;;;             (reference-to-docstring)
;;;
;;;     4.xyzzyを再ダンプします。

;;; usage
;;;     describe-functionやaproposしてみてください。

;;; misc
;;;	ldocを入れてる人は下の様に関数を再定義すると、呼出形式と一緒に
;;;	関数の説明を見ることができます。
;;;
;;;     (defun ed::ldoc-func-message (symbol)
;;;       "Print name and arguments of function bound to SYMBOL."
;;;       (message (concat (format nil "~S" symbol)
;;;                        " "
;;;                        (format nil "~:@(~A~): ~A"
;;;                                (ed::ldoc-func-get-args symbol)
;;;                                (or (car (split-string (documentation symbol 'function) #\LFD))
;;;                                    "not documented")))))
;;;     

(defvar *reference-xml-path* (merge-pathnames "site-lisp/reference.xml" (si:system-root)))

(defun reference-to-docstring ()
  "reference.xmlの内容をdocstringにする。"
  (interactive)
  (with-output-to-temp-buffer ("*docstring sexp*")
    (set-buffer (ed::find-file-internal *reference-xml-path*))
    (goto-char (point-min))
    (let (title desc sym)
      (while (and (scan-buffer "<title>\\([^\n<]*\\)" :regexp t :tail t)
		  (setq title (match-string 1))
		  (scan-buffer "<description>\n*\\([^<]*\\)" :regexp t :tail t)
		  (setq desc (match-string 1)))
	(setq title (substitute-string title "&amp;" "&"))
	(setq title (substitute-string title "&lt;" "<"))
	(setq title (substitute-string title "&gt;" ">"))
	(setq desc (substitute-string desc "&amp;" "&"))
	(setq desc (substitute-string desc "&lt;" "<"))
	(setq desc (substitute-string desc "&gt;" ">"))
	(and (setq sym (find-symbol title))
	     (format t "(setf (get '~S '~S) ~S)~%"
		     sym
		     (if (fboundp sym)
			 'lisp::function-documentation
		       'lisp::variable-documentation)
		     desc))))
    (eval-buffer  "*docstring sexp*"))
  (delete-buffer (get-file-buffer *reference-xml-path*))
  (delete-buffer "*docstring sexp*"))

-- 
    YAMAMOTO Taizo / 山本 泰三
        mailto:ymtz@xxxxxxxxxxxxxxx
        mailto:yamamoto@xxxxxxxxx
        http://www1.odn.ne.jp/ymtz/
        http://66mhz.com/

Index Home