1 (use-modules (ice-9 format))
3 (define (document-music-function music-func-pair)
5 ((name-sym (car music-func-pair))
6 (music-func (cdr music-func-pair))
7 (func (ly:music-function-extract music-func))
10 (cddr (cadr (procedure-source func)))))
11 (doc (procedure-documentation func))
12 (sign (object-property func 'music-function-signature))
13 (type-names (map type-name sign))
16 (signature (zip arg-names arg-names type-names))
19 (map (lambda (x) (format "@var{~a} (~a)"
23 (zip arg-names type-names)))))
28 @item @code{~a} - ~a\n
33 name-sym signature-str
35 (if doc doc "(undocumented; fixme)"))))
39 (define (document-object obj-pair)
41 ((ly:music-function? (cdr obj-pair)) (document-music-function obj-pair))
45 (define-public (identifiers-doc-string)
56 (ly:module->alist (current-module)))))))