Re: syntax highlighting in the doc, call for testers

2012-02-05 Thread Thomas Morley
Hi Federico,

2012/2/3 Federico Bruni fedel...@gmail.com:
 Il 02/02/2012 22:22, Thomas Morley ha scritto:

 1. Am I right you resigned of every highlighting within scheme?


 Yes, almost.
 I know nothing about Scheme. The only highlighting within Scheme that I'd
 like to preserve are the strings . I've just edited the scheme definition
 and it works.

 Is there any other highlghting within Scheme that I'm missing?
 Can you provide some example?

in your initial mail you wrote I'm trying to follow Frescobaldi
highlighting as much as possible and so you did! Congratulation! It's
nearly a perfect reproduction.

But (as remarked before) I don't like the highlighting style of
Frescobaldi. I prefer the style of jEdit, highlighting LilyPond and
scheme (well, it's not perfect but I like it). In case you don't know
the jEdit-style, I attached a screen-shot.

Some thoughts:
1. IIRC the tracker-issue is about highlighting stuff in the docs. So
maybe highlighting scheme isn't desirable.
2. Seems I'm the only user who answered, so my opinion isn't representative.

 No one else out there, interested in this stuff 

 source-highlight has already a scheme language and I might easily include
 it, but I don't think that it's desirable: you would get what you see in the
 attached file.

That looks not very nice and gives _very_ little advantage. So I think
you should not include it.

Regards,
 Harm
attachment: jEdit.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: syntax highlighting in the doc, call for testers

2012-02-02 Thread Federico Bruni

Il 02/01/2012 15:58, Thomas Morley ha scritto:

I tested a file with a large scheme-definition.
In the attached file you may notice some inconsequences:


Hi Thomas,

I have fixed the error in the scheme definition, so your file is 
highlighted correctly now.

I've done also some other improvements.

Anyone wishing to test it again is welcomed to do so, see files attached.

Tip for quick testing:

1) copy all the .ly files you want to test in a directory along with the 
attached files

2) create the html subdirectory
3) run ./srchilite.sh
4) open all the .html files at once and check tab by tab

I think that I'll submit the files upstream within saturday/sunday.
We'll fix next bugs when we find them :-) (I'm aware of some minor bugs 
in markup blocks)


