]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-music.scm
only do staffline avoidance if we're inside the staff or inside the
[lilypond.git] / scm / document-music.scm
index 31980d5fc026bf2e744b4e1cded74dfdb95f7ce0..b720b592f722a64a3bef973157b15b6371b05ef8 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  1998--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (music-props-doc)
       texi)))
 
 (define music-types->names (make-vector 61 '()))
-(map (lambda (entry)
-       (let* ((types (cdr (assoc 'types (cdr entry)))))
-        (map (lambda (type)
-               (hashq-set! music-types->names type
-                           (cons (car entry)
-                                 (hashq-ref music-types->names type '()))))
-             types)))
-     music-descriptions)
+(filter-map (lambda (entry)
+             (let* ((class (ly:camel-case->lisp-identifier (car entry)))
+                    (classes (ly:make-event-class class)))
+               (if classes
+                   (map (lambda (cl)
+                          (hashq-set! music-types->names cl
+                                      (cons (car entry)
+                                            (hashq-ref music-types->names cl '()))))
+                        classes)
+                   #f)))
+           
+           music-descriptions)
 
 (define (strip-description x)
   (cons (symbol->string (car x))
 (define (music-doc-str obj)
   (let* ((namesym  (car obj))
         (props (cdr obj))
-        (types (cdr (assoc  'types props))))
-    
+        (class (ly:camel-case->lisp-identifier namesym))
+        (classes (ly:make-event-class class))
+        (event-texi (if classes
+                        (string-append
+                         "\n\nEvent classes:\n"
+                         (human-listify (map ref-ify (map symbol->string classes)))
+                         "\n\n"
+                         "\n\nAccepted by: "
+                         (human-listify
+                          (map ref-ify
+                               (map symbol->string (map ly:translator-name
+                                                        (filter
+                                                         (lambda (x) (engraver-accepts-music-types? classes x)) all-engravers-list))))))
+                        "")))
+
     (string-append
      (object-property namesym 'music-description)
-     "\n\nMusic types:\n"
-     (human-listify (map ref-ify (map symbol->string types)))
-     "\n\n"
-     "\n\nAccepted by: "
-     (human-listify
-      (map ref-ify
-          (map symbol->string (map ly:translator-name
-                                   (filter
-                                    (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
+     event-texi
      "\n\nProperties: \n"
      (description-list->texi
       (map