Expect a warning several times: Difference between revisions

Scheme function to suppress several warnings
 
m Add Category
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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: <code>ly:expect-warning</code>. However, there are times when the same warning is printed  several times and <code>ly:expect-warning</code> will only hide one warning at a time.  Typing this function several times in a row is tedious.
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: <code>ly:expect-warning</code>. However, there are times when the same warning is printed  several times and <code>ly:expect-warning</code> 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 <code>ly:expect-warning</code>, but it also takes an integer for the number of times the warning is printed.
The [https://lilypond.org/doc/v2.24/Documentation/internals/scheme-functions Scheme function] below takes a string that will match some part of the warning, just like <code>ly:expect-warning</code>, but it also takes an integer for the number of times the warning is printed.


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


Line 12: Line 12:


<code>#(expect-warning-times 4 "omitting tuplet bracket")</code>
<code>#(expect-warning-times 4 "omitting tuplet bracket")</code>
[[Category:Scheme]]