X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-music.scm;h=bc9fa88ae1a01f1b7188fedda0972946e0feff61;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=7d7e2a9942b974169b722eb2ec39b2e33200c390;hpb=af60e9b57f205a3c2e044ac8db351b42ef3e26ad;p=lilypond.git diff --git a/scm/document-music.scm b/scm/document-music.scm index 7d7e2a9942..bc9fa88ae1 100644 --- a/scm/document-music.scm +++ b/scm/document-music.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2015 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -16,48 +16,45 @@ ;;;; You should have received a copy of the GNU General Public License ;;;; along with LilyPond. If not, see . -(define doc-context (ly:make-global-context $defaultlayout)) - (define (music-props-doc) (make #:name "Music properties" #:desc "All music properties, including descriptions." #:text (let* ((ps (sort (map symbol->string all-music-properties) ly:string-citexi 'music (string->symbol prop))) - ps)) - (texi (description-list->texi descs #f))) + (descs (map (lambda (prop) + (property->texi 'music (string->symbol prop))) + ps)) + (texi (description-list->texi descs #f))) texi))) (define music-types->names (make-hash-table 61)) -(filter-map (lambda (entry) - (let* ((class (ly:camel-case->lisp-identifier (car entry))) - (classes (ly:make-event-class doc-context 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) + +(for-each (lambda (entry) + (let* ((class (ly:camel-case->lisp-identifier (car entry))) + (classes (ly:make-event-class class))) + (if classes + (for-each + (lambda (cl) + (hashq-set! music-types->names cl + (cons (car entry) + (hashq-ref music-types->names cl '())))) + classes)))) + music-descriptions) (define (strip-description x) (cons (symbol->string (car x)) - "")) + "")) (define (music-type-doc entry) (let* ((accept-list (human-listify - (map ref-ify - (map symbol->string - (map ly:translator-name - (filter - (lambda (x) - (engraver-accepts-music-type? (car entry) x)) - all-engravers-list))))))) + (map ref-ify + (map symbol->string + (map ly:translator-name + (filter + (lambda (x) + (engraver-accepts-music-type? (car entry) x)) + all-engravers-list))))))) (make #:name (symbol->string (car entry)) #:text @@ -66,16 +63,16 @@ (symbol->string (car entry)) "} is in music objects of type " (human-listify - (map ref-ify (sort (map symbol->string (cdr entry)) - ly:string-cistring (cdr entry)) + ly:string-cialist music-types->names) ly:alist-cialist music-types->names) ly:alist-cilisp-identifier namesym)) - (classes (ly:make-event-class doc-context class)) - (accept-list (if classes - (human-listify - (map ref-ify - (map symbol->string - (map ly:translator-name - (filter - (lambda (x) - (engraver-accepts-music-types? classes x)) - all-engravers-list))))) - "")) - (event-texi (if classes - (string-append - "\n\nEvent classes:\n" - (human-listify - (map ref-ify (sort (map symbol->string classes) - ly:string-cilisp-identifier namesym)) + (classes (ly:make-event-class class)) + (accept-list (if classes + (human-listify + (map ref-ify + (map symbol->string + (map ly:translator-name + (filter + (lambda (x) + (engraver-accepts-music-types? classes x)) + all-engravers-list))))) + "")) + (event-texi (if classes + (string-append + "\n\nEvent classes:\n" + (human-listify + (map ref-ify (sort (map symbol->string classes) + ly:string-ci