Thanks,
Federico
java = java.lang 
moc = cpp.lang
cpp = cpp.lang
c = c.lang
C = cpp.lang
cc = cpp.lang
cs = csharp.lang
csharp = csharp.lang
h = cpp.lang
hh = cpp.lang
H = cpp.lang
hpp = cpp.lang
javascript = javascript.lang
js = javascript.lang
prolog = prolog.lang
pl = prolog.lang
perl = perl.lang
pm = perl.lang
php3 = php.lang
php4 = php.lang
php5 = php.lang
php = php.lang
ctp = php.lang
protobuf = proto.lang
proto = proto.lang
python = python.lang
py = python.lang
ruby = ruby.lang
rb = ruby.lang
flex = flex.lang
lex = flex.lang
l = flex.lang
ll = flex.lang
bison = bison.lang
yacc = bison.lang
y = bison.lang
yy = bison.lang
changelog = changelog.lang
lua = lua.lang
ml = caml.lang
caml = caml.lang
mli = caml.lang
sml = sml.lang
sig = sml.lang
syslog = log.lang
log = log.lang
pas = pascal.lang
pascal = pascal.lang
fortran = fortran.lang
free-fortran = fortran.lang
fixed-fortran = fixed-fortran.lang
html = html.lang
htm = html.lang
tex = latex.lang
latex = latex.lang
cls = latex.lang
sty = latex.lang
dtx = latex.lang
lgt = logtalk.lang
logtalk = logtalk.lang
diff = diff.lang
patch = diff.lang
lang = langdef.lang
langdef = langdef.lang
outlang = outlang.lang
style = style.lang
ps = postscript.lang
eps = postscript.lang
postscript = postscript.lang
kcfg = xml.lang
ui = xml.lang
kdevelop = xml.lang
rc = xml.lang
docbook = xml.lang
kidl = xml.lang
xml = xml.lang
xhtml = xml.lang
bash = sh.lang
sh = sh.lang
csh = sh.lang
ksh = sh.lang
tcsh = sh.lang
shell = sh.lang
tcl = tcl.lang
tk = tcl.lang
txt = nohilite.lang
sql = sql.lang
bib = bib.lang
makefile = makefile.lang
am = makefile.lang
in = makefile.lang
css = css.lang
m4 = m4.lang
ac = m4.lang
autoconf = m4.lang
sl = slang.lang
slsh = slang.lang
slang = slang.lang
properties = properties.lang
desktop = desktop.lang
ini = desktop.lang
conf = conf.lang
lsm = lsm.lang
spec = spec.lang
haxe = haxe.lang
hx = haxe.lang
ldap = ldap.lang
ldif = ldap.lang
glsl = glsl.lang
xorg = xorg.lang
scala = scala.lang
ada = ada.lang
adb = ada.lang
pc = pc.lang
pkgconfig = pc.lang
oz = oz.lang
texinfo = texinfo.lang
texi = texinfo.lang
hs = haskell.lang
hs = haskell.lang
lhs = haskell_literate.lang
haskell = haskell.lang
manifest = manifest.lang
mf = manifest.lang
asm = asm.lang
s = asm.lang
applescript = applescript.lang
scpt = applescript.lang
vbscript = vbscript.lang
vbs = vbscript.lang
awk = awk.lang
bat = bat.lang
batch = bat.lang
clipper = clipper.lang
prg = clipper.lang
cbl = cobol.lang
cobol = cobol.lang
dmd = d.lang
d = d.lang
errors = errors.lang
erl = erlang.lang
erlang = erlang.lang
vala = vala.lang
lisp = lisp.lang
el = lisp.lang
scm = scheme.lang
scheme = scheme.lang
po = po.lang
pot = po.lang
opa = opa.lang
javalog = javalog.lang
upc = upc.lang
tml = tml.lang
ly = lilypond.lang
# LilyPond v2.14.2

string delim \ \ multiline

environment scheme delim '#\'?\(' ) multiline nested begin
  environment scheme delim ( ) multiline nested begin
include url.lang
  end
end

scheme_value = '##(t|f)', '#{1,2}\'?[[:alnum:]\.:+-]+'

comment delim %{ %} multiline nested
comment start %

# Symbols
cbracket = {|}||
symbol = (|)|~|^|_
dynamic = '\\(||!|f{1,5}|p{1,5}|m(f|p)|fp|(r|s)fz|s(f|p){1,2})(?!\w)'

# Numbers
specialchar = '(?!#)-[1-5]\b', '\\[0-9]\b' # strings and fingerings
note_duration = '(?=[a-zR\',!?])(1|2|4|8|16|32|64|128)(\.+|\b)'
value = '[[:digit:]/\*]+'

# Markup commands
markup_command = '\\((left-|center-|right-|general-)?align|arrow-head',
'beam|bold|(left-|right-)brace|(filled-|rounded-)?box|(h)?bracket',
'caps|char|circle|combine|concat|(left-|center-|right-|dir-)?column',
'dynamic|dot|draw(-circle|-hline|-line)|eyeglasses|epsfile',

'fill-with-pattern|finger|(double|semi|sesqui)?flat|fontCaps|(abs-)?fontsize',
'(auto-)?footnote|fraction|fret-diagram(-terse|-verbose)?|fromproperty',
'halign|harp-pedal|hcenter-in|hspace|huge|italic|justify(-field|-string)?',
'(justified-|fill-)?line|large(r)?|lookup',
'magnify|mark(alphabet|letter)|markup(list|lines)?|medium',
'musicglyph|natural|normal-size(-super|-sub)|normalsize',
'normal-text|note(-by-number)?|null|number',
'override-lines|pad(-around|-markup|-to-box|-x)',
'page(-link|-ref)|parenthesize|path|pattern',

Re: syntax highlighting in the doc, call for testers

2012-02-02 Thread Thomas Morley
Hi Federico,

2012/2/2 Federico Bruni fedel...@gmail.com:
 Il 02/01/2012 15:58, Thomas Morley ha scritto:

 I tested a file with a large scheme-definition.

 In the attached file you may notice some inconsequences:


 Hi Thomas,

 I have fixed the error in the scheme definition, so your file is highlighted
 correctly now.
 I've done also some other improvements.

 Anyone wishing to test it again is welcomed to do so, see files attached.

 Tip for quick testing:

 1) copy all the .ly files you want to test in a directory along with the
 attached files
 2) create the html subdirectory
 3) run ./srchilite.sh
 4) open all the .html files at once and check tab by tab

 I think that I'll submit the files upstream within saturday/sunday.
 We'll fix next bugs when we find them :-) (I'm aware of some minor bugs in
 markup blocks)

 Thanks,
 Federico

1. Am I right you resigned of every highlighting within scheme?
2. I noticed that the number 1 in R1 is in a different color than in
R1*8 (see the attached small file)

I found nothing more to worry about, but I hope there will be more
testers, I'm not the best to do this sort of work.

HTH,
  Harm

\version "2.14.2"


%
% Vertical space skip!
%
% Usage: \vspace #2
%


