Jump to content

Expect a warning several times: Difference between revisions

From LilyPond wiki
Scheme style
m args -> arg
Line 4: Line 4:


<pre>
<pre>
#(define (expect-warning-times n . args)
#(define (expect-warning-times n . arg)
   (for-each (lambda _ (apply ly:expect-warning args))
   (for-each (lambda _ (apply ly:expect-warning arg))
             (iota n)))
             (iota n)))
</pre>
</pre>

Revision as of 14:46, 28 February 2026

There are times when your LilyPond source file prints warnings when compiled and you may want to suppress these warnings from the output. LilyPond has a Scheme function for this: ly:expect-warning. However, there are times when the same warning is printed several times and ly:expect-warning will only hide one warning at a time. Typing this function several times in a row is tedious.

The Scheme function below takes a string that will match some part of the warning, just like ly:expect-warning, but it also takes an integer for the number of times the warning is printed.

#(define (expect-warning-times n . arg)
   (for-each (lambda _ (apply ly:expect-warning arg))
             (iota n)))

A usage example:

#(expect-warning-times 4 "omitting tuplet bracket")

The hint from the documentation: scheme-functions