#:g1: tinaaの紹介

Posted 2014-04-24 17:30:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の115日目です。

tinaaとはなにか

 tinaaは、Gary Warren King氏作のCommon Lisp製のCommon Lispのコード用のドキュメンテーションツールです。

パッケージ情報

パッケージ名tinaa
Quicklisp
CLiKihttp://cliki.net/tinaa
Quickdocshttp://quickdocs.org/tinaa
common-lisp.nethttp://common-lisp.net/tinaa

インストール方法

(ql:quickload :tinaa)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 使い方はシンプルに

(tinaa:document-system :package 'ppcre "/tmp/cl-ppcre/")

のようにパッケージ名と出力先のディレクトリを指定すればOKです。
出力先のディレクトリ直下に下図のようなHTMLファイルが生成されます。

tinaa

 基本的に関数や変数のドキュメンテーションストリングを集めてきて一覧にしています。手元の環境では、document-systemを実行した際にdefsystem-compatibilityの%map-system-filesでコケました。
参考までにいい加減なパッチを下記に記載してみますので同様の現象の場合試してみてください。

(in-package #:defsystem-compatibility)

(defmethod %map-system-files ((module asdf:module) function system-closure? include-pathname? include-non-source?) (mapc (lambda (thing) ;;(format t "~% ~A" thing) (%map-system-files thing function system-closure? include-pathname? include-non-source?)) #+(:and :asdf (:not :asdf2)) (safe-slot-value module 'asdf::components) #+:asdf2 (asdf:component-children module)))

;;; --------------------------------------------------------------------------- (defmethod %map-system-files ((system asdf:system) function system-closure? include-pathname? include-non-source?) (when system-closure? (dolist (system (collect-system-dependencies system)) (%map-system-files (find-system system) function system-closure? include-pathname? include-non-source?)))

;(format t "~%~A" system) (let ((*relative-pathname* (safe-slot-value system 'asdf::relative-pathname))) (mapc (lambda (thing) ;(format t "~% ~A" thing) (%map-system-files thing function system-closure? include-pathname? include-non-source?)) #+(:and :asdf (:not :asdf2)) (safe-slot-value system 'asdf::components) #+:asdf2 (asdf:component-children system))))

まとめ

 今回は、tinaaを紹介してみました。
綺麗に一覧で参照できるようになると、関数や変数のドキュメンテーションを充実させてみたい気にもなりますね。

comments powered by Disqus