Skip to content

Commit f786b2a

Browse files
authored
feat(lexers): add support for LilyPond (#1255)
Add LilyPond support (see #809) based on the pygments lexer.
1 parent 0a02b98 commit f786b2a

8 files changed

Lines changed: 578 additions & 6 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,22 @@ translators for Pygments lexers and styles.
3939
| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Agda, AL, Alloy, AMPL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, ATL, AutoHotkey, AutoIt, Awk
4040
| B | Ballerina, Bash, Bash Session, Batchfile, Beef, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck
4141
| C | C, C#, C++, C3, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Core, Crystal, CSS, CSV, CUE, Cython
42-
| D | D, Dart, Dax, Desktop file, Diff, Django/Jinja, dns, Docker, DTD, Dylan
43-
| E | EBNF, Elixir, Elm, EmacsLisp, Erlang
42+
| D | D, Dart, Dax, Desktop file, Devicetree, Diff, Django/Jinja, dns, Docker, DTD, Dylan
43+
| E | EBNF, Elixir, Elm, EmacsLisp, ERB, Erlang
4444
| F | Factor, Fennel, Fish, Forth, Fortran, FortranFixed, FSharp
4545
| G | GAS, GDScript, GDScript3, Gemtext, Genshi, Genshi HTML, Genshi Text, Gettext, Gherkin, Gleam, GLSL, Gnuplot, Go, Go HTML Template, Go Template, Go Text Template, GraphQL, Groff, Groovy
4646
| H | Handlebars, Hare, Haskell, Haxe, HCL, Hexdump, HLB, HLSL, HolyC, HTML, HTTP, Hy
4747
| I | Idris, Igor, INI, Io, ISCdhcpd
4848
| J | J, Janet, Java, JavaScript, JSON, JSONata, Jsonnet, Julia, Jungle
49-
| K | Kakoune, Kotlin
50-
| L | Lean4, Lighttpd configuration file, LLVM, lox, Lua, Luau
51-
| M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonScript, MorrowindScript, Myghty, MySQL
49+
| K | Kakoune, KDL, Kotlin
50+
| L | Lateralus, Lean4, Lighttpd configuration file, LilyPond, LLVM, lox, Lua, Luau
51+
| M | Makefile, Mako, markdown, Markless, Mason, Materialize SQL dialect, Mathematica, Matlab, MCFunction, Meson, Metal, microcad, MiniZinc, MLIR, Modelica, Modula-2, Mojo, MonkeyC, MoonBit, MoonScript, MorrowindScript, Myghty, MySQL
5252
| N | NASM, Natural, NDISASM, Newspeak, Nginx configuration file, Nim, Nix, NSIS, Nu
5353
| O | Objective-C, ObjectPascal, OCaml, Octave, Odin, OnesEnterprise, OpenEdge ABL, OpenSCAD, Org Mode
5454
| P | PacmanConf, Perl, PHP, PHTML, Pig, PkgConfig, PL/pgSQL, plaintext, Plutus Core, Pony, PostgreSQL SQL dialect, PostScript, POVRay, PowerQuery, PowerShell, Prolog, Promela, PromQL, properties, Protocol Buffer, Protocol Buffer Text Format, PRQL, PSL, Puppet, Python, Python 2
5555
| Q | QBasic, QML
5656
| R | R, Racket, Ragel, Raku, react, ReasonML, reg, Rego, reStructuredText, Rexx, RGBDS Assembly, Ring, RPGLE, RPMSpec, Ruby, Rust
57-
| S | SAS, Sass, Scala, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, Spade, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog
57+
| S | SAS, Sass, Scala, scdoc, Scheme, Scilab, SCSS, Sed, Sieve, Smali, Smalltalk, Smarty, SNBT, Snobol, Solidity, SourcePawn, Spade, SPARQL, SQL, SquidConf, Standard ML, stas, Stylus, Svelte, Swift, SYSTEMD, systemverilog
5858
| T | TableGen, Tal, TASM, Tcl, Tcsh, Termcap, Terminfo, Terraform, TeX, Thrift, TOML, TradingView, Transact-SQL, Turing, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, Typst
5959
| U | ucode
6060
| V | V, V shell, Vala, VB.net, verilog, VHDL, VHS, VimL, vue

lexers/embedded/lilypond.xml

Lines changed: 133 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
% Chord example
2+
3+
\new ChordNames {
4+
\chordmode {
5+
c1 | f | g:7 | c |
6+
c:m | f:dim | g:aug | c:maj7 |
7+
}
8+
}
9+
10+
\new Staff {
11+
\relative c' {
12+
c4 e g c |
13+
f, a c f |
14+
g, b d f |
15+
c e g c |
16+
}
17+
}
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
[
2+
{"type":"CommentSingle","value":"% Chord example"},
3+
{"type":"TextWhitespace","value":"\n\n"},
4+
{"type":"Keyword","value":"\\new"},
5+
{"type":"TextWhitespace","value":" "},
6+
{"type":"NameBuiltin","value":"ChordNames"},
7+
{"type":"TextWhitespace","value":" "},
8+
{"type":"Punctuation","value":"{"},
9+
{"type":"TextWhitespace","value":"\n "},
10+
{"type":"Keyword","value":"\\chordmode"},
11+
{"type":"TextWhitespace","value":" "},
12+
{"type":"Punctuation","value":"{"},
13+
{"type":"TextWhitespace","value":"\n "},
14+
{"type":"NameVariable","value":"c"},
15+
{"type":"LiteralNumber","value":"1"},
16+
{"type":"TextWhitespace","value":" "},
17+
{"type":"Punctuation","value":"|"},
18+
{"type":"TextWhitespace","value":" "},
19+
{"type":"NameVariable","value":"f"},
20+
{"type":"TextWhitespace","value":" "},
21+
{"type":"Punctuation","value":"|"},
22+
{"type":"TextWhitespace","value":" "},
23+
{"type":"NameVariable","value":"g"},
24+
{"type":"Punctuation","value":":"},
25+
{"type":"LiteralNumber","value":"7"},
26+
{"type":"TextWhitespace","value":" "},
27+
{"type":"Punctuation","value":"|"},
28+
{"type":"TextWhitespace","value":" "},
29+
{"type":"NameVariable","value":"c"},
30+
{"type":"TextWhitespace","value":" "},
31+
{"type":"Punctuation","value":"|"},
32+
{"type":"TextWhitespace","value":"\n "},
33+
{"type":"NameVariable","value":"c"},
34+
{"type":"Punctuation","value":":"},
35+
{"type":"Operator","value":"m"},
36+
{"type":"TextWhitespace","value":" "},
37+
{"type":"Punctuation","value":"|"},
38+
{"type":"TextWhitespace","value":" "},
39+
{"type":"NameVariable","value":"f"},
40+
{"type":"Punctuation","value":":"},
41+
{"type":"Operator","value":"dim"},
42+
{"type":"TextWhitespace","value":" "},
43+
{"type":"Punctuation","value":"|"},
44+
{"type":"TextWhitespace","value":" "},
45+
{"type":"NameVariable","value":"g"},
46+
{"type":"Punctuation","value":":"},
47+
{"type":"Operator","value":"aug"},
48+
{"type":"TextWhitespace","value":" "},
49+
{"type":"Punctuation","value":"|"},
50+
{"type":"TextWhitespace","value":" "},
51+
{"type":"NameVariable","value":"c"},
52+
{"type":"Punctuation","value":":"},
53+
{"type":"Operator","value":"maj"},
54+
{"type":"LiteralNumber","value":"7"},
55+
{"type":"TextWhitespace","value":" "},
56+
{"type":"Punctuation","value":"|"},
57+
{"type":"TextWhitespace","value":"\n "},
58+
{"type":"Punctuation","value":"}"},
59+
{"type":"TextWhitespace","value":"\n"},
60+
{"type":"Punctuation","value":"}"},
61+
{"type":"TextWhitespace","value":"\n\n"},
62+
{"type":"Keyword","value":"\\new"},
63+
{"type":"TextWhitespace","value":" "},
64+
{"type":"NameBuiltin","value":"Staff"},
65+
{"type":"TextWhitespace","value":" "},
66+
{"type":"Punctuation","value":"{"},
67+
{"type":"TextWhitespace","value":"\n "},
68+
{"type":"NameBuiltin","value":"\\relative"},
69+
{"type":"TextWhitespace","value":" "},
70+
{"type":"NameVariable","value":"c'"},
71+
{"type":"TextWhitespace","value":" "},
72+
{"type":"Punctuation","value":"{"},
73+
{"type":"TextWhitespace","value":"\n "},
74+
{"type":"NameVariable","value":"c"},
75+
{"type":"LiteralNumber","value":"4"},
76+
{"type":"TextWhitespace","value":" "},
77+
{"type":"NameVariable","value":"e"},
78+
{"type":"TextWhitespace","value":" "},
79+
{"type":"NameVariable","value":"g"},
80+
{"type":"TextWhitespace","value":" "},
81+
{"type":"NameVariable","value":"c"},
82+
{"type":"TextWhitespace","value":" "},
83+
{"type":"Punctuation","value":"|"},
84+
{"type":"TextWhitespace","value":"\n "},
85+
{"type":"NameVariable","value":"f,"},
86+
{"type":"TextWhitespace","value":" "},
87+
{"type":"NameVariable","value":"a"},
88+
{"type":"TextWhitespace","value":" "},
89+
{"type":"NameVariable","value":"c"},
90+
{"type":"TextWhitespace","value":" "},
91+
{"type":"NameVariable","value":"f"},
92+
{"type":"TextWhitespace","value":" "},
93+
{"type":"Punctuation","value":"|"},
94+
{"type":"TextWhitespace","value":"\n "},
95+
{"type":"NameVariable","value":"g,"},
96+
{"type":"TextWhitespace","value":" "},
97+
{"type":"NameVariable","value":"b"},
98+
{"type":"TextWhitespace","value":" "},
99+
{"type":"NameVariable","value":"d"},
100+
{"type":"TextWhitespace","value":" "},
101+
{"type":"NameVariable","value":"f"},
102+
{"type":"TextWhitespace","value":" "},
103+
{"type":"Punctuation","value":"|"},
104+
{"type":"TextWhitespace","value":"\n "},
105+
{"type":"NameVariable","value":"c"},
106+
{"type":"TextWhitespace","value":" "},
107+
{"type":"NameVariable","value":"e"},
108+
{"type":"TextWhitespace","value":" "},
109+
{"type":"NameVariable","value":"g"},
110+
{"type":"TextWhitespace","value":" "},
111+
{"type":"NameVariable","value":"c"},
112+
{"type":"TextWhitespace","value":" "},
113+
{"type":"Punctuation","value":"|"},
114+
{"type":"TextWhitespace","value":"\n "},
115+
{"type":"Punctuation","value":"}"},
116+
{"type":"TextWhitespace","value":"\n"},
117+
{"type":"Punctuation","value":"}"},
118+
{"type":"TextWhitespace","value":"\n"}
119+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
% From lilypond.org examples
2+
3+
\header {
4+
title = "Simple Song"
5+
composer = "Composer Name"
6+
}
7+
8+
\relative c' {
9+
\time 3/4
10+
\key g \major
11+
12+
% Melody with dynamics
13+
g8\mf( a b c d4) |
14+
e8( d c b a g) |
15+
a4 b8( c) d4 |
16+
g,2.~ |
17+
g4 r r |
18+
\bar "|."
19+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
[
2+
{"type":"CommentSingle","value":"% From lilypond.org examples"},
3+
{"type":"TextWhitespace","value":"\n\n"},
4+
{"type":"Keyword","value":"\\header"},
5+
{"type":"TextWhitespace","value":" "},
6+
{"type":"Punctuation","value":"{"},
7+
{"type":"TextWhitespace","value":"\n "},
8+
{"type":"NameBuiltin","value":"title"},
9+
{"type":"TextWhitespace","value":" "},
10+
{"type":"Punctuation","value":"="},
11+
{"type":"TextWhitespace","value":" "},
12+
{"type":"LiteralString","value":"\"Simple Song\""},
13+
{"type":"TextWhitespace","value":"\n "},
14+
{"type":"NameBuiltin","value":"composer"},
15+
{"type":"TextWhitespace","value":" "},
16+
{"type":"Punctuation","value":"="},
17+
{"type":"TextWhitespace","value":" "},
18+
{"type":"LiteralString","value":"\"Composer Name\""},
19+
{"type":"TextWhitespace","value":"\n"},
20+
{"type":"Punctuation","value":"}"},
21+
{"type":"TextWhitespace","value":"\n\n"},
22+
{"type":"NameBuiltin","value":"\\relative"},
23+
{"type":"TextWhitespace","value":" "},
24+
{"type":"NameVariable","value":"c'"},
25+
{"type":"TextWhitespace","value":" "},
26+
{"type":"Punctuation","value":"{"},
27+
{"type":"TextWhitespace","value":"\n "},
28+
{"type":"NameBuiltin","value":"\\time"},
29+
{"type":"TextWhitespace","value":" "},
30+
{"type":"LiteralNumber","value":"3/4"},
31+
{"type":"TextWhitespace","value":"\n "},
32+
{"type":"NameBuiltin","value":"\\key"},
33+
{"type":"TextWhitespace","value":" "},
34+
{"type":"NameVariable","value":"g"},
35+
{"type":"TextWhitespace","value":" "},
36+
{"type":"NameBuiltin","value":"\\major"},
37+
{"type":"TextWhitespace","value":"\n \n "},
38+
{"type":"CommentSingle","value":"% Melody with dynamics"},
39+
{"type":"TextWhitespace","value":"\n "},
40+
{"type":"NameVariable","value":"g"},
41+
{"type":"LiteralNumber","value":"8"},
42+
{"type":"NameBuiltin","value":"\\mf("},
43+
{"type":"TextWhitespace","value":" "},
44+
{"type":"NameVariable","value":"a"},
45+
{"type":"TextWhitespace","value":" "},
46+
{"type":"NameVariable","value":"b"},
47+
{"type":"TextWhitespace","value":" "},
48+
{"type":"NameVariable","value":"c"},
49+
{"type":"TextWhitespace","value":" "},
50+
{"type":"NameVariable","value":"d"},
51+
{"type":"LiteralNumber","value":"4"},
52+
{"type":"NameBuiltin","value":")"},
53+
{"type":"TextWhitespace","value":" "},
54+
{"type":"Punctuation","value":"|"},
55+
{"type":"TextWhitespace","value":"\n "},
56+
{"type":"NameVariable","value":"e"},
57+
{"type":"LiteralNumber","value":"8"},
58+
{"type":"NameBuiltin","value":"("},
59+
{"type":"TextWhitespace","value":" "},
60+
{"type":"NameVariable","value":"d"},
61+
{"type":"TextWhitespace","value":" "},
62+
{"type":"NameVariable","value":"c"},
63+
{"type":"TextWhitespace","value":" "},
64+
{"type":"NameVariable","value":"b"},
65+
{"type":"TextWhitespace","value":" "},
66+
{"type":"NameVariable","value":"a"},
67+
{"type":"TextWhitespace","value":" "},
68+
{"type":"NameVariable","value":"g"},
69+
{"type":"NameBuiltin","value":")"},
70+
{"type":"TextWhitespace","value":" "},
71+
{"type":"Punctuation","value":"|"},
72+
{"type":"TextWhitespace","value":"\n "},
73+
{"type":"NameVariable","value":"a"},
74+
{"type":"LiteralNumber","value":"4"},
75+
{"type":"TextWhitespace","value":" "},
76+
{"type":"NameVariable","value":"b"},
77+
{"type":"LiteralNumber","value":"8"},
78+
{"type":"NameBuiltin","value":"("},
79+
{"type":"TextWhitespace","value":" "},
80+
{"type":"NameVariable","value":"c"},
81+
{"type":"NameBuiltin","value":")"},
82+
{"type":"TextWhitespace","value":" "},
83+
{"type":"NameVariable","value":"d"},
84+
{"type":"LiteralNumber","value":"4"},
85+
{"type":"TextWhitespace","value":" "},
86+
{"type":"Punctuation","value":"|"},
87+
{"type":"TextWhitespace","value":"\n "},
88+
{"type":"NameVariable","value":"g,"},
89+
{"type":"LiteralNumber","value":"2."},
90+
{"type":"NameBuiltin","value":"~"},
91+
{"type":"TextWhitespace","value":" "},
92+
{"type":"Punctuation","value":"|"},
93+
{"type":"TextWhitespace","value":"\n "},
94+
{"type":"NameVariable","value":"g"},
95+
{"type":"LiteralNumber","value":"4"},
96+
{"type":"TextWhitespace","value":" "},
97+
{"type":"NameVariable","value":"r"},
98+
{"type":"TextWhitespace","value":" "},
99+
{"type":"NameVariable","value":"r"},
100+
{"type":"TextWhitespace","value":" "},
101+
{"type":"Punctuation","value":"|"},
102+
{"type":"TextWhitespace","value":"\n "},
103+
{"type":"NameBuiltin","value":"\\bar"},
104+
{"type":"TextWhitespace","value":" "},
105+
{"type":"LiteralString","value":"\"|.\""},
106+
{"type":"TextWhitespace","value":"\n"},
107+
{"type":"Punctuation","value":"}"},
108+
{"type":"TextWhitespace","value":"\n"}
109+
]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
% Simple LilyPond example
2+
\version "2.24.0"
3+
4+
\relative c' {
5+
\key c \major
6+
\time 4/4
7+
8+
% A simple melody
9+
c4 d e f |
10+
g2 a |
11+
b4 c8 d e4 f |
12+
g1 |
13+
14+
% Dynamics and articulations
15+
c4\p d\< e f\! |
16+
g2\f a-> |
17+
18+
% Chords
19+
<c e g>4 <d f a> <e g b> <f a c> |
20+
}
21+
22+
\addlyrics {
23+
Do re mi fa
24+
sol la ti do
25+
}

0 commit comments

Comments
 (0)