]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-identifiers.scm
Imported Upstream version 2.16.0
[lilypond.git] / scm / document-identifiers.scm
index ffccf72c30e06294902362e10ba4fc4703ac7fc5..fcd8f932146181b6dc016eac3d1b9d04fbbd1796 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 2006--2011 Han-Wen Nienhuys <hanwen@lilypond.org>
+;;;; Copyright (C) 2006--2012 Han-Wen Nienhuys <hanwen@lilypond.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
 ;;;; it under the terms of the GNU General Public License as published by
        (map symbol->string
             (cddr (cadr (procedure-source func)))))
        (doc (procedure-documentation func))
-       (sign (object-property func 'music-function-signature))
-       (type-names (map type-name sign))
-
+       (sign (ly:music-function-signature music-func))
+       (type-names (map (lambda (pred)
+                         (if (pair? pred)
+                             (format #f "[~a]" (type-name (car pred)))
+                             (format #f "(~a)" (type-name pred))))
+                       sign))
        (signature-str
        (string-join
-        (map (lambda (x) (format "@var{~a} (~a)"
-                                 (car x)
-                                 (cadr x)))
-             (zip arg-names type-names)))))
-    (format
-     "@item @code{~a}~a~a
-@findex ~a
+        (map (lambda (arg type) (format #f "@var{~a} ~a" arg type))
+             arg-names (cdr type-names)))))
+    (format #f
+     "@item @code{~a} ~a ~a~a
+@funindex ~a
 ~a
 "
-     name-sym (if (equal? "" signature-str) "" " - ") signature-str
+     name-sym (car type-names)
+     (if (equal? "" signature-str) "" " - ") signature-str
      name-sym
-     (if doc doc "(undocumented; fixme)"))))
+     (if doc
+         doc
+         (begin
+           (ly:warning "music function `~a' not documented." name-sym)
+           "(undocumented; fixme)")))))
 
 
 (define (document-object obj-pair)
    (else
     #f)))
 
-
-(define (identifier<? a b)
-  (ly:string-ci<?
-   (symbol->string (car a))
-   (symbol->string (car b))))
-
-
 (define-public (identifiers-doc-string)
-  (format
+  (format #f
    "@table @asis
 ~a
 @end table