Re: syntax highlighting in the doc, call for testers
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
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
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
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
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
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