[xyzzy:08722] Re: another refer-for
- Subject: [xyzzy:08722] Re: another refer-for
- From: YAMAMOTO Taizo <ymtz@xxxxxxxxxxxxxxx>
- X-mailer: Datula version 1.51.08 for Windows
やまもとです。
おはようございます。
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 "&" "&"))
(setq title (substitute-string title "<" "<"))
(setq title (substitute-string title ">" ">"))
(setq desc (substitute-string desc "&" "&"))
(setq desc (substitute-string desc "<" "<"))
(setq desc (substitute-string desc ">" ">"))
(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/