]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/backend-documentation-lib.scm
release: 1.3.109
[lilypond.git] / scm / backend-documentation-lib.scm
index 33ca2f2a19aa68e040b2b9eb1b868ec3b2e4d00e..0667b1bc49abdb87fabb04c8aed4f39941aa8def 100644 (file)
 ;; alist of property descriptions
 
 
-(define (document-element-property property-def element-description only-doc-if-set)
-  "
-"
+(define (backend-property->texi sym)
   (let* (
-       (handle (assoc (car property-def) element-description))
-       (def-val-str (if (eq? handle #f)
-                        "not set"
-                        (scm->texi (cdr handle))))
-                               
-       (name (symbol->string (car property-def)))
-       (type (type-name (cadr property-def)))
-       (desc (caddr property-def))
+       (name (symbol->string sym))
+       (type (object-property sym 'backend-type?))
+       (typename (type-name type))
+       (desc (object-property sym 'backend-doc))
        )
 
-    (if (and  (eq? handle #f) only-doc-if-set)
-       '("" . "")
-       (cons (string-append "@code{" name "} "
-                      "(" type ")"
+    (cons (string-append "@code{" name "} "
+                      "(" typename ")"
                       ":" )
-             (string-append desc
-                            "\nDefault value: "
-                            def-val-str))
+         desc)
+    ))
+
+(define (document-element-property sym element-description only-doc-if-set)
+  (let*
+      (
+       (handle (assoc sym element-description))
+       (defval (if (eq? handle #f)
+                  ""
+                  (scm->texi (cdr handle))
+                  ))
+       (propdoc (backend-property->texi sym))
+       )
+
+    (if (and only-doc-if-set  (eq? handle #f) )
+       '("" . "")
+       (cons (car propdoc) (string-append (cdr propdoc)
+                                          "\nDefault value: "
+                                          defval)))
     ))
-  )
 
 (define (document-interface where interface element-description)
   "
         (name (car interface))
         (desc (cadr interface))
         (props (caddr interface))
-        (docfun  (lambda (x)
+        (docfunc  (lambda (x)
                    (document-element-property
                     x element-description (eq? where 'element))))
-        (docs (map docfun props))
+        (docs (map docfunc props))
         )
 
     (string-append
        (and (pair? x) (number? (car x)) (number? (cdr x))))
       
       (define (ly-gulp-file x) "")
-      (define (ly-element? x) #f)
+      (define (ly-grob? x) #f)
       (define (ly-input-location? x) #f)
       (define (dir? x) #f)
       (define (moment? x) #f)
 (use-modules (ice-9 string-fun))
 
 (define interface-file-str (string-append (ly-gulp-file "interface.scm") "\n(define "))
+
 (define (list-interface-names)
   (let* ((text interface-file-str)
         (r (make-regexp 
         (l (separate-fields-discarding-char #\  ugh list)))
     (reverse (cdr (reverse l)))))
 
+
+
+
 (eval (ly-gulp-file "interface.scm"))
 
 (define interface-description-alist
   (map (lambda (x) (cons (string->symbol x) (eval-string x)))
             (list-interface-names)))
 
+(set! interface-description-alist (sort interface-description-alist alist<?))
+
 (define (document-all-interfaces name)
   (string-append
    (texi-node-menu name (map (lambda (x) (cons (interface-name x) ""))
          (map document-separate-interface
               (map cdr interface-description-alist)))))
 
-
+(define (document-all-backend-properties name)
+  (let*
+      (
+       (ps (sort (map symbol->string all-backend-properties) string<?))
+       (descs (map (lambda (prop)
+                    (backend-property->texi (string->symbol prop)))
+                  ps))
+       (texi (description-list->texi descs))
+       )
+    
+    (string-append
+     (node name)
+     (texi-section 1 name #f)
+     texi)
+  )
+  )
+