textpow 0.10.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +7 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +30 -0
- data/{History.txt → History.rdoc} +10 -0
- data/{README.txt → MIT-LICENSE.txt} +0 -30
- data/README.rdoc +82 -0
- data/Rakefile +42 -49
- data/bin/plist2syntax +0 -0
- data/bin/plist2yaml +0 -0
- data/examples/benchmark_js.rb +13 -0
- data/examples/jquery.js +9046 -0
- data/lib/textpow.rb +43 -3
- data/lib/textpow/debug_processor.rb +35 -35
- data/lib/textpow/recording_processor.rb +13 -0
- data/lib/textpow/score_manager.rb +60 -60
- data/lib/textpow/syntax.rb +303 -262
- data/lib/textpow/syntax/broken/markdown.syntax +519 -0
- data/lib/textpow/syntax/broken/php.syntax +1253 -0
- data/lib/textpow/syntax/buggy/nemerle.syntax +74 -0
- data/lib/textpow/syntax/old/YAML.yaml +160 -0
- data/lib/textpow/syntax/old/txt2tags.yaml +139 -0
- data/lib/textpow/syntax/source.actionscript.syntax +97 -0
- data/lib/textpow/syntax/source.active4d.library.syntax +21 -0
- data/lib/textpow/syntax/source.active4d.syntax +276 -0
- data/lib/textpow/syntax/source.ada.syntax +33 -0
- data/lib/textpow/syntax/source.antlr.syntax +151 -0
- data/lib/textpow/syntax/source.apache-config.mod_perl.syntax +50 -0
- data/lib/textpow/syntax/source.apache-config.syntax +191 -0
- data/lib/textpow/syntax/source.applescript.syntax +384 -0
- data/lib/textpow/syntax/source.asp.syntax +70 -0
- data/lib/textpow/syntax/source.asp.vb.net.syntax +129 -0
- data/lib/textpow/syntax/source.c++.qt.syntax +26 -0
- data/lib/textpow/syntax/source.c++.syntax +186 -0
- data/lib/textpow/syntax/source.c-sharp.syntax +59 -0
- data/lib/textpow/syntax/source.c.ragel.syntax +201 -0
- data/lib/textpow/syntax/source.c.syntax +414 -0
- data/lib/textpow/syntax/source.camlp4.ocaml.syntax +36 -0
- data/lib/textpow/syntax/source.cm.syntax +32 -0
- data/lib/textpow/syntax/source.coffee.syntax +216 -0
- data/lib/textpow/syntax/source.context-free.syntax +176 -0
- data/lib/textpow/syntax/source.css.beta.syntax +1925 -0
- data/lib/textpow/syntax/source.css.syntax +195 -0
- data/lib/textpow/syntax/source.d.syntax +142 -0
- data/lib/textpow/syntax/source.diff.syntax +81 -0
- data/lib/textpow/syntax/source.dot.syntax +47 -0
- data/lib/textpow/syntax/source.dylan.syntax +62 -0
- data/lib/textpow/syntax/source.eiffel.syntax +78 -0
- data/lib/textpow/syntax/source.erlang.syntax +922 -0
- data/lib/textpow/syntax/source.fortran.syntax +141 -0
- data/lib/textpow/syntax/source.fscript.syntax +80 -0
- data/lib/textpow/syntax/source.fxscript.syntax +142 -0
- data/lib/textpow/syntax/source.gri.syntax +83 -0
- data/lib/textpow/syntax/source.groovy.groovy.syntax +191 -0
- data/lib/textpow/syntax/source.haskell.syntax +88 -0
- data/lib/textpow/syntax/source.icalendar.syntax +32 -0
- data/lib/textpow/syntax/source.inform.syntax +48 -0
- data/lib/textpow/syntax/source.ini.syntax +55 -0
- data/lib/textpow/syntax/source.io.syntax +81 -0
- data/lib/textpow/syntax/source.java-props.syntax +20 -0
- data/lib/textpow/syntax/source.java.syntax +211 -0
- data/lib/textpow/syntax/source.js.greasemonkey.syntax +34 -0
- data/lib/textpow/syntax/source.js.jquery.syntax +114 -0
- data/lib/textpow/syntax/source.js.mootools.syntax +572 -0
- data/lib/textpow/syntax/source.js.prototype.bracketed.syntax +140 -0
- data/lib/textpow/syntax/source.js.prototype.syntax +72 -0
- data/lib/textpow/syntax/source.js.syntax +256 -0
- data/lib/textpow/syntax/source.js.yui.syntax +176 -0
- data/lib/textpow/syntax/source.json.syntax +136 -0
- data/lib/textpow/syntax/source.lex.syntax +219 -0
- data/lib/textpow/syntax/source.lighttpd-config.syntax +54 -0
- data/lib/textpow/syntax/source.lilypond.syntax +492 -0
- data/lib/textpow/syntax/source.lisp.syntax +61 -0
- data/lib/textpow/syntax/source.logo.syntax +29 -0
- data/lib/textpow/syntax/source.logtalk.syntax +152 -0
- data/lib/textpow/syntax/source.lua.syntax +86 -0
- data/lib/textpow/syntax/source.makefile.syntax +36 -0
- data/lib/textpow/syntax/source.matlab.syntax +142 -0
- data/lib/textpow/syntax/source.mel.syntax +92 -0
- data/lib/textpow/syntax/source.mips.syntax +66 -0
- data/lib/textpow/syntax/source.ml.syntax +121 -0
- data/lib/textpow/syntax/source.modula-3.syntax +47 -0
- data/lib/textpow/syntax/source.nant-build.syntax +53 -0
- data/lib/textpow/syntax/source.objc++.syntax +18 -0
- data/lib/textpow/syntax/source.objc.syntax +233 -0
- data/lib/textpow/syntax/source.ocaml.syntax +764 -0
- data/lib/textpow/syntax/source.ocamllex.syntax +167 -0
- data/lib/textpow/syntax/source.ocamlyacc.syntax +184 -0
- data/lib/textpow/syntax/source.open-gl.syntax +14 -0
- data/lib/textpow/syntax/source.pascal.syntax +77 -0
- data/lib/textpow/syntax/source.pascal.vectorscript.syntax +57 -0
- data/lib/textpow/syntax/source.perl.syntax +1113 -0
- data/lib/textpow/syntax/source.php.cake.syntax +55 -0
- data/lib/textpow/syntax/source.plist.tm-grammar.syntax +708 -0
- data/lib/textpow/syntax/source.postscript.syntax +114 -0
- data/lib/textpow/syntax/source.processing.syntax +106 -0
- data/lib/textpow/syntax/source.prolog.syntax +40 -0
- data/lib/textpow/syntax/source.python.django.syntax +21 -0
- data/lib/textpow/syntax/source.python.syntax +868 -0
- data/lib/textpow/syntax/source.qmake.syntax +114 -0
- data/lib/textpow/syntax/source.quake-config.syntax +32 -0
- data/lib/textpow/syntax/source.r-console.syntax +16 -0
- data/lib/textpow/syntax/source.r.syntax +81 -0
- data/lib/textpow/syntax/source.regexp.oniguruma.syntax +107 -0
- data/lib/textpow/syntax/source.regexp.python.syntax +109 -0
- data/lib/textpow/syntax/source.regexp.syntax +50 -0
- data/lib/textpow/syntax/source.remind.syntax +253 -0
- data/lib/textpow/syntax/source.rez.syntax +80 -0
- data/lib/textpow/syntax/source.ruby.experimental.syntax +145 -0
- data/lib/textpow/syntax/source.ruby.rails.syntax +88 -0
- data/lib/textpow/syntax/source.ruby.syntax +1035 -0
- data/lib/textpow/syntax/source.s5.syntax +69 -0
- data/lib/textpow/syntax/source.sass.syntax +45 -0
- data/lib/textpow/syntax/source.scheme.syntax +347 -0
- data/lib/textpow/syntax/source.scilab.syntax +41 -0
- data/lib/textpow/syntax/source.scss.syntax +527 -0
- data/lib/textpow/syntax/source.shell.syntax +384 -0
- data/lib/textpow/syntax/source.slate.syntax +149 -0
- data/lib/textpow/syntax/source.smarty.syntax +63 -0
- data/lib/textpow/syntax/source.sql.ruby.syntax +18 -0
- data/lib/textpow/syntax/source.sql.syntax +237 -0
- data/lib/textpow/syntax/source.ssh-config.syntax +33 -0
- data/lib/textpow/syntax/source.strings.syntax +39 -0
- data/lib/textpow/syntax/source.swig.syntax +57 -0
- data/lib/textpow/syntax/source.tcl.macports.syntax +163 -0
- data/lib/textpow/syntax/source.tcl.syntax +152 -0
- data/lib/textpow/syntax/source.yaml.syntax +160 -0
- data/lib/textpow/syntax/text.active4d-ini.syntax +50 -0
- data/lib/textpow/syntax/text.bbcode.syntax +287 -0
- data/lib/textpow/syntax/text.bibtex.syntax +151 -0
- data/lib/textpow/syntax/text.blog.html.syntax +41 -0
- data/lib/textpow/syntax/text.blog.markdown.syntax +42 -0
- data/lib/textpow/syntax/text.blog.syntax +27 -0
- data/lib/textpow/syntax/text.blog.textile.syntax +27 -0
- data/lib/textpow/syntax/text.gtdalt.syntax +143 -0
- data/lib/textpow/syntax/text.haml.syntax +88 -0
- data/lib/textpow/syntax/text.html.asp.net.syntax +424 -0
- data/lib/textpow/syntax/text.html.asp.syntax +27 -0
- data/lib/textpow/syntax/text.html.basic.syntax +362 -0
- data/lib/textpow/syntax/text.html.cfm.syntax +119 -0
- data/lib/textpow/syntax/text.html.django.syntax +36 -0
- data/lib/textpow/syntax/text.html.dokuwiki.syntax +204 -0
- data/lib/textpow/syntax/text.html.doxygen.syntax +43 -0
- data/lib/textpow/syntax/text.html.markdown.multimarkdown.syntax +39 -0
- data/lib/textpow/syntax/text.html.mason.syntax +119 -0
- data/lib/textpow/syntax/text.html.mediawiki.syntax +567 -0
- data/lib/textpow/syntax/text.html.mt.syntax +162 -0
- data/lib/textpow/syntax/text.html.ruby.syntax +40 -0
- data/lib/textpow/syntax/text.html.strict.active4d.syntax +311 -0
- data/lib/textpow/syntax/text.html.tcl.syntax +26 -0
- data/lib/textpow/syntax/text.html.textile.syntax +215 -0
- data/lib/textpow/syntax/text.html.tt.syntax +121 -0
- data/lib/textpow/syntax/text.html.twiki.syntax +241 -0
- data/lib/textpow/syntax/text.html.xhtml.1-strict.syntax +4027 -0
- data/lib/textpow/syntax/text.log.latex.syntax +50 -0
- data/lib/textpow/syntax/text.mail.markdown.syntax +118 -0
- data/lib/textpow/syntax/text.man.syntax +17 -0
- data/lib/textpow/syntax/text.moinmoin.syntax +189 -0
- data/lib/textpow/syntax/text.plain.gtd.syntax +22 -0
- data/lib/textpow/syntax/text.plain.release-notes.syntax +46 -0
- data/lib/textpow/syntax/text.plain.syntax +32 -0
- data/lib/textpow/syntax/text.plist.syntax +635 -0
- data/lib/textpow/syntax/text.pmwiki.syntax +113 -0
- data/lib/textpow/syntax/text.restructuredtext.syntax +250 -0
- data/lib/textpow/syntax/text.setext.syntax +147 -0
- data/lib/textpow/syntax/text.subversion-commit.syntax +36 -0
- data/lib/textpow/syntax/text.tabular.csv.syntax +68 -0
- data/lib/textpow/syntax/text.tabular.tsv.syntax +50 -0
- data/lib/textpow/syntax/text.tex.latex.beamer.syntax +41 -0
- data/lib/textpow/syntax/text.tex.latex.haskell.syntax +24 -0
- data/lib/textpow/syntax/text.tex.latex.memoir.syntax +64 -0
- data/lib/textpow/syntax/text.tex.latex.rd.syntax +91 -0
- data/lib/textpow/syntax/text.tex.latex.sweave.syntax +84 -0
- data/lib/textpow/syntax/text.tex.latex.syntax +566 -0
- data/lib/textpow/syntax/text.tex.math.syntax +49 -0
- data/lib/textpow/syntax/text.tex.syntax +86 -0
- data/lib/textpow/syntax/text.txt2tags.syntax +79 -0
- data/lib/textpow/syntax/text.xml.apple-dist.syntax +77 -0
- data/lib/textpow/syntax/text.xml.strict.syntax +92 -0
- data/lib/textpow/syntax/text.xml.syntax +180 -0
- data/lib/textpow/syntax/text.xml.xsl.syntax +60 -0
- data/lib/textpow/version.rb +3 -0
- data/spec/fixtures/objeck.plist +107 -0
- data/spec/fixtures/utf8.txt +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/textpow/score_manager_spec.rb +20 -0
- data/spec/textpow/syntax_files_spec.rb +26 -0
- data/spec/textpow/syntax_spec.rb +225 -0
- data/spec/textpow_spec.rb +57 -0
- data/textpow.gemspec +19 -0
- metadata +246 -68
- data/Manifest.txt +0 -13
- data/mm/manual.mm +0 -266
- data/test/test_textpow.rb +0 -25
@@ -0,0 +1,54 @@
|
|
1
|
+
---
|
2
|
+
name: Lighttpd
|
3
|
+
scopeName: source.lighttpd-config
|
4
|
+
uuid: C244BFF4-2C1A-490F-831E-8EF7DF4E0C9B
|
5
|
+
foldingStartMarker: (\{|\()\s*$
|
6
|
+
patterns:
|
7
|
+
- name: comment.line.number-sign.lighttpd-config
|
8
|
+
captures:
|
9
|
+
"1":
|
10
|
+
name: punctuation.definition.comment.lighttpd-config
|
11
|
+
match: (#).*$\n?
|
12
|
+
- captures:
|
13
|
+
"1":
|
14
|
+
name: punctuation.separator.key-value.lighttpd-config
|
15
|
+
"2":
|
16
|
+
name: string.regexp.lighttpd-config
|
17
|
+
"3":
|
18
|
+
name: punctuation.definition.string.begin.lighttpd-config
|
19
|
+
"4":
|
20
|
+
name: punctuation.definition.string.end.lighttpd-config
|
21
|
+
match: (=~|!~)\s*((").*("))
|
22
|
+
- captures:
|
23
|
+
"1":
|
24
|
+
name: punctuation.separator.key-value.lighttpd-config
|
25
|
+
"2":
|
26
|
+
name: constant.numeric.lighttpd-config
|
27
|
+
match: (=>?)\s*([0-9]+)
|
28
|
+
- name: punctuation.separator.key-value.lighttpd-config
|
29
|
+
match: =|\+=|==|!=|=~|!~|=>
|
30
|
+
- name: string.quoted.double.lighttpd-config
|
31
|
+
endCaptures:
|
32
|
+
"0":
|
33
|
+
name: punctuation.definition.string.end.lighttpd-config
|
34
|
+
begin: "\""
|
35
|
+
beginCaptures:
|
36
|
+
"0":
|
37
|
+
name: punctuation.definition.string.begin.lighttpd-config
|
38
|
+
end: "\""
|
39
|
+
patterns:
|
40
|
+
- name: constant.character.escape.quote.lighttpd-config
|
41
|
+
match: "\"\""
|
42
|
+
- name: variable.language.lighttpd-config
|
43
|
+
captures:
|
44
|
+
"1":
|
45
|
+
name: punctuation.definition.variable.lighttpd-config
|
46
|
+
match: (\$)[a-zA-Z][0-9a-zA-Z]*
|
47
|
+
- name: support.constant.name.lighttpd-config
|
48
|
+
match: ^\s*[a-zA-Z][0-9a-zA-Z.-]*
|
49
|
+
- captures:
|
50
|
+
"1":
|
51
|
+
name: invalid.illegal.semicolon-at-end-of-line.lighttpd-config
|
52
|
+
match: (;)\s*$
|
53
|
+
foldingStopMarker: ^\s*(\}|\))
|
54
|
+
keyEquivalent: ^~L
|
@@ -0,0 +1,492 @@
|
|
1
|
+
---
|
2
|
+
name: Lilypond
|
3
|
+
fileTypes:
|
4
|
+
- ly
|
5
|
+
- ily
|
6
|
+
scopeName: source.lilypond
|
7
|
+
repository:
|
8
|
+
g_markup:
|
9
|
+
name: meta.element.markup.lilypond
|
10
|
+
begin: "(?x)\n\
|
11
|
+
\t\t\t\t((\\\\) markup) \\s+ # backslash + \"markup\" + spaces\n\
|
12
|
+
\t\t\t\t(?={)\n\
|
13
|
+
\t\t\t"
|
14
|
+
beginCaptures:
|
15
|
+
"1":
|
16
|
+
name: support.function.element.markup.lilypond
|
17
|
+
"2":
|
18
|
+
name: punctuation.definition.function.markup
|
19
|
+
end: (?<=})
|
20
|
+
patterns:
|
21
|
+
- include: "#g_m_group"
|
22
|
+
comments:
|
23
|
+
patterns:
|
24
|
+
- name: comment.block.lilypond
|
25
|
+
captures:
|
26
|
+
"0":
|
27
|
+
name: punctuation.definition.comment.lilypond
|
28
|
+
begin: "%{"
|
29
|
+
end: "%}"
|
30
|
+
- name: comment.line.lilypond
|
31
|
+
begin: "%"
|
32
|
+
beginCaptures:
|
33
|
+
"0":
|
34
|
+
name: punctuation.definition.comment.lilypond
|
35
|
+
end: $\n?
|
36
|
+
g_times:
|
37
|
+
begin: ((\\)times)\s*(?:([1-9][0-9]*/[1-9][0-9])\s*)(?={)
|
38
|
+
beginCaptures:
|
39
|
+
"1":
|
40
|
+
name: support.function.section.lilypond
|
41
|
+
"2":
|
42
|
+
name: punctuation.definition.function.lilypond
|
43
|
+
"3":
|
44
|
+
name: constant.numeric.fraction.lilypond
|
45
|
+
end: (?<=})
|
46
|
+
patterns:
|
47
|
+
- include: "#group"
|
48
|
+
f_keywords:
|
49
|
+
name: keyword.control.lilypond
|
50
|
+
captures:
|
51
|
+
"1":
|
52
|
+
name: punctuation.definition.function.lilypond
|
53
|
+
match: "(?x)\n\
|
54
|
+
\t\t\t\t(?: (\\\\)\n\
|
55
|
+
\t\t\t\t (?: set | new | override | revert)\n\
|
56
|
+
\t\t\t\t)\n\
|
57
|
+
\t\t\t"
|
58
|
+
f_clef:
|
59
|
+
name: meta.element.clef.lilypond
|
60
|
+
captures:
|
61
|
+
"6":
|
62
|
+
name: meta.fixme.unknown-clef-name.lilypond
|
63
|
+
"7":
|
64
|
+
name: constant.other.modifier.clef.lilypond
|
65
|
+
"8":
|
66
|
+
name: punctuation.definition.string.lilypond
|
67
|
+
"1":
|
68
|
+
name: support.function.element.lilypond
|
69
|
+
"2":
|
70
|
+
name: punctuation.definition.function.lilypond
|
71
|
+
"3":
|
72
|
+
name: punctuation.definition.string.lilypond
|
73
|
+
"4":
|
74
|
+
name: constant.language.clef-name.lilypond
|
75
|
+
"5":
|
76
|
+
name: constant.other.modifier.clef.lilypond
|
77
|
+
match: "(?x)\n\
|
78
|
+
\t\t\t\t((\\\\) clef) \\s+ # backslash + \"clef\" + spaces (groups 1-2)\n\
|
79
|
+
\t\t\t\t(?:\n\
|
80
|
+
\t\t\t\t (\"?)\t# beginning quotes (group 3)\n\
|
81
|
+
\t\t\t\t ( (?: # group 4\n\
|
82
|
+
\t\t\t\t\t treble | violin | G | french | # G clefs\n\
|
83
|
+
\t\t\t\t alto | C | tenor | (?:mezzo)?soprano | baritone | # C clefs\n\
|
84
|
+
\t\t\t\t (?:sub)?bass | F | varbaritone | # F clefs\n\
|
85
|
+
\t\t\t\t percussion | tab | # percussion / tablature clefs\n \n\
|
86
|
+
\t\t\t (?:neo)?mensural-c[1-4] | mensural-[fg] | \t\t# Ancient clefs\n\
|
87
|
+
\t\t\t\t petrucci-(?: [fg] | c[1-5] ) |\n\
|
88
|
+
\t\t\t\t (?: vaticana | medicaea | hufnagel ) - (?: do[1-3] | fa[12] ) |\n\
|
89
|
+
\t\t\t\t hufnagel-do-fa\n\
|
90
|
+
\t\t\t\t )\n\
|
91
|
+
\t\t\t\t ([_^](?:8|15)?)? # optionally shift 1-2 octaves \xE2\x86\x91/\xE2\x86\x93 (group 5)\n\
|
92
|
+
\t\t\t\t ) |\n\
|
93
|
+
\t\t\t\t ( (?:\\w+) ([_^](?:8|15))? ) # unknown clef name (groups 6-7)\n\
|
94
|
+
\t\t\t\t (\\3) # closing quotes (group 8)\n\
|
95
|
+
\t\t\t\t)?\n\
|
96
|
+
\t\t\t"
|
97
|
+
comment: "\n\
|
98
|
+
\t\t\t\tThis looks something like: \\clef mezzosoprano_8\n\
|
99
|
+
\t\t\t\tOr maybe: \\clef neomensural-c3^15\n\
|
100
|
+
\t\t\t"
|
101
|
+
g_relative:
|
102
|
+
begin: ((\\)relative)\s*(?:([a-h][',]*)\s*)?(?={)
|
103
|
+
beginCaptures:
|
104
|
+
"1":
|
105
|
+
name: support.function.section.lilypond
|
106
|
+
"2":
|
107
|
+
name: punctuation.definition.function.lilypond
|
108
|
+
"3":
|
109
|
+
name: storage.type.pitch.lilypond
|
110
|
+
end: (?<=})
|
111
|
+
patterns:
|
112
|
+
- include: "#group"
|
113
|
+
scheme:
|
114
|
+
begin: "#"
|
115
|
+
contentName: source.scheme.embedded.lilypond
|
116
|
+
beginCaptures:
|
117
|
+
"0":
|
118
|
+
name: punctuation.section.embedded.scheme.lilypond
|
119
|
+
end: (?=[\s%])|(?<=\n)
|
120
|
+
patterns:
|
121
|
+
- include: source.scheme
|
122
|
+
comment: "\n\
|
123
|
+
\t\t\t\tLilypond source can embed scheme code to do things more\n\
|
124
|
+
\t\t\t\tflexibly than allowed by the basic language.\n\n\
|
125
|
+
\t\t\t\tWe need to make sure to match after a \\n, as included\n\
|
126
|
+
\t\t\t\tby some s-expressions in the scheme grammar.\n\
|
127
|
+
\t\t\t"
|
128
|
+
notes:
|
129
|
+
patterns:
|
130
|
+
- name: meta.element.note.lilypond
|
131
|
+
begin: "(?x)\\b\n\
|
132
|
+
\t\t\t\t\t (\t\t\t\t\t\t # (group 1)\n\
|
133
|
+
\t\t\t\t\t\t ( [a-h] # Pitch (group 2)\n\
|
134
|
+
\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 3)\n\
|
135
|
+
\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\
|
136
|
+
\t\t\t\t\t\t )?\n\
|
137
|
+
\t\t\t\t\t ([!?])? # Cautionary accidental (group 4)\n\
|
138
|
+
\t\t\t\t\t ('+|,+)? # Octave (group 5)\n\
|
139
|
+
\t\t\t\t\t\t )\n\
|
140
|
+
\t\t\t\t\t\t ( ( ((\\\\)breve)| # Duration (groups 6-9)\n\
|
141
|
+
\t\t\t\t\t\t 64|32|16|8|4|2|1\n\
|
142
|
+
\t\t\t\t\t\t )\n\
|
143
|
+
\t\t\t\t\t\t (\\.)? # Augmentation dot (group 10)\n\
|
144
|
+
\t\t\t\t\t\t\t((\\*)(\\d+(?:/\\d+)?))? # Scaling duration (groups 11-13)\n\
|
145
|
+
\t\t\t\t\t\t )?\n\
|
146
|
+
\t\t\t\t\t\t)(?![a-z])\t# do not follow a note with a letter\n\
|
147
|
+
\t\t\t\t\t"
|
148
|
+
beginCaptures:
|
149
|
+
"6":
|
150
|
+
name: storage.type.duration.lilypond
|
151
|
+
"12":
|
152
|
+
name: keyword.operator.duration-scale.lilypond
|
153
|
+
"13":
|
154
|
+
name: constant.numeric.fraction.lilypond
|
155
|
+
"9":
|
156
|
+
name: punctuation.definition.function.lilypond
|
157
|
+
"2":
|
158
|
+
name: storage.type.pitch.lilypond
|
159
|
+
"4":
|
160
|
+
name: meta.note-modifier.cautionary-accidental.lilypond
|
161
|
+
"5":
|
162
|
+
name: meta.note-modifier.octave.lilypond
|
163
|
+
end: "(?x)\n\
|
164
|
+
\t\t\t\t\t\t(?= [ }~a-z] ) # End when we encounter a space or }\n\
|
165
|
+
\t\t\t\t\t"
|
166
|
+
patterns:
|
167
|
+
- include: "#n_articulations"
|
168
|
+
comment: "\n\
|
169
|
+
\t\t\t\t\t\tThis rule handles notes, including the pitch, the\n\
|
170
|
+
\t\t\t\t\t\tduration, and any articulations drawn along with\n\
|
171
|
+
\t\t\t\t\t\tthe note.\n\
|
172
|
+
\t\t\t\t\t\t\n\
|
173
|
+
\t\t\t\t\t\tThis rule gets a whole lot uglier if we want to\n\
|
174
|
+
\t\t\t\t\t\tsupport multilingual note names. If so, the rule\n\
|
175
|
+
\t\t\t\t\t\tgoes something like:\n\
|
176
|
+
\t\t\t\t\t\t\n\
|
177
|
+
\t\t\t\t\t\t(?x)\n\
|
178
|
+
\t\t\t\t\t\t\t\\b( # Basic Pitches\n\
|
179
|
+
\t\t\t\t\t\t\t [a-h] # Dutch/English/etc. \n\
|
180
|
+
\t\t\t\t\t\t\t (?: (iss?|s|sharp|x)(iss?|s|sharp|x|ih) | # sharp / flat\n\
|
181
|
+
\t\t\t\t\t\t\t\t (ess?|s|flat|f)(ess?|s|flat|f|eh)\n\
|
182
|
+
\t\t\t\t\t\t\t )? |\n\
|
183
|
+
\t\t\t\t\t\t\t (?: do|re|mi|fa|sol|la|si) # Italian/Spanish\n\
|
184
|
+
\t\t\t\t\t\t\t (?: ss?|dd?bb?) # sharp/flat\n\
|
185
|
+
\t\t\t\t\t\t\t)\n\
|
186
|
+
\t\t\t\t\t\t...\n\
|
187
|
+
\t\t\t\t\t"
|
188
|
+
- name: meta.element.pause.rest.lilypond
|
189
|
+
begin: "(?x)\\b\n\
|
190
|
+
\t\t\t\t\t\t(r) # (group 1)\n\
|
191
|
+
\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 2-4)\n\
|
192
|
+
\t\t\t\t\t\t 64|32|16|8|4|2|1\n\
|
193
|
+
\t\t\t\t\t\t )\n\
|
194
|
+
\t\t\t\t\t\t (\\.)? # Augmentation dot (group 5)\n\
|
195
|
+
\t\t\t\t\t\t ((\\*)(\\d+(?:/\\d+)?))? # Scaling duration (groups 6-8)\n\
|
196
|
+
\t\t\t\t\t\t\n\
|
197
|
+
\t\t\t\t\t\t)?\n\
|
198
|
+
\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\
|
199
|
+
\t\t\t\t\t"
|
200
|
+
beginCaptures:
|
201
|
+
"6":
|
202
|
+
name: keyword.operator.duration-scale.lilypond
|
203
|
+
"8":
|
204
|
+
name: constant.numeric.fraction.lilypond
|
205
|
+
"1":
|
206
|
+
name: storage.type.pause.rest.lilypond
|
207
|
+
"2":
|
208
|
+
name: storage.type.duration.lilypond
|
209
|
+
"4":
|
210
|
+
name: punctuation.definition.function.lilypond
|
211
|
+
end: (?=[ }~a-z])
|
212
|
+
patterns:
|
213
|
+
- include: "#n_articulations"
|
214
|
+
- name: meta.element.pause.skip.lilypond
|
215
|
+
begin: "(?x)\\b\n\
|
216
|
+
\t\t\t\t\t\t(s) # (group 1)\n\
|
217
|
+
\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 2-4)\n\
|
218
|
+
\t\t\t\t\t\t 64|32|16|8|4|2|1\n\
|
219
|
+
\t\t\t\t\t\t )\n\
|
220
|
+
\t\t\t\t\t\t (\\.)? # Augmentation dot (group 5)\n\
|
221
|
+
\t\t\t\t\t\t ((\\*)(\\d+(?:/\\d+)?))? # Scaling duration (groups 6-8)\n\
|
222
|
+
\t\t\t\t\t\t\n\
|
223
|
+
\t\t\t\t\t\t)?\n\
|
224
|
+
\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\
|
225
|
+
\t\t\t\t\t"
|
226
|
+
beginCaptures:
|
227
|
+
"6":
|
228
|
+
name: keyword.operator.duration-scale.lilypond
|
229
|
+
"8":
|
230
|
+
name: constant.numeric.fraction.lilypond
|
231
|
+
"1":
|
232
|
+
name: storage.type.pause.skip.lilypond
|
233
|
+
"2":
|
234
|
+
name: storage.type.duration.lilypond
|
235
|
+
"4":
|
236
|
+
name: punctuation.definition.function.lilypond
|
237
|
+
end: (?=[ }~a-z])
|
238
|
+
patterns:
|
239
|
+
- include: "#n_articulations"
|
240
|
+
- name: meta.element.pause.skip.lilypond
|
241
|
+
captures:
|
242
|
+
"1":
|
243
|
+
name: storage.type.pause.skip.lilypond
|
244
|
+
"2":
|
245
|
+
name: punctuation.definition.function.lilypond
|
246
|
+
"3":
|
247
|
+
name: storage.type.duration.lilypond
|
248
|
+
match: ((\\)skip)\s+(64|32|16|8|4|2|1)
|
249
|
+
- name: meta.element.chord.lilypond
|
250
|
+
endCaptures:
|
251
|
+
"1":
|
252
|
+
name: punctuation.definition.chord.lilypond
|
253
|
+
"2":
|
254
|
+
name: storage.type.duration.lilypond
|
255
|
+
"4":
|
256
|
+
name: punctuation.definition.function.lilypond
|
257
|
+
begin: <
|
258
|
+
beginCaptures:
|
259
|
+
"0":
|
260
|
+
name: punctuation.definition.chord.lilypond
|
261
|
+
end: "(?x)\n\
|
262
|
+
\t\t\t\t\t\t(>)\n\
|
263
|
+
\t\t\t\t\t\t( ( ((\\\\)breve)| # Duration (groups 2-4)\n\
|
264
|
+
\t\t\t\t\t\t 64|32|16|8|4|2|1\n\
|
265
|
+
\t\t\t\t\t\t )\n\
|
266
|
+
\t\t\t\t\t\t (\\.)? # Augmentation dot (group 5)\n\
|
267
|
+
\t\t\t\t\t\t)?\n\
|
268
|
+
\t\t\t\t\t"
|
269
|
+
patterns:
|
270
|
+
- captures:
|
271
|
+
"1":
|
272
|
+
name: storage.type.pitch.lilypond
|
273
|
+
"3":
|
274
|
+
name: meta.note-modifier.cautionary-accidental.lilypond
|
275
|
+
"4":
|
276
|
+
name: meta.note-modifier.octave.lilypond
|
277
|
+
match: "(?x)\\b\n\
|
278
|
+
\t\t\t\t\t\t\t\t ( [a-h] # Pitch (group 1)\n\
|
279
|
+
\t\t\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 2)\n\
|
280
|
+
\t\t\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\
|
281
|
+
\t\t\t\t\t\t\t\t )?\n\
|
282
|
+
\t\t\t\t\t\t\t ([!?])? # Cautionary accidental (group 3)\n\
|
283
|
+
\t\t\t\t\t\t\t ('+|,+)? # Octave (group 4)\n\
|
284
|
+
\t\t\t\t\t\t\t\t )\n\
|
285
|
+
\t\t\t\t\t\t\t"
|
286
|
+
comment: "\n\
|
287
|
+
\t\t\t\t\t\tLilypond chords look like: < a b c >\n\
|
288
|
+
\t\t\t\t\t"
|
289
|
+
- name: meta.element.chord.lilypond
|
290
|
+
begin: (?<=>)(?<!->)(?!\s)
|
291
|
+
end: (?=[ }~a-z])(?<![^-]>)
|
292
|
+
patterns:
|
293
|
+
- include: "#n_articulations"
|
294
|
+
comment: "\n\
|
295
|
+
\t\t\t\t\t\tThis rule attaches stuff to the end of a chord\n\
|
296
|
+
\t\t\t\t\t\t\n\
|
297
|
+
\t\t\t\t\t\tTherefore it begins after the > which ends a chord,\n\
|
298
|
+
\t\t\t\t\t\tand does not end after a > which ends a chord.\n\
|
299
|
+
\t\t\t\t\t\t(to avoid infinite loops)\n\
|
300
|
+
\t\t\t\t\t"
|
301
|
+
- name: storage.type.tie.lilypond
|
302
|
+
match: "~"
|
303
|
+
- name: storage.type.breath-mark.lilypond
|
304
|
+
captures:
|
305
|
+
"1":
|
306
|
+
name: punctuation.definition.function.lilypond
|
307
|
+
match: (\\)breathe
|
308
|
+
comment: "\n\
|
309
|
+
\t\t\t\tThis section includes the rules for notes, rests, and chords\n\
|
310
|
+
\t\t\t"
|
311
|
+
n_articulations:
|
312
|
+
patterns:
|
313
|
+
- name: storage.modifier.articulation.accent.lilypond
|
314
|
+
match: "(?x)\n\
|
315
|
+
\t\t\t\t\t\t([_^-])\n\
|
316
|
+
\t\t\t\t\t\t(?:[.>^+_-])\n\
|
317
|
+
\t\t\t\t\t"
|
318
|
+
- name: storage.modifier.articulation.named.lilypond
|
319
|
+
captures:
|
320
|
+
"1":
|
321
|
+
name: punctuation.definition.function.lilypond
|
322
|
+
match: "(?x)\n\
|
323
|
+
\t\t\t\t\t\t(\\\\)\n\
|
324
|
+
\t\t\t\t\t\t(?: accent | markato | staccatissimo |\t\t # basic accents\n\
|
325
|
+
\t\t\t\t\t\t\tespressivo | staccato | tenuto | portato | \n\
|
326
|
+
\t\t\t\t\t\t\t(?:up|down)bow | flageolet | thumb |\n\
|
327
|
+
\t\t\t\t\t\t\t[lr](?:heel|toe) | open | stopped |\n\
|
328
|
+
\t\t\t\t\t\t\t(?:reverse)?turn | trill |\n\
|
329
|
+
\t\t\t\t\t\t\tprall(?: prall | mordent | down | up)? | # pralls\n\
|
330
|
+
\t\t\t\t\t\t\t(?: up | down | line ) prall | # and\n\
|
331
|
+
\t\t\t\t\t\t\t(?: up | down )? mordent | # mordents\n\
|
332
|
+
\t\t\t\t\t\t\tsignumcongruentiae |\n\
|
333
|
+
\t\t\t\t\t\t\t(?: (?:very)? long | short)?fermata(Markup)? | # fermatas\n\
|
334
|
+
\t\t\t\t\t\t\tsegno | (?:var)?coda \n\
|
335
|
+
\t\t\t\t\t\t)\n\
|
336
|
+
\t\t\t\t\t"
|
337
|
+
- name: storage.modifier.articulation.dynamics.lilypond
|
338
|
+
match: "(?x)\n\
|
339
|
+
\t\t\t\t\t\t(\\\\) # backslash\n\
|
340
|
+
\t\t\t\t\t\tp{1,5} | m[pf] | f{1,4} | fp | # forte, piano, etc.\n\
|
341
|
+
\t\t\t\t\t\tsff? | spp? | [sr]fz | \n\
|
342
|
+
\t\t\t\t\t\t< | > | ! | espressivo # (de)crescendo\n\
|
343
|
+
\t\t\t\t\t"
|
344
|
+
- name: storage.modifier.beam.lilypond
|
345
|
+
match: \[|\]
|
346
|
+
- name: storage.modifier.slur.lilypond
|
347
|
+
match: \(|\)
|
348
|
+
functions:
|
349
|
+
patterns:
|
350
|
+
- include: "#f_clef"
|
351
|
+
- include: "#f_time-signature"
|
352
|
+
- include: "#f_key-signature"
|
353
|
+
- include: "#f_keywords"
|
354
|
+
- include: "#f_generic"
|
355
|
+
strings:
|
356
|
+
name: string.quoted.double.lilypond
|
357
|
+
captures:
|
358
|
+
"0":
|
359
|
+
name: punctuation.definition.string.lilypond
|
360
|
+
begin: "\""
|
361
|
+
end: "\""
|
362
|
+
patterns:
|
363
|
+
- name: constant.character.escape.lilypond
|
364
|
+
match: \\.
|
365
|
+
f_key-signature:
|
366
|
+
name: meta.element.key-signature.lilypond
|
367
|
+
comment: FIXME
|
368
|
+
music-expr:
|
369
|
+
patterns:
|
370
|
+
- include: "#comments"
|
371
|
+
- include: "#groupings"
|
372
|
+
- include: "#strings"
|
373
|
+
- include: "#functions"
|
374
|
+
- include: "#scheme"
|
375
|
+
- include: "#notes"
|
376
|
+
g_system:
|
377
|
+
name: meta.system.lilypond
|
378
|
+
endCaptures:
|
379
|
+
"0":
|
380
|
+
name: punctuation.section.system.end.lilypond
|
381
|
+
begin: "<<"
|
382
|
+
beginCaptures:
|
383
|
+
"0":
|
384
|
+
name: punctuation.section.system.begin.lilypond
|
385
|
+
end: ">>"
|
386
|
+
patterns:
|
387
|
+
- include: $self
|
388
|
+
f_generic:
|
389
|
+
name: support.function.general.lilypond
|
390
|
+
captures:
|
391
|
+
"1":
|
392
|
+
name: punctuation.definition.function.lilypond
|
393
|
+
match: (\\)[a-zA-Z-]+\b
|
394
|
+
groupings:
|
395
|
+
patterns:
|
396
|
+
- include: "#g_system"
|
397
|
+
- include: "#g_relative"
|
398
|
+
- include: "#g_times"
|
399
|
+
- include: "#group"
|
400
|
+
group:
|
401
|
+
name: meta.music-expression.lilypond
|
402
|
+
endCaptures:
|
403
|
+
"0":
|
404
|
+
name: punctuation.section.group.end.lilypond
|
405
|
+
begin: "{"
|
406
|
+
beginCaptures:
|
407
|
+
"0":
|
408
|
+
name: punctuation.section.group.begin.lilypond
|
409
|
+
end: "}"
|
410
|
+
patterns:
|
411
|
+
- include: "#music-expr"
|
412
|
+
g_header:
|
413
|
+
name: meta.header.lilypond
|
414
|
+
endCaptures:
|
415
|
+
"0":
|
416
|
+
name: punctuation.section.group.end.lilypond
|
417
|
+
begin: ((\\)header)\s*({)
|
418
|
+
beginCaptures:
|
419
|
+
"1":
|
420
|
+
name: support.function.section.header.lilypond
|
421
|
+
"2":
|
422
|
+
name: punctuation.definition.function.lilypond
|
423
|
+
"3":
|
424
|
+
name: punctuation.section.group.begin.lilypond
|
425
|
+
end: "}"
|
426
|
+
patterns:
|
427
|
+
- include: "#comments"
|
428
|
+
- include: "#strings"
|
429
|
+
- include: "#scheme"
|
430
|
+
- include: "#g_markup"
|
431
|
+
- name: punctuation.separator.key-value.lilypond
|
432
|
+
match: "="
|
433
|
+
- name: support.constant.header.lilypond
|
434
|
+
match: "(?x)\n\
|
435
|
+
\t\t\t\t\t\tdedication | title | subtitle | subsubtitle | poet |\n\
|
436
|
+
\t\t\t\t\t\tcomposer | meter | opus | arranger | instrument |\n\
|
437
|
+
\t\t\t\t\t\tpiece | breakbefore | copyright | tagline | enteredby\n\
|
438
|
+
\t\t\t\t\t"
|
439
|
+
- name: support.constant.header.mutopia.lilypond
|
440
|
+
match: "(?x)\n\
|
441
|
+
\t\t\t\t\t\tmutopiatitle | mutopiacomposer | mutopiapoet |\n\
|
442
|
+
\t\t\t\t\t\tmutopiaopus | mutopiainstrument | date | source |\n\
|
443
|
+
\t\t\t\t\t\tstyle | maintainer | maintainerEmail |\n\
|
444
|
+
\t\t\t\t\t\tmaintainerWeb | lastupdated\n\
|
445
|
+
\t\t\t\t\t"
|
446
|
+
g_m_group:
|
447
|
+
name: meta.group.lilypond
|
448
|
+
endCaptures:
|
449
|
+
"0":
|
450
|
+
name: punctuation.section.group.end.lilypond
|
451
|
+
begin: "{"
|
452
|
+
beginCaptures:
|
453
|
+
"0":
|
454
|
+
name: punctuation.section.group.begin.lilypond
|
455
|
+
end: "}"
|
456
|
+
patterns:
|
457
|
+
- include: "#f_generic"
|
458
|
+
- include: "#strings"
|
459
|
+
- include: "#comments"
|
460
|
+
- include: "#scheme"
|
461
|
+
- include: "#g_m_group"
|
462
|
+
f_time-signature:
|
463
|
+
name: meta.element.time-signature.lilypond
|
464
|
+
captures:
|
465
|
+
"1":
|
466
|
+
name: support.function.element.lilypond
|
467
|
+
"2":
|
468
|
+
name: punctuation.definition.function.lilypond
|
469
|
+
"3":
|
470
|
+
name: constant.numeric.time-signature.lilypond
|
471
|
+
match: "(?x)\n\
|
472
|
+
\t\t\t\t((\\\\) time) \\s+ # backslash + \"time\" + spaces (groups 1-2)\n\
|
473
|
+
\t\t\t\t([1-9][0-9]*/[1-9][0-9]*)?\n\
|
474
|
+
\t\t\t"
|
475
|
+
uuid: F25B30BE-0526-4D92-806C-F0D678DDF669
|
476
|
+
foldingStartMarker: (\{|<<)\s*$
|
477
|
+
patterns:
|
478
|
+
- include: "#comments"
|
479
|
+
- include: "#g_header"
|
480
|
+
- include: "#groupings"
|
481
|
+
- include: "#strings"
|
482
|
+
- include: "#scheme"
|
483
|
+
- include: "#functions"
|
484
|
+
foldingStopMarker: (\}|>>)
|
485
|
+
keyEquivalent: ^~L
|
486
|
+
comment: "\n\
|
487
|
+
\t\tThis bundle is, as can easily be seen, far from complete,\n\
|
488
|
+
\t\tbut it should still be as useful as the Lilypond.app pyobjc\n\
|
489
|
+
\t\tapplication, which has no syntax coloring, no way to do\n\
|
490
|
+
\t\tsnippets, and pretty much no interesting functionality at\n\
|
491
|
+
\t\tall, other than a \"Run\" menu option. :)\n\
|
492
|
+
\t"
|