2009/8/5 Mark Polesky <markpole...@yahoo.com>: > Is it possible to write a scheme procedure to test if a given > context contains a particular engraver? Like... > (context-has-engraver? context 'Span_arpeggio_engraver)
>From engraver-doc-string: (if in-which-contexts (let* ((layout-alist (ly:output-description $defaultlayout)) (context-description-alist (map cdr layout-alist)) (contexts (apply append (map (lambda (x) (let* ((context (cdr (assoc 'context-name x))) (group (assq-ref x 'group-type)) (consists (append (if group (list group) '()) (cdr (assoc 'consists x))))) (if (member name-sym consists) (list context) '()))) context-description-alist))) Unfortunately, this doesn't seem particularly useful, since you need access to the correct output-def: $defaultlayout won't pick up a Span_arpeggio_engraver in the Staff context if it's been added using \with. Regards, Neil _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel