Hi Steven, On Tue, Apr 28, 2015 at 5:40 PM, Steven Weber <pant...@hotmail.com> wrote:
> I finally managed to hack together highlighting code for key signatures > that does what I want (ignores the initial key signature, and only > highlights key signatures at the beginning of the line if it was broken > across the line). > But what about the break at measure 14? (I like the highlighting of both.) > > > But, my code feels…inelegant. In particular, I’m using a global variable > Why not move the binding into the let-block of the engraver? A cursory look isn't showing any reason for a global variable, and making it local works with your example. > and I had to define my own alist equality function because I couldn’t find > one with google. Can one of you Scheme gods take a look at what I’m doing > and see if there’s anything obvious I could be doing better? > You write: #(define (alist-equal? l r) (cond ;; Both items are null - this is equal ((and (null? l) (null? r)) #t) ;; Left is null and right isn't is not equal ((and (null? l) (not (null? r))) #f) ;; Left is not null and right is is not equal ((and (not (null? l)) (null? r)) #f) ;; Check for equality of the items ((not (equal? (car l) (car r))) #f) ;; Recurse to the next item (else (alist-equal? (cdr l) (cdr r))))) Why not just: #(define (alist-equal? l r) (equal? l r)) > > And apologies for the formatting. Scheme and I do not get along. > Counting parens drives me crazy, so I format it like I do any other > language that uses braces instead of parens (expect lots and lots of extra > white space!) > > > Frescobaldi highlights matching parentheses, and it will automatically indent for you. OK, well, the default reduces your whitespace dramatically, but weigh that against super-long lines! Possibly you can configure the indent. HTH, David.
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user