lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: input/regression/scheme-text-spanner.ly: fix problem with constants


From: david . nalesnik
Subject: Re: input/regression/scheme-text-spanner.ly: fix problem with constants (issue 11614044)
Date: Tue, 23 Jul 2013 13:52:13 +0000

On 2013/07/23 13:27:49, dak wrote:
On 2013/07/23 13:05:47, david.nalesnik wrote:
> On 2013/07/23 12:31:25, dak wrote:
> > Frankly, just throw out the crap event-drul and current-event, and
instead
use
> > event-start and event-stop instead of (car event-drul) and (cdr
event-drul).


> OK, will do.
>
>

https://codereview.appspot.com/11614044/diff/1/input/regression/scheme-text-spanner.ly#newcode157
> input/regression/scheme-text-spanner.ly:157: (set! event-drul (cons
'()
'())))))
> On 2013/07/23 12:31:25, dak wrote:
> > You could do (set-car! event-drul '())
> >              (set-cdr! event-drul '())
> > instead in order to not create a new cons cell.
>
> OK, will do.

Well, you will have a hard time doing both.  I think I wrote the
second comment
before the first, and of course if you follow through with the first,
the second
will more or less by necessity turn into (set! event-start '()) (set!
event-stop
'()).

Sorry, replied a bit hastily!

I've thought some more about the issue of trying to change constants
elsewhere in the file.

Specifically, regarding the addition of the new grob description to
all-grob-descriptions, would the following be any better?

So, as I understand it, remove add-grob-description, duplicating its
changes to the description of 'SchemeTextSpanner, and creating a new
variable to avoid tampering with all-grob-descriptions, using that new
variable in the layout block.

#(define all-grob-descriptions-with-outlier
  (cons
    (cons
      'SchemeTextSpanner
      `(
        (bound-details . ((left . ((Y . 0)
                                   (padding . 0.25)
                                   (attach-dir . ,LEFT)
                                   ))
                          (left-broken . ((end-on-note . #t)))
                          (right . ((Y . 0)
                                    (padding . 0.25)
                                    ))
                          ))
        (dash-fraction . 0.2)
        (dash-period . 3.0)
        (direction . ,UP)
        (font-shape . italic)
        (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
        (outside-staff-priority . 350)
        (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
        (staff-padding . 0.8)
        (stencil . ,ly:line-spanner::print)
        (style . dashed-line)

        (meta . ((name . SchemeTextSpanner)
                 (class . Spanner)
                 (interfaces . (grob-interface
                                font-interface
                                line-interface
                                line-spanner-interface
                                side-position-interface
                                spanner-interface))))))
    all-grob-descriptions))

#(set-object-property! 'SchemeTextSpanner 'translation-type? list?)
#(set-object-property! 'SchemeTextSpanner 'is-grob? #t)

[...]

\layout {
  \context {
    \Global
    \grobdescriptions #all-grob-descriptions-with-outlier
  }
  \context {
    \Voice
    \consists \schemeTextSpannerEngraver
  }
}

https://codereview.appspot.com/11614044/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]