2 ;; document-identifiers.scm -- implement documentation
3 ;; of identifiers from .ly file.
5 ;; source file of the GNU LilyPond music typesetter
7 ;; (c) 2006 Han-Wen Nienhuys <hanwen@lilypond.org>
11 (use-modules (ice-9 format))
13 (define (document-music-function music-func-pair)
15 ((name-sym (car music-func-pair))
16 (music-func (cdr music-func-pair))
17 (func (ly:music-function-extract music-func))
20 (cddr (cadr (procedure-source func)))))
21 (doc (procedure-documentation func))
22 (sign (object-property func 'music-function-signature))
23 (type-names (map type-name sign))
26 (signature (zip arg-names arg-names type-names))
29 (map (lambda (x) (format "@var{~a} (~a)"
33 (zip arg-names type-names)))))
38 @item @code{~a} - ~a\n
43 name-sym signature-str
45 (if doc doc "(undocumented; fixme)"))))
49 (define (document-object obj-pair)
51 ((ly:music-function? (cdr obj-pair)) (document-music-function obj-pair))
55 (define-public (identifiers-doc-string)
66 (ly:module->alist (current-module)))))))