X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-translation.scm;h=8de267f6d94f7e6b6ae27bcbb84620f1c8687146;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=3e8c308d5b5a8a9a9657963c1d69e0f88192381c;hpb=2c3bd5e85d39155e3e6804f9818722bef483056d;p=lilypond.git diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 3e8c308d5b..8de267f6d9 100644 --- a/scm/document-translation.scm +++ b/scm/document-translation.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2000--2011 Han-Wen Nienhuys +;;;; Copyright (C) 2000--2015 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -31,80 +31,79 @@ (define (engraver-doc-string engraver in-which-contexts) (let* ((propsr (assoc-get 'properties-read (ly:translator-description engraver))) - (propsw (assoc-get 'properties-written (ly:translator-description engraver))) - (accepted (assoc-get 'events-accepted (ly:translator-description engraver))) - (name-sym (ly:translator-name engraver)) - (name-str (symbol->string name-sym)) - (desc (assoc-get 'description (ly:translator-description engraver))) - (grobs (engraver-grobs engraver))) + (propsw (assoc-get 'properties-written (ly:translator-description engraver))) + (accepted (assoc-get 'events-accepted (ly:translator-description engraver))) + (name-sym (ly:translator-name engraver)) + (name-str (symbol->string name-sym)) + (desc (assoc-get 'description (ly:translator-description engraver))) + (grobs (engraver-grobs engraver))) (string-append desc "\n\n" (if (pair? accepted) - (string-append - "Music types accepted:\n\n" - (human-listify - (map ref-ify (sort (map symbol->string accepted) ly:string-cistring accepted) ly:string-citexi - (map (lambda (x) (property->texi 'translation x '())) - (sort propsr ly:symbol-citexi + (map (lambda (x) (property->texi 'translation x '())) + (sort propsr ly:symbol-citexi - (map (lambda (x) (property->texi 'translation x '())) - (sort propsw ly:symbol-citexi + (map (lambda (x) (property->texi 'translation x '())) + (sort propsw ly:symbol-cistring contexts) - ly:string-cistring contexts) + ly:string-ciengraver-table (make-hash-table 61)) -(map +(for-each (lambda (x) (hash-set! name->engraver-table (ly:translator-name x) x)) (ly:get-all-translators)) @@ -129,45 +128,46 @@ (let* ((eg (find-engraver-by-name name))) (cons (string-append "@code{" (ref-ify (symbol->string name)) "}") - (engraver-doc-string eg #f)))) + (engraver-doc-string eg #f)))) (define (document-property-operation op) (let ((tag (car op)) - (context-sym (cadr op)) - (args (cddr op)) - ) + (context-sym (cadr op)) + (args (cddr op)) + ) (cond ((equal? tag 'push) (let* - ((value (car args)) - (path (cdr args))) - - (string-append - "@item Set " - (format "grob-property @code{~a} " - (string-join (map symbol->string path) " ")) - (format "in @ref{~a} to ~a." - context-sym (scm->texi value)) - "\n"))) + ((value (car args)) + (path (cdr args))) + + (string-append + (format #f "@item Set grob-property @code{~{~a~^.~}} " path) + (format #f "in @ref{~a} to" context-sym) + (if (pretty-printable? value) + (format #f ":~a\n" (scm->texi value)) + (format #f " ~a.\n" (scm->texi value)))))) ((equal? (object-property context-sym 'is-grob?) #t) "") ((equal? tag 'assign) - (format "@item Set translator property @code{~a} to ~a.\n" - context-sym - (scm->texi (car args)))) - ))) + (string-append + (format #f "@item Set translator property @code{~a} to" context-sym) + (if (pretty-printable? (car args)) + (format #f ":~a\n" (scm->texi (car args))) + (format #f " ~a.\n" (scm->texi (car args))))))))) (define (context-doc context-desc) (let* ((name-sym (assoc-get 'context-name context-desc)) - (name (symbol->string name-sym)) - (aliases (map symbol->string (assoc-get 'aliases context-desc))) - (desc (assoc-get 'description context-desc "(not documented")) - (accepts (assoc-get 'accepts context-desc)) - (consists (assoc-get 'consists context-desc)) - (props (assoc-get 'property-ops context-desc)) - (grobs (context-grobs context-desc)) - (grob-refs (map ref-ify (sort grobs ly:string-cistring name-sym)) + (aliases (map symbol->string (assoc-get 'aliases context-desc))) + (desc (assoc-get 'description context-desc "(not documented")) + (accepts (assoc-get 'accepts context-desc)) + (consists (assoc-get 'consists context-desc)) + (props (assoc-get 'property-ops context-desc)) + (defaultchild (assoc-get 'default-child context-desc)) + (grobs (context-grobs context-desc)) + (grob-refs (map ref-ify (sort grobs ly:string-ci #:name name @@ -175,72 +175,76 @@ (string-append desc (if (pair? aliases) - (string-append - "\n\nThis context also accepts commands for the following context(s):\n\n" - (human-listify (sort aliases ly:string-cistring accepts) - ly:string-cistring accepts) + ly:string-citexi - (map document-engraver-by-name (sort consists ly:symbol-citexi + (map document-engraver-by-name (sort consists ly:symbol-cistring (assoc-get 'grobs-created (ly:translator-description eg)))))) + '() + (map symbol->string (assoc-get 'grobs-created (ly:translator-description eg)))))) (define (context-grobs context-desc) (let* ((group (assq-ref context-desc 'group-type)) - (consists (append - (if group - (list group) - '()) - (assoc-get 'consists context-desc))) - (grobs (apply append - (map engraver-grobs consists)))) + (consists (append + (if group + (list group) + '()) + (assoc-get 'consists context-desc))) + (grobs (append-map engraver-grobs consists))) grobs)) (define (all-contexts-doc) (let* ((layout-alist - (sort (ly:output-description $defaultlayout) - (lambda (x y) (ly:symbol-cistring (map car layout-alist)) ly:string-cistring (map car layout-alist)) ly:string-ci #:name "Contexts" @@ -251,8 +255,8 @@ (define all-engravers-list (ly:get-all-translators)) (set! all-engravers-list (sort all-engravers-list - (lambda (a b) (ly:string-cistring (ly:translator-name a)) - (symbol->string (ly:translator-name b)))))) + (lambda (a b) (ly:string-cistring (ly:translator-name a)) + (symbol->string (ly:translator-name b)))))) (define (all-engravers-doc) (make @@ -264,12 +268,12 @@ (define (translation-properties-doc-string lst) (let* ((ps (sort (map symbol->string lst) ly:string-cisymbol ps)) - (propdescs - (map - (lambda (x) (property->texi 'translation x '())) - sortedsyms)) - (texi (description-list->texi propdescs #f))) + (sortedsyms (map string->symbol ps)) + (propdescs + (map + (lambda (x) (property->texi 'translation x '())) + sortedsyms)) + (texi (description-list->texi propdescs #f))) texi)) (define (translation-doc-node) @@ -284,10 +288,10 @@ #:name "Tunable context properties" #:desc "All tunable context properties." #:text (translation-properties-doc-string - all-user-translation-properties)) + all-user-translation-properties)) (make #:name "Internal context properties" #:desc "All internal context properties." #:text (translation-properties-doc-string - all-internal-translation-properties))))) + all-internal-translation-properties)))))