+2002-04-12 Heikki Junes <hjunes@cc.hut.fi>
+
+ * lilypond-font-lock.el: Handle slurs \( and \), numbers,
+ multi-measure rests like "R1 *4" and scheme (typically has '#'
+ in the beginning). Small fixes. Add few reserved words.
+
2002-04-12 Jan Nieuwenhuizen <janneke@gnu.org>
* Documentation/topdocs/INSTALL.texi: Updates for MacOS X and
windows viewing commands, remove silly comment about Yap.
2002-04-10 Mats Bengtsson <matsb@s3.kth.se>
+
+ * Documentation/topdocs/INSTALL.texi: Describe how to learn
+ configure to find kpathsea on for example Slackware 8.0.
+
+ * scripts/ly2dvi.py (non_path_environment): Set $TEXMF correctly.
* scm/grob-description.scm (MultiMeasureRest): number-threshold=1
by default: avoid "1" over single bar rests.
@item kpathsea, a library for searching (@TeX{}) files. @code{kpathsea} is
usually included with your installation of @TeX{}. You may need to install
-a tetex-devel or tetex-dev package too.
+a tetex-devel or tetex-dev package too. If kpathsea is not installed in
+a directory where the compiler normaly looks, read the hints for
+Slackware below.
In the very unlikely case that kpathsea is not available for your
platform (ie, you're not running GNU/Linux, Windows, or any recent
with a faulty compiler. Do not compile LilyPond with -O2 on this
platform.
+At least on Slackware 8.0, you have to manually specify the paths to the
+Kpathsea library, using
+@itemize
+@item @code{rm config.cache}
+@item @code{export LDFLAGS=-L/usr/share/texmf/lib}
+@item @code{export CPPFLAGS=-I/usr/share/texmf/include}
+@item @code{./configure}
+@end itemize
+
+
@subsection Mandrake
Some binaries are available at rpmfind.net. Refer to
--- /dev/null
+%{
+
+2) Grace-output broken: \grace a8 ~ a2 \grace a8 ~ a2
+
+Expected : a8( )a2 a8( )a2
+BUG-here : a8( )a2( a8 )a2
+
+3) Vertical aligns of lines, i.e., line height incorrect:
+
+c^#'(lines (finger "1" "")) % upper 1, lower 1
+c^#'(lines (finger "1" "1")) % upper 1, lower 1
+\stemDown
+c_#'(lines (finger "" "1")) % upper 1/2 ?!?, lower 1 <- BUG IN UPPER LINE
+c_#'(lines (finger "1" "1")) % upper 1, lower 1
+
+%}
+
+
+\score {
+ \notes \transpose c''
+ \context Voice {
+ <e>~<e>~<c e fis>~<b e f> % paper & midi broken
+ <e>~<e>~<c e fis>~<b e f> % here both are ok.
+ c^#'(lines (finger "1" ""))
+ c^#'(lines (finger "1" "1"))
+ \stemDown
+ c_#'(lines (finger "" "1")) % wrong line height of an empty line
+ c_#'(lines (finger "1" "1"))
+
+ \grace a8 ~ a2 \grace a8 ~ a2 a8
+ % produces: a8( )a2( a8 )a2 and midi: a1 (a2 \grace a a -> a2)
+ % should be: a8( )a2 a8( )a2 should be: a2 a2
+ }
+ \midi{}
+ \paper{}
+ }
;; Author: 1995-1996 Barry A. Warsaw
;; 1992-1994 Tim Peters
;; Created: Feb 1992
-;; Version: 1.5.50
-;; Last Modified: 6APR2002
+;; Version: 1.5.51
+;; Last Modified: 12APR2002
;; Keywords: lilypond languages music notation
;; This software is provided as-is, without express or implied
(identifiers '(
;; in principle, have one or more uppercase letters
-"\\(\\(BarNumbering\\|Choir\\|Grand\\|HaraKiri\\|OrchestralPart\\|Piano\\|Rhythmic\\)?Staff\\|\\(Cue\\|Lyrics\\)?Voice\\|\\(Orchestral\\)?Score\\|ChordNames\\|Grace\\|Lyrics\\|Staff\\(Group\\)?\\|Thread\\)Context" ; *Context
+"\\(\\(BarNumbering\\|\\(Inner\\)?Choir\\|Grand\\|HaraKiri\\|OrchestralPart\\|Piano\\|Rhythmic\\)?Staff\\|\\(Cue\\|Lyrics\\)?Voice\\|\\(Orchestral\\)?Score\\|ChordNames\\|FiguredBass\\|Grace\\|Lyrics\\|NoteNames\\|\\(Inner\\)?Staff\\(Group\\|Container\\)?\\|Thread\\)Context" ; *Context
"\\(script\\|dots\\|dynamic\\|slur\\|stem\\|sustain\\|sostenuto\\|unaCorda\\|treCorde\\|tie\\|tuplet\\)\\(Both\\|Down\\|Up\\)" ; *(Both/Down/Up)
"\\(slur\\|tie\\)\\(Dotted\\|Solid\\)" ; *(Dotted/Solid)
"\\(autoBeam\\|cadenza\\|impro\\|turn\\)\\(Off\\|On\\)" ; *(On/Off)
;; Other words which look nicer when colored
"Accidentals" "autoBeamSettings" "BarLine" "Beam"
-"ChordName\\([s]?\\|s.[a-zA-Z]*\\)" "DynamicText"
-"FiguredBass" "Hairpin" "\\(Grand\\|Piano\\)Staff"
+"ChordName\\([s]?\\|s.[a-zA-Z]*\\)" "Dots" "DynamicText"
+"FiguredBass" "Hairpin" "\\(\\(Inner\\)?Choir\\|Grand\\|Piano\\|Tab\\)Staff"
"Slur" "Stem" "SpacingSpanner" "System\\(StartDelimiter\\)?"
"\\(Grace\\|Lyrics\\|Note\\(Head\\|Names\\)\\|Score\\|\\(Rhythmic\\)?Staff\\(Symbol\\)?\\|Thread\\|Voice\\)\\(.[a-zA-Z]*\\)?" ; combine below, if possible
"\\(Grace\\|Lyrics\\|Note\\(Head\\|Names\\)\\|Score\\|\\(Rhythmic\\)?Staff\\(Symbol\\)?\\|Thread\\|Voice\\)[ \t]*\\(.[ \t]*[a-zA-Z]*\\)?"
;; variable-name / type / constant / warning -face
'("\\([_^-]?\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-constant-face)
- '("\\(\\(#'\\)?[a-zA-Z][_a-zA-Z.\-]*[ \t]*=[ \t]*#\\(#f\\|#t\\)\\)" 1 font-lock-variable-name-face)
- '("\\([a-zA-Z][_a-zA-Z.\-]*\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face)
- '("[ \t]*=[ \t]*\\([a-zA-Z][_a-zA-Z]*\\)" 1 font-lock-variable-name-face)
+ '("\\([_a-zA-Z.0-9-]+\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face)
+ '("[ \t]*=[ \t]*\\([_a-zA-Z.0-9-]+\\)" 1 font-lock-variable-name-face)
;; other reserved words
(cons (concat "\\(" rwregex "\\)") 'font-lock-variable-name-face)
;; highlight note names; separate notes from (other than ')'-type) brackets
- '("[ <\{[~()\t]\\(\\(\\(\\(do\\|re\\|mi\\|fa\\|sol\\|la\\|si\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-hsrR]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*[?!]?\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\)?[.]*\\)" 1 font-lock-type-face)
+ '("\\([sR]\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\)?[ ]*[*][0-9]+\\)"1 font-lock-type-face)
+ '("[ <\{[~()\t\\\|]\\(\\(\\(\\(do\\|re\\|mi\\|fa\\|sol\\|la\\|si\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-hsrR]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*[?!]?\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\)?[.]*\\)" 1 font-lock-type-face)
;; highlight identifiers
- (cons (concat "\\([_^-]?\\(" iregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-function-name-face t))
+ (cons (concat "\\([_^-]?\\(" iregex "\\)\\)+\\($\\|[] \t(~{}>\\\\_-()^]\\)") '(0 font-lock-function-name-face t))
;; highlight keywords
- (cons (concat "\\([_^-]?\\(" kwregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-keyword-face t))
+ (cons (concat "\\([_^-]?\\(" kwregex "\\)\\)+\\($\\|[] \t(~{}>\\\\_-()^]\\)") '(0 font-lock-keyword-face t))
;; highlight bracketing constructs
'("\\([][}{]\\)" 0 font-lock-warning-face t)
'("[_^-]\\s-*[-^]\\s-*\\(>\\)" 1 font-lock-warning-face t)
;; but leave a b c-> (accent) alone, accounting for whitespace
'("\\([^\\t\\n _^-]\\|^\\)\\s-*\\(>\\)" 2 font-lock-warning-face t)
- ;; ties ~, slurs (), hairpins \<, \>, end-of-hairpin \!,
- '("\\([(~)]\\|\\\\<\\|\\\\!\\|\\\\>\\)" 0 font-lock-builtin-face t)
+ ;; ties ~, slurs \( () \), hairpins \<, \>, end-of-hairpin \!,
+ '("\\(\\\\[(<!>)]\\|[(~)]\\)" 0 font-lock-builtin-face t)
-;; highlight comments (again)
+;; highlight scheme; Urgh. should count '(':s, then continue up to last ')'
+ '("[_^-]?#\\(#[ft]\\|['`](lines[^)]*))\\|['`][a-zA-Z-:]+\\|['`]?([^)]*)\\|-?[0-9.]+\\|\"[^\"]*\"\\)" 0 font-lock-string-face t)
+
+;; (re)highlight strings
+ '("[_^-]?\"[^\"]*\"" 0 font-lock-string-face t)
+
+;; (re)highlight comments
'("\\(%.*\\)" 0 font-lock-comment-face t)
)