#(define-markup-command (vspace layout props amount) (number?)
  "This produces a invisible object taking vertical space."
  (let ((amount (* amount 3.0)))
(if ( amount 0)
(ly:make-stencil "" (cons -1 1) (cons 0 amount))
(ly:make-stencil "" (cons -1 1) (cons amount amount)
  
 
%### Melody 

_One_ = {
	R1*8
}

%## 2. Stimme ##

Two = {
		R1
		R1
		R1
		R1
		R1
		R1
		R1
		R1
	\bar "|."
}

%## Akkorde 


akkorde = 
\chords { c2. g4 | c2 g2 | c4 g4 d4:m d4 | g2 r2 | 
	c2 f4 c4 | f1 | c2 d4:m g4 | c2. r4 | }



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: syntax highlighting in the doc, call for testers

2012-02-02 Thread Federico Bruni

Il 02/02/2012 22:22, Thomas Morley ha scritto:

1. Am I right you resigned of every highlighting within scheme?


Yes, almost.
I know nothing about Scheme. The only highlighting within Scheme that 
I'd like to preserve are the strings . I've just edited the scheme 
definition and it works.


Is there any other highlghting within Scheme that I'm missing?
Can you provide some example?

source-highlight has already a scheme language and I might easily 
include it, but I don't think that it's desirable: you would get what 
you see in the attached file.



2. I noticed that the number 1 in R1 is in a different color than in
R1*8 (see the attached small file)


this is fixed now, thanks

\version "2.14.2"


%
% Vertical space skip!
%
% Usage: \vspace #2
%


#(define-markup-command (vspace layout props amount) (number?)
  "This produces a invisible object taking vertical space."
  (let ((amount (* amount 3.0)))
(if ( amount 0)
(ly:make-stencil "" (cons -1 1) (cons 0 amount))
(ly:make-stencil "" (cons -1 1) (cons amount amount)
  
 
%### Melody 

_One_ = {
	R1*8
}

%## 2. Stimme ##

Two = {
		R1
		R1
		R1
		R1
		R1
		R1
		R1
		R1
	\bar "|."
}

%## Akkorde 


akkorde = 
\chords { c2. g4 | c2 g2 | c4 g4 d4:m d4 | g2 r2 | 
	c2 f4 c4 | f1 | c2 d4:m g4 | c2. r4 | }




___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


syntax highlighting in the doc, call for testers

2012-01-02 Thread Federico Bruni

Hi LilyPonders,

I'm following Graham's suggestion[0] and I'm asking here if you could 
please test the attached lilypond language file for source-highlight.


There's an issue on the tracker[1] about syntax highlighting in the doc.
The first step to make it happen is writing a language file for a third 
party package called source-highlight[2]. Before submitting it to 
source-highlight developers I'd appreciate some feedback from you. Not 
much about color scheme (I'm trying to follow Frescobaldi highlighting 
as much as possible).. what I really need is being sure that the regexp 
work fine in real files.
The files I've tested so far seem to work fine now (with this last 
version I'm attaching), but I may have missed something.


On Linux you just need to install the source-highlight package.
On Windows you may want to try these binaries[3]. It's v1.2.1 while I'm 
using v3.1.5, so I don't guarantee it will work.


Once you have source-highlight installed, place the attached files in a 
directory, open the terminal and change to that directory. Then launch 
the following command:


source-highlight -s lilypond.lang --style-file=lilypond.style -i test.ly 
-o test.html


NOTE: input files can be anywhere, but lilypond.lang, lilypond.style and 
lang.map must be in the current working directory (i.e. where you launch 
the command).


You can test it using your files or Mutopia files (better if v2.14, see 
advanced search of Mutopia).


I'll send the files to source-highlight developers next Sunday.
If you have any comment/improvement let me know.

Thanks,
Federico

[0] http://lists.gnu.org/archive/html/lilypond-devel/2011-12/msg00722.html
[1] http://code.google.com/p/lilypond/issues/detail?id=1005
[2] http://www.gnu.org/software/src-highlite/
[3] http://gnuwin32.sourceforge.net/packages/source-highlight.htm
java = java.lang 
moc = cpp.lang
cpp = cpp.lang
c = c.lang
C = cpp.lang
cc = cpp.lang
cs = csharp.lang
csharp = csharp.lang
h = cpp.lang
hh = cpp.lang
H = cpp.lang
hpp = cpp.lang
javascript = javascript.lang
js = javascript.lang
prolog = prolog.lang
pl = prolog.lang
perl = perl.lang
pm = perl.lang
php3 = php.lang
php4 = php.lang
php5 = php.lang
php = php.lang
ctp = php.lang
protobuf = proto.lang
proto = proto.lang
python = python.lang
py = python.lang
ruby = ruby.lang
rb = ruby.lang
flex = flex.lang
lex = flex.lang
l = flex.lang
ll = flex.lang
bison = bison.lang
yacc = bison.lang
y = bison.lang
yy = bison.lang
changelog = changelog.lang
lua = lua.lang
ml = caml.lang
caml = caml.lang
mli = caml.lang
sml = sml.lang
sig = sml.lang
syslog = log.lang
log = log.lang
pas = pascal.lang
pascal = pascal.lang
fortran = fortran.lang
free-fortran = fortran.lang
fixed-fortran = fixed-fortran.lang
html = html.lang
htm = html.lang
tex = latex.lang
latex = latex.lang
cls = latex.lang
sty = latex.lang
dtx = latex.lang
lgt = logtalk.lang
logtalk = logtalk.lang
diff = diff.lang
patch = diff.lang
lang = langdef.lang
langdef = langdef.lang
outlang = outlang.lang
style = style.lang
ps = postscript.lang
eps = postscript.lang
postscript = postscript.lang
kcfg = xml.lang
ui = xml.lang
kdevelop = xml.lang
rc = xml.lang
docbook = xml.lang
kidl = xml.lang
xml = xml.lang
xhtml = xml.lang
bash = sh.lang
sh = sh.lang
csh = sh.lang
ksh = sh.lang
tcsh = sh.lang
shell = sh.lang
tcl = tcl.lang
tk = tcl.lang
txt = nohilite.lang
sql = sql.lang
bib = bib.lang
makefile = makefile.lang
am = makefile.lang
in = makefile.lang
css = css.lang
m4 = m4.lang
ac = m4.lang
autoconf = m4.lang
sl = slang.lang
slsh = slang.lang
slang = slang.lang
properties = properties.lang
desktop = desktop.lang
ini = desktop.lang
conf = conf.lang
lsm = lsm.lang
spec = spec.lang
haxe = haxe.lang
hx = haxe.lang
ldap = ldap.lang
ldif = ldap.lang
glsl = glsl.lang
xorg = xorg.lang
scala = scala.lang
ada = ada.lang
adb = ada.lang
pc = pc.lang
pkgconfig = pc.lang
oz = oz.lang
texinfo = texinfo.lang
texi = texinfo.lang
hs = haskell.lang
hs = haskell.lang
lhs = haskell_literate.lang
haskell = haskell.lang
manifest = manifest.lang
mf = manifest.lang
asm = asm.lang
s = asm.lang
applescript = applescript.lang
scpt = applescript.lang
vbscript = vbscript.lang
vbs = vbscript.lang
awk = awk.lang
bat = bat.lang
batch = bat.lang
clipper = clipper.lang
prg = clipper.lang
cbl = cobol.lang
cobol = cobol.lang
dmd = d.lang
d = d.lang
errors = errors.lang
erl = erlang.lang
erlang = erlang.lang
vala = vala.lang
lisp = lisp.lang
el = lisp.lang
scm = scheme.lang
scheme = scheme.lang
po = po.lang
pot = po.lang
opa = opa.lang
javalog = javalog.lang
upc = upc.lang
tml = tml.lang
ly = lilypond.lang
# Symbols
cbracket = {|}
symbol = (|)|~|^|_
dynamic = '\\(||!|f{1,5}|p{1,5}|m(f|p)|fp|(r|s)fz|s(f|p){1,2})(?!\w)'
string delim \ \

# Scheme
scheme_block delim #'(( )) multiline
scheme delim '#(\'|\()' '\)|$' # single line only

# Comments
comment delim %{ %} multiline nested
comment start %

# Numbers
specialchar = '(?!#)-[1-5]\b', '\\[0-9]\b' # strings and fingerings
note_duration = 

Re: syntax highlighting in the doc, call for testers

2012-01-02 Thread Federico Bruni

Hi Harm,

thanks for your feedback.
Your example let me notice that I forgot that R (upper case) is a note 
as well, so I've updated the note_duration regexp.


Il 02/01/2012 15:58, Thomas Morley ha scritto:

I tested a file with a large scheme-definition.
In the attached file you may notice some inconsequences:

1. The scheme-functions of IR 4. Scheme functions aren't
high-lighted consistent:
 ly:grob? isn't colored and ly: never.

2. In #(define (center-note-column grob) (let* ...
 Some of the defined variables are colored some not.

Sory, that I can't do more than testing.



Scheme is the hardest part.
I don't have a solution for it. The problem is the conflict between 
single and multiline blocks. I must put the multiline regexp before the 
single line regexp, because the first has precedence. But I also need to 
distinguish them: they cannot have the same start delimiter.


Single line blocks can be:

\once \override Tie #'staff-position = #3.5
tempoWholesPerMinute = #(ly:make-moment 120 4)
tagline = \markup { \override #'(box-padding . 1.0) }

Start: #' or #(
End: ) or end of line

In your example the multiline blocks start with #( so the single line 
regexp applies.
I might define #( as a multiline start delimiter, but then the single 
line instance (see tempoWholesPerMinute above) would break everything.


Also, tracking the end of that big block is not easy at all.

I think I've covered the most frequent and basic uses of scheme inside a 
lilypond file. Large scheme definitions are quite difficult for me.

If any regexp guru has a good idea, please share it here.



HTH,
   Harm

P.S. Great work so far!


Thanks!

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user