ver 2009.10.14 → 2009.11.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. data/CHANGELOG +1094 -0
  2. data/MANIFEST +227 -25
  3. data/README.textile +185 -0
  4. data/bin/ver +96 -12
  5. data/config/detect.rb +73 -21
  6. data/config/keymap/emacs.rb +66 -0
  7. data/config/keymap/vim.rb +250 -140
  8. data/config/preferences/ANTLR.json +10 -0
  9. data/config/preferences/ASP vb.NET.json +3 -0
  10. data/config/preferences/ASP.json +15 -0
  11. data/config/preferences/ActionScript.json +755 -0
  12. data/config/preferences/Active4D.json +89 -0
  13. data/config/preferences/Ada.json +23 -0
  14. data/config/preferences/Ant.json +356 -0
  15. data/config/preferences/Apache.json +644 -0
  16. data/config/preferences/AppleScript.json +92 -0
  17. data/config/preferences/Bison.json +3 -0
  18. data/config/preferences/Blogging.json +3 -0
  19. data/config/preferences/C.json +127 -0
  20. data/config/preferences/CMake.json +41 -0
  21. data/config/preferences/CSS.json +461 -0
  22. data/config/preferences/CTags.json +3 -0
  23. data/config/preferences/CVS.json +3 -0
  24. data/config/preferences/ColdFusion.json +32 -0
  25. data/config/preferences/D.json +58 -0
  26. data/config/preferences/Darcs.json +3 -0
  27. data/config/preferences/Diff.json +67 -0
  28. data/config/preferences/DokuWiki.json +19 -0
  29. data/config/preferences/Doxygen.json +3 -0
  30. data/config/preferences/Dylan.json +3 -0
  31. data/config/preferences/Eiffel.json +59 -0
  32. data/config/preferences/Erlang.json +72 -0
  33. data/config/preferences/Experimental.json +1356 -0
  34. data/config/preferences/F-Script.json +87 -0
  35. data/config/preferences/FXScript.json +78 -0
  36. data/config/preferences/FileMerge.json +3 -0
  37. data/config/preferences/Fortran.json +158 -0
  38. data/config/preferences/GTD2.json +11 -0
  39. data/config/preferences/GTDAlt.json +20 -0
  40. data/config/preferences/GetBundle.json +3 -0
  41. data/config/preferences/Gettext.json +24 -0
  42. data/config/preferences/Graphviz.json +42 -0
  43. data/config/preferences/Greasemonkey.json +3 -0
  44. data/config/preferences/Gri.json +34 -0
  45. data/config/preferences/HTML.json +492 -0
  46. data/config/preferences/Haskell.json +72 -0
  47. data/config/preferences/Hotkey.json +3 -0
  48. data/config/preferences/ImageBrowser.json +3 -0
  49. data/config/preferences/Inform.json +3 -0
  50. data/config/preferences/Ini.json +60 -0
  51. data/config/preferences/Installer.json +3 -0
  52. data/config/preferences/Io.json +64 -0
  53. data/config/preferences/JSON.json +3 -0
  54. data/config/preferences/Java.json +86 -0
  55. data/config/preferences/JavaDoc.json +3 -0
  56. data/config/preferences/JavaScript.json +76 -0
  57. data/config/preferences/LaTeX.json +267 -0
  58. data/config/preferences/Lex/Flex.json +3 -0
  59. data/config/preferences/Lighttpd.json +3 -0
  60. data/config/preferences/LilyPond.json +77 -0
  61. data/config/preferences/Lisp.json +63 -0
  62. data/config/preferences/Logo.json +58 -0
  63. data/config/preferences/Logtalk.json +236 -0
  64. data/config/preferences/Lua.json +24 -0
  65. data/config/preferences/MEL.json +19 -0
  66. data/config/preferences/MIPS Assembler.json +26 -0
  67. data/config/preferences/MacPorts.json +3 -0
  68. data/config/preferences/Mail.json +3 -0
  69. data/config/preferences/Make.json +16 -0
  70. data/config/preferences/Markdown.json +102 -0
  71. data/config/preferences/Math.json +3 -0
  72. data/config/preferences/Matlab.json +128 -0
  73. data/config/preferences/Maven.json +308 -0
  74. data/config/preferences/Mediawiki.json +73 -0
  75. data/config/preferences/Mercurial.json +3 -0
  76. data/config/preferences/Modula.json +37 -0
  77. data/config/preferences/MoinMoin.json +52 -0
  78. data/config/preferences/Navigation.json +3 -0
  79. data/config/preferences/Nemerle.json +3 -0
  80. data/config/preferences/OCaml Code Completion.json +3 -0
  81. data/config/preferences/OCaml.json +163 -0
  82. data/config/preferences/ODCompletion.json +3 -0
  83. data/config/preferences/Objective-C.json +84 -0
  84. data/config/preferences/OpenGL.json +3331 -0
  85. data/config/preferences/Outlines.json +3 -0
  86. data/config/preferences/Pascal.json +60 -0
  87. data/config/preferences/Perforce.json +3 -0
  88. data/config/preferences/Perl.json +15 -0
  89. data/config/preferences/PmWiki.json +27 -0
  90. data/config/preferences/Postscript.json +15 -0
  91. data/config/preferences/Processing.json +32 -0
  92. data/config/preferences/Prolog.json +3 -0
  93. data/config/preferences/Propel.json +3 -0
  94. data/config/preferences/Python.json +38 -0
  95. data/config/preferences/Quake.json +15 -0
  96. data/config/preferences/R.json +33 -0
  97. data/config/preferences/Ragel.json +15 -0
  98. data/config/preferences/Regular Expressions.json +3 -0
  99. data/config/preferences/Remind.json +15 -0
  100. data/config/preferences/Rez.json +46 -0
  101. data/config/preferences/Ruby.json +98 -0
  102. data/config/preferences/S5 Slide Show.json +20 -0
  103. data/config/preferences/SCons.json +3 -0
  104. data/config/preferences/SQL.json +32 -0
  105. data/config/preferences/SSH Config.json +15 -0
  106. data/config/preferences/SVK.json +3 -0
  107. data/config/preferences/SWIG.json +3 -0
  108. data/config/preferences/SWeave.json +32 -0
  109. data/config/preferences/Scheme.json +35 -0
  110. data/config/preferences/Scilab.json +15 -0
  111. data/config/preferences/Setext.json +3 -0
  112. data/config/preferences/Shell Script.json +25 -0
  113. data/config/preferences/Slate.json +113 -0
  114. data/config/preferences/Source.json +132 -0
  115. data/config/preferences/Subversion.json +10 -0
  116. data/config/preferences/TODO.json +3 -0
  117. data/config/preferences/Tabular.json +3 -0
  118. data/config/preferences/Tcl.json +82 -0
  119. data/config/preferences/TerminalMate.json +112 -0
  120. data/config/preferences/Text.json +89 -0
  121. data/config/preferences/TextMate.json +38 -0
  122. data/config/preferences/Textile.json +76 -0
  123. data/config/preferences/Thrift.json +56 -0
  124. data/config/preferences/Transmit.json +3 -0
  125. data/config/preferences/Twiki.json +51 -0
  126. data/config/preferences/Txt2tags.json +81 -0
  127. data/config/preferences/Vectorscript.json +1280 -0
  128. data/config/preferences/XML.json +60 -0
  129. data/config/preferences/Xcode.json +3 -0
  130. data/config/preferences/YAML.json +24 -0
  131. data/config/preferences/iCalendar.json +10 -0
  132. data/config/preferences/iTerm.json +36 -0
  133. data/config/preferences/reStructuredText.json +48 -0
  134. data/config/rc.rb +49 -0
  135. data/config/syntax/ANTLR.json +5 -5
  136. data/config/syntax/{ASP VB.net.json → ASP vb.NET.json } +3 -3
  137. data/config/syntax/ASP.json +1 -1
  138. data/config/syntax/ActionScript.json +6 -6
  139. data/config/syntax/Active4D Config.json +86 -0
  140. data/config/syntax/Active4D Library.json +20 -0
  141. data/config/syntax/Active4D.json +418 -0
  142. data/config/syntax/Ada.json +3 -3
  143. data/config/syntax/Ant.json +196 -0
  144. data/config/syntax/Apache.json +7 -7
  145. data/config/syntax/AppleScript.json +3 -3
  146. data/config/syntax/{Bibtex.json → BibTeX.json} +1 -1
  147. data/config/syntax/Bison.json +59 -0
  148. data/config/syntax/{Blog (HTML).json → Blog - HTML.json } +2 -2
  149. data/config/syntax/{Blog (Markdown).json → Blog - Markdown.json } +2 -2
  150. data/config/syntax/Blog (Text).json b/data/config/syntax/Blog - → Text.json +0 -0
  151. data/config/syntax/Blog (Textile).json b/data/config/syntax/Blog - → Textile.json +0 -0
  152. data/config/syntax/C++.json +3 -3
  153. data/config/syntax/C.json +13 -13
  154. data/config/syntax/CMake Listfile.json +171 -0
  155. data/config/syntax/CSS.json +6 -6
  156. data/config/syntax/CSV.json +108 -0
  157. data/config/syntax/ColdFusion.json +204 -0
  158. data/config/syntax/D.json +560 -0
  159. data/config/syntax/Diff.json +1 -1
  160. data/config/syntax/DokuWiki.json +412 -0
  161. data/config/syntax/Doxygen.json +80 -0
  162. data/config/syntax/Dylan.json +4 -4
  163. data/config/syntax/Erlang.json +5 -5
  164. data/config/syntax/F-Script.json +1 -1
  165. data/config/syntax/FXScript.json +5 -5
  166. data/config/syntax/Fortran - Modern.json +221 -0
  167. data/config/syntax/Fortran - Punchcard.json +468 -0
  168. data/config/syntax/GTD.json +39 -0
  169. data/config/syntax/GTDalt.json +233 -0
  170. data/config/syntax/Gettext.json +118 -0
  171. data/config/syntax/Go.json +555 -0
  172. data/config/syntax/{DOT.json → Graphviz (DOT).json } +3 -3
  173. data/config/syntax/Greasemonkey.json +56 -0
  174. data/config/syntax/Gri.json +4 -4
  175. data/config/syntax/{HTML-ASP.json → HTML (ASP).json } +1 -1
  176. data/config/syntax/{HTML for ASP.net.json → HTML (ASP.net).json } +19 -19
  177. data/config/syntax/HTML (Active4D).json +540 -0
  178. data/config/syntax/HTML (Erlang).json +31 -0
  179. data/config/syntax/HTML (Tcl).json +1 -1
  180. data/config/syntax/HTML.json +20 -20
  181. data/config/syntax/Haskell.json +3 -3
  182. data/config/syntax/Installer Distribution Script.json +135 -0
  183. data/config/syntax/Io.json +6 -6
  184. data/config/syntax/JSON.json +151 -0
  185. data/config/syntax/{JavaProperties.json → Java Properties.json } +2 -2
  186. data/config/syntax/Java Server Page (JSP).json +163 -0
  187. data/config/syntax/Java.json +7 -7
  188. data/config/syntax/JavaDoc.json +435 -0
  189. data/config/syntax/JavaScript.json +8 -8
  190. data/config/syntax/LaTeX Log.json +3 -3
  191. data/config/syntax/LaTeX Memoir.json +101 -0
  192. data/config/syntax/LaTeX.json +2 -2
  193. data/config/syntax/Lex-Flex.json +396 -0
  194. data/config/syntax/LilyPond.json +608 -0
  195. data/config/syntax/Logo.json +48 -0
  196. data/config/syntax/Logtalk.json +6 -6
  197. data/config/syntax/Lua.json +1 -1
  198. data/config/syntax/{M.json → MATLAB.json} +3 -3
  199. data/config/syntax/MEL.json +7 -7
  200. data/config/syntax/MIPS.json b/data/config/syntax/MIPS → Assembler.json +0 -0
  201. data/config/syntax/MacPorts Portfile.json +298 -0
  202. data/config/syntax/Mail.json +1 -1
  203. data/config/syntax/Markdown.json +6 -6
  204. data/config/syntax/Maven POM.json +774 -0
  205. data/config/syntax/Mediawiki.json +736 -0
  206. data/config/syntax/MoinMoin.json +335 -0
  207. data/config/syntax/MultiMarkdown.json +41 -0
  208. data/config/syntax/Nemerle.json +128 -0
  209. data/config/syntax/OCaml.json +4 -4
  210. data/config/syntax/OCamllex.json +307 -0
  211. data/config/syntax/OCamlyacc.json +346 -0
  212. data/config/syntax/Objective-C++.json +2 -2
  213. data/config/syntax/Objective-C.json +979 -0
  214. data/config/syntax/Octave.json +417 -0
  215. data/config/syntax/PHP.json +32 -32
  216. data/config/syntax/Pascal.json +1 -1
  217. data/config/syntax/Perl.json +8 -8
  218. data/config/syntax/{Plain text.json → Plain Text.json } +1 -1
  219. data/config/syntax/PmWiki.json +241 -0
  220. data/config/syntax/Postscript.json +206 -0
  221. data/config/syntax/Processing.json +8 -8
  222. data/config/syntax/Prolog.json +70 -0
  223. data/config/syntax/Python.json +1934 -0
  224. data/config/syntax/{Quake3 Config.json → Quake Style .cfg.json } +1 -1
  225. data/config/syntax/R.json +2 -2
  226. data/config/syntax/Ragel.json +362 -0
  227. data/config/syntax/Rd (R Documentation).json +119 -0
  228. data/config/syntax/Regular Expressions (Oniguruma).json +186 -0
  229. data/config/syntax/Regular Expressions (Python).json +188 -0
  230. data/config/syntax/Release Notes.json +78 -0
  231. data/config/syntax/Remind.json +461 -0
  232. data/config/syntax/Rez.json +5 -5
  233. data/config/syntax/Ruby Sass.json +497 -0
  234. data/config/syntax/Ruby.json +13 -13
  235. data/config/syntax/S5 Slide Show.json +85 -0
  236. data/config/syntax/SQL.json +11 -11
  237. data/config/syntax/SSH Config.json +55 -0
  238. data/config/syntax/SWIG.json +2 -2
  239. data/config/syntax/SWeave.json +139 -0
  240. data/config/syntax/Scheme.json +8 -8
  241. data/config/syntax/Scilab.json +69 -0
  242. data/config/syntax/Setext.json +247 -0
  243. data/config/syntax/{Shell-Unix-Generic.json → Shell Script (Bash).json } +4 -4
  244. data/config/syntax/Slate.json +5 -5
  245. data/config/syntax/Strings File.json +53 -0
  246. data/config/syntax/TSV.json +83 -0
  247. data/config/syntax/Tcl.json +1 -1
  248. data/config/syntax/TeX Math.json +2 -2
  249. data/config/syntax/TeX.json +2 -2
  250. data/config/syntax/Textile.json +9 -9
  251. data/config/syntax/Thrift.json +641 -0
  252. data/config/syntax/Twiki.json +1 -1
  253. data/config/syntax/Txt2tags.json +154 -0
  254. data/config/syntax/XML strict.json +4 -4
  255. data/config/syntax/XML.json +6 -6
  256. data/config/syntax/XSL.json +2 -2
  257. data/config/syntax/camlp4.json +63 -0
  258. data/config/syntax/mod_perl.json +72 -0
  259. data/config/syntax/reStructuredText.json +1 -1
  260. data/config/syntax/{Subversion commit message.json → svn-commit.tmp.json} +0 -0
  261. data/config/tutorial +23 -19
  262. data/config/welcome +3 -3
  263. data/lib/ver.rb +273 -62
  264. data/lib/ver/entry.rb +142 -26
  265. data/lib/ver/font.rb +51 -0
  266. data/lib/ver/help.rb +16 -0
  267. data/lib/ver/help/describe_key.rb +82 -0
  268. data/lib/ver/help/help_for_help.rb +39 -0
  269. data/lib/ver/hover_completion.rb +129 -0
  270. data/lib/ver/keymap.rb +95 -24
  271. data/lib/ver/layout.rb +107 -43
  272. data/lib/ver/methods.rb +24 -8
  273. data/lib/ver/methods/clipboard.rb +91 -0
  274. data/lib/ver/methods/completion.rb +146 -71
  275. data/lib/ver/methods/control.rb +203 -222
  276. data/lib/ver/methods/ctags.rb +55 -0
  277. data/lib/ver/methods/delete.rb +30 -0
  278. data/lib/ver/methods/help.rb +7 -0
  279. data/lib/ver/methods/insert.rb +233 -1
  280. data/lib/ver/methods/move.rb +181 -32
  281. data/lib/ver/methods/open.rb +208 -0
  282. data/lib/ver/methods/preview.rb +14 -0
  283. data/lib/ver/methods/save.rb +111 -0
  284. data/lib/ver/methods/search.rb +57 -7
  285. data/lib/ver/methods/select.rb +97 -17
  286. data/lib/ver/methods/shortcuts.rb +21 -0
  287. data/lib/ver/methods/views.rb +56 -1
  288. data/lib/ver/mode.rb +60 -14
  289. data/lib/ver/status.rb +97 -19
  290. data/lib/ver/syntax.rb +14 -6
  291. data/lib/ver/syntax/detector.rb +16 -5
  292. data/lib/ver/syntax/processor.rb +9 -3
  293. data/lib/ver/text.rb +258 -199
  294. data/lib/ver/text/index.rb +103 -0
  295. data/lib/ver/theme.rb +27 -16
  296. data/lib/ver/tooltip.rb +59 -0
  297. data/lib/ver/vendor/binary_search.rb +61 -0
  298. data/lib/ver/vendor/levenshtein.rb +57 -0
  299. data/lib/ver/{textpow.rb → vendor/textpow.rb} +31 -29
  300. data/lib/ver/view.rb +65 -41
  301. data/lib/ver/view/console.rb +171 -0
  302. data/lib/ver/view/entry.rb +9 -5
  303. data/lib/ver/view/list.rb +44 -29
  304. data/lib/ver/view/list/ex.rb +71 -0
  305. data/lib/ver/view/list/grep.rb +42 -0
  306. data/lib/ver/view/list/methods.rb +159 -0
  307. data/lib/ver/view/term.rb +249 -0
  308. data/tasks/syntax_list.rake +3 -2
  309. data/ver.gemspec +4 -4
  310. metadata +230 -28
  311. data/config/syntax/Bulletin Board.json +0 -428
  312. data/config/syntax/HTML (Mason).json +0 -207
  313. data/config/syntax/HTML (Rails).json +0 -52
  314. data/config/syntax/Movable Type.json +0 -348
  315. data/config/syntax/Ruby on Rails.json +0 -170
  316. data/config/syntax/SQL (Rails).json +0 -31
  317. data/config/syntax/Smarty.json +0 -110
  318. data/config/syntax/Standard ML.json +0 -322
@@ -0,0 +1,608 @@
1
+ {
2
+ "comment": "\n\t\tThis bundle is, as can easily be seen, far from complete,\n\t\tbut it should still be as useful as the Lilypond.app pyobjc\n\t\tapplication, which has no syntax coloring, no way to do\n\t\tsnippets, and pretty much no interesting functionality at\n\t\tall, other than a \"Run\" menu option. :)\n\t",
3
+ "fileTypes": [
4
+ "ly",
5
+ "lily",
6
+ "ily"
7
+ ],
8
+ "foldingStartMarker": "(\\{|<<)\\s*$",
9
+ "foldingStopMarker": "(\\}|>>)",
10
+ "keyEquivalent": "^~L",
11
+ "name": "LilyPond",
12
+ "patterns": [
13
+ {
14
+ "include": "#comments"
15
+ },
16
+ {
17
+ "include": "#g_header"
18
+ },
19
+ {
20
+ "include": "#groupings"
21
+ },
22
+ {
23
+ "include": "#strings"
24
+ },
25
+ {
26
+ "include": "#scheme"
27
+ },
28
+ {
29
+ "include": "#functions"
30
+ }
31
+ ],
32
+ "repository": {
33
+ "comments": {
34
+ "patterns": [
35
+ {
36
+ "begin": "%{",
37
+ "captures": {
38
+ "0": {
39
+ "name": "punctuation.definition.comment.lilypond"
40
+ }
41
+ },
42
+ "end": "%}",
43
+ "name": "comment.block.lilypond"
44
+ },
45
+ {
46
+ "begin": "%",
47
+ "beginCaptures": {
48
+ "0": {
49
+ "name": "punctuation.definition.comment.lilypond"
50
+ }
51
+ },
52
+ "end": "$\\n?",
53
+ "name": "comment.line.lilypond"
54
+ }
55
+ ]
56
+ },
57
+ "f_clef": {
58
+ "captures": {
59
+ "1": {
60
+ "name": "support.function.element.lilypond"
61
+ },
62
+ "2": {
63
+ "name": "punctuation.definition.function.lilypond"
64
+ },
65
+ "3": {
66
+ "name": "punctuation.definition.string.lilypond"
67
+ },
68
+ "4": {
69
+ "name": "constant.language.clef-name.lilypond"
70
+ },
71
+ "5": {
72
+ "name": "constant.other.modifier.clef.lilypond"
73
+ },
74
+ "6": {
75
+ "name": "meta.fixme.unknown-clef-name.lilypond"
76
+ },
77
+ "7": {
78
+ "name": "constant.other.modifier.clef.lilypond"
79
+ },
80
+ "8": {
81
+ "name": "punctuation.definition.string.lilypond"
82
+ }
83
+ },
84
+ "comment": "\n\t\t\t\tThis looks something like: \\clef mezzosoprano_8\n\t\t\t\tOr maybe: \\clef neomensural-c3^15\n\t\t\t",
85
+ "match": "(?x)\n\t\t\t\t((\\\\) clef) \\s+ # backslash + \"clef\" + spaces (groups 1-2)\n\t\t\t\t(?:\n\t\t\t\t (\"?)\t# beginning quotes (group 3)\n\t\t\t\t (?:\n\t\t\t\t\t ( (?: # group 4\n\t\t\t\t\t\t treble | violin | G | french | # G clefs\n\t\t\t\t\t alto | C | tenor | (?:mezzo)?soprano | baritone | # C clefs\n\t\t\t\t\t (?:sub)?bass | F | varbaritone | # F clefs\n\t\t\t\t\t percussion | tab | # percussion / tablature clefs\n \n\t\t\t\t (?:neo)?mensural-c[1-4] | mensural-[fg] | \t\t# Ancient clefs\n\t\t\t\t\t petrucci-(?: [fg] | c[1-5] ) |\n\t\t\t\t\t (?: vaticana | medicaea | hufnagel ) - (?: do[1-3] | fa[12] ) |\n\t\t\t\t\t hufnagel-do-fa\n\t\t\t\t\t )\n\t\t\t\t\t ([_^](?:8|15)?)? # optionally shift 1-2 octaves \u2191/\u2193 (group 5)\n\t\t\t\t\t ) |\n\t\t\t\t\t ( (?:\\w+) ([_^](?:8|15))? ) # unknown clef name (groups 6-7)\n\t\t\t\t )\n\t\t\t\t (\\3) # closing quotes (group 8)\n\t\t\t\t)?\n\t\t\t",
86
+ "name": "meta.element.clef.lilypond"
87
+ },
88
+ "f_generic": {
89
+ "captures": {
90
+ "1": {
91
+ "name": "punctuation.definition.function.lilypond"
92
+ }
93
+ },
94
+ "match": "(\\\\)[a-zA-Z-]+\\b",
95
+ "name": "support.function.general.lilypond"
96
+ },
97
+ "f_key-signature": {
98
+ "comment": "FIXME",
99
+ "name": "meta.element.key-signature.lilypond"
100
+ },
101
+ "f_keywords": {
102
+ "captures": {
103
+ "1": {
104
+ "name": "punctuation.definition.function.lilypond"
105
+ }
106
+ },
107
+ "match": "(?x)\n\t\t\t\t(?: (\\\\)\n\t\t\t\t (?: set | new | override | revert)\\b\n\t\t\t\t)\n\t\t\t",
108
+ "name": "keyword.control.lilypond"
109
+ },
110
+ "f_time-signature": {
111
+ "captures": {
112
+ "1": {
113
+ "name": "support.function.element.lilypond"
114
+ },
115
+ "2": {
116
+ "name": "punctuation.definition.function.lilypond"
117
+ },
118
+ "3": {
119
+ "name": "constant.numeric.time-signature.lilypond"
120
+ }
121
+ },
122
+ "match": "(?x)\n\t\t\t\t((\\\\) time) \\s+ # backslash + \"time\" + spaces (groups 1-2)\n\t\t\t\t([1-9][0-9]*/[1-9][0-9]*)?\n\t\t\t",
123
+ "name": "meta.element.time-signature.lilypond"
124
+ },
125
+ "functions": {
126
+ "patterns": [
127
+ {
128
+ "include": "#f_clef"
129
+ },
130
+ {
131
+ "include": "#f_time-signature"
132
+ },
133
+ {
134
+ "include": "#f_key-signature"
135
+ },
136
+ {
137
+ "include": "#f_keywords"
138
+ },
139
+ {
140
+ "include": "#f_generic"
141
+ }
142
+ ]
143
+ },
144
+ "g_header": {
145
+ "begin": "((\\\\)header)\\s*({)",
146
+ "beginCaptures": {
147
+ "1": {
148
+ "name": "support.function.section.header.lilypond"
149
+ },
150
+ "2": {
151
+ "name": "punctuation.definition.function.lilypond"
152
+ },
153
+ "3": {
154
+ "name": "punctuation.section.group.begin.lilypond"
155
+ }
156
+ },
157
+ "end": "}",
158
+ "endCaptures": {
159
+ "0": {
160
+ "name": "punctuation.section.group.end.lilypond"
161
+ }
162
+ },
163
+ "name": "meta.header.lilypond",
164
+ "patterns": [
165
+ {
166
+ "include": "#comments"
167
+ },
168
+ {
169
+ "include": "#strings"
170
+ },
171
+ {
172
+ "include": "#scheme"
173
+ },
174
+ {
175
+ "include": "#g_markup"
176
+ },
177
+ {
178
+ "match": "=",
179
+ "name": "punctuation.separator.key-value.lilypond"
180
+ },
181
+ {
182
+ "match": "(?x)\n\t\t\t\t\t\tdedication | title | subtitle | subsubtitle | poet |\n\t\t\t\t\t\tcomposer | meter | opus | arranger | instrument |\n\t\t\t\t\t\tpiece | breakbefore | copyright | tagline | enteredby\n\t\t\t\t\t",
183
+ "name": "support.constant.header.lilypond"
184
+ },
185
+ {
186
+ "match": "(?x)\n\t\t\t\t\t\tmutopiatitle | mutopiacomposer | mutopiapoet |\n\t\t\t\t\t\tmutopiaopus | mutopiainstrument | date | source |\n\t\t\t\t\t\tstyle | maintainer | maintainerEmail |\n\t\t\t\t\t\tmaintainerWeb | lastupdated\n\t\t\t\t\t",
187
+ "name": "support.constant.header.mutopia.lilypond"
188
+ }
189
+ ]
190
+ },
191
+ "g_m_group": {
192
+ "begin": "{",
193
+ "beginCaptures": {
194
+ "0": {
195
+ "name": "punctuation.section.group.begin.lilypond"
196
+ }
197
+ },
198
+ "end": "}",
199
+ "endCaptures": {
200
+ "0": {
201
+ "name": "punctuation.section.group.end.lilypond"
202
+ }
203
+ },
204
+ "name": "meta.group.lilypond",
205
+ "patterns": [
206
+ {
207
+ "include": "#f_generic"
208
+ },
209
+ {
210
+ "include": "#strings"
211
+ },
212
+ {
213
+ "include": "#comments"
214
+ },
215
+ {
216
+ "include": "#scheme"
217
+ },
218
+ {
219
+ "include": "#g_m_group"
220
+ }
221
+ ]
222
+ },
223
+ "g_markup": {
224
+ "begin": "(?x)\n\t\t\t\t((\\\\) markup) \\s+ # backslash + \"markup\" + spaces\n\t\t\t\t(?={)\n\t\t\t",
225
+ "beginCaptures": {
226
+ "1": {
227
+ "name": "support.function.element.markup.lilypond"
228
+ },
229
+ "2": {
230
+ "name": "punctuation.definition.function.markup"
231
+ }
232
+ },
233
+ "end": "(?<=})",
234
+ "name": "meta.element.markup.lilypond",
235
+ "patterns": [
236
+ {
237
+ "include": "#g_m_group"
238
+ }
239
+ ]
240
+ },
241
+ "g_relative": {
242
+ "begin": "((\\\\)relative)\\s*(?:([a-h][',]*)\\s*)?(?={)",
243
+ "beginCaptures": {
244
+ "1": {
245
+ "name": "support.function.section.lilypond"
246
+ },
247
+ "2": {
248
+ "name": "punctuation.definition.function.lilypond"
249
+ },
250
+ "3": {
251
+ "name": "storage.type.pitch.lilypond"
252
+ }
253
+ },
254
+ "end": "(?<=})",
255
+ "patterns": [
256
+ {
257
+ "include": "#group"
258
+ }
259
+ ]
260
+ },
261
+ "g_system": {
262
+ "begin": "<<",
263
+ "beginCaptures": {
264
+ "0": {
265
+ "name": "punctuation.section.system.begin.lilypond"
266
+ }
267
+ },
268
+ "end": ">>",
269
+ "endCaptures": {
270
+ "0": {
271
+ "name": "punctuation.section.system.end.lilypond"
272
+ }
273
+ },
274
+ "name": "meta.system.lilypond",
275
+ "patterns": [
276
+ {
277
+ "include": "$self"
278
+ }
279
+ ]
280
+ },
281
+ "g_times": {
282
+ "begin": "((\\\\)times)\\s*(?:([1-9][0-9]*/[1-9][0-9])\\s*)(?={)",
283
+ "beginCaptures": {
284
+ "1": {
285
+ "name": "support.function.section.lilypond"
286
+ },
287
+ "2": {
288
+ "name": "punctuation.definition.function.lilypond"
289
+ },
290
+ "3": {
291
+ "name": "constant.numeric.fraction.lilypond"
292
+ }
293
+ },
294
+ "end": "(?<=})",
295
+ "patterns": [
296
+ {
297
+ "include": "#group"
298
+ }
299
+ ]
300
+ },
301
+ "group": {
302
+ "begin": "{",
303
+ "beginCaptures": {
304
+ "0": {
305
+ "name": "punctuation.section.group.begin.lilypond"
306
+ }
307
+ },
308
+ "end": "}",
309
+ "endCaptures": {
310
+ "0": {
311
+ "name": "punctuation.section.group.end.lilypond"
312
+ }
313
+ },
314
+ "name": "meta.music-expression.lilypond",
315
+ "patterns": [
316
+ {
317
+ "include": "#music-expr"
318
+ }
319
+ ]
320
+ },
321
+ "groupings": {
322
+ "patterns": [
323
+ {
324
+ "include": "#g_system"
325
+ },
326
+ {
327
+ "include": "#g_relative"
328
+ },
329
+ {
330
+ "include": "#g_times"
331
+ },
332
+ {
333
+ "include": "#group"
334
+ }
335
+ ]
336
+ },
337
+ "music-expr": {
338
+ "patterns": [
339
+ {
340
+ "include": "#comments"
341
+ },
342
+ {
343
+ "include": "#groupings"
344
+ },
345
+ {
346
+ "include": "#strings"
347
+ },
348
+ {
349
+ "include": "#functions"
350
+ },
351
+ {
352
+ "include": "#scheme"
353
+ },
354
+ {
355
+ "include": "#notes"
356
+ }
357
+ ]
358
+ },
359
+ "n_articulations": {
360
+ "patterns": [
361
+ {
362
+ "match": "(?x)\n\t\t\t\t\t\t([_^-])\n\t\t\t\t\t\t(?:[.>^+|_-])\n\t\t\t\t\t",
363
+ "name": "storage.modifier.articulation.accent.lilypond"
364
+ },
365
+ {
366
+ "captures": {
367
+ "1": {
368
+ "name": "punctuation.definition.function.lilypond"
369
+ }
370
+ },
371
+ "match": "(?x)\n\t\t\t\t\t\t(\\\\)\n\t\t\t\t\t\t(?: accent | markato | staccatissimo |\t\t # basic accents\n\t\t\t\t\t\t\tespressivo | staccato | tenuto | portato | \n\t\t\t\t\t\t\t(?:up|down)bow | flageolet | thumb |\n\t\t\t\t\t\t\t[lr](?:heel|toe) | open | stopped |\n\t\t\t\t\t\t\t(?:reverse)?turn | trill |\n\t\t\t\t\t\t\tprall(?: prall | mordent | down | up)? | # pralls\n\t\t\t\t\t\t\t(?: up | down | line ) prall | # and\n\t\t\t\t\t\t\t(?: up | down )? mordent | # mordents\n\t\t\t\t\t\t\tsignumcongruentiae |\n\t\t\t\t\t\t\t(?: (?:very)? long | short)?fermata(Markup)? | # fermatas\n\t\t\t\t\t\t\tsegno | (?:var)?coda \n\t\t\t\t\t\t)\n\t\t\t\t\t",
372
+ "name": "storage.modifier.articulation.named.lilypond"
373
+ },
374
+ {
375
+ "match": "(?x)\n\t\t\t\t\t\t(\\\\) # backslash\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t p{1,5} | m[pf] | f{1,4} | fp | # forte, piano, etc.\n \t\t\t\t\t\t[sr]fz | sff? | spp? | \n \t\t\t\t\t\t< | > | ! | espressivo # (de)crescendo\n\t\t\t\t\t\t)\n\t\t\t\t\t",
376
+ "name": "storage.modifier.articulation.dynamics.lilypond"
377
+ },
378
+ {
379
+ "match": "\\[|\\]",
380
+ "name": "storage.modifier.beam.lilypond"
381
+ },
382
+ {
383
+ "match": "\\(|\\)",
384
+ "name": "storage.modifier.slur.lilypond"
385
+ },
386
+ {
387
+ "match": "\\\\\\(|\\\\\\)",
388
+ "name": "storage.modifier.slur.phrasing.lilypond"
389
+ }
390
+ ]
391
+ },
392
+ "notes": {
393
+ "comment": "\n\t\t\t\tThis section includes the rules for notes, rests, and chords\n\t\t\t",
394
+ "patterns": [
395
+ {
396
+ "begin": "(?x)\\b\n\t\t\t\t\t (\t\t\t\t\t\t # (group 1)\n\t\t\t\t\t\t ( [a-h] # Pitch (group 2)\n\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 3)\n\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\t\t\t\t\t\t )?\n\t\t\t\t\t (?:(\\!)|(\\?))? # Cautionary accidental (groups 4-5)\n\t\t\t\t\t ('+|,+)? # Octave (group 6)\n\t\t\t\t\t\t )\n\t\t\t\t\t\t ( ( ((\\\\)breve)| # Duration (groups 7-10)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 11)\n\t\t\t\t\t\t\t((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 12-14)\n\t\t\t\t\t\t )?\n\t\t\t\t\t\t)(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
397
+ "beginCaptures": {
398
+ "10": {
399
+ "name": "punctuation.definition.function.lilypond"
400
+ },
401
+ "13": {
402
+ "name": "keyword.operator.duration-scale.lilypond"
403
+ },
404
+ "14": {
405
+ "name": "constant.numeric.fraction.lilypond"
406
+ },
407
+ "2": {
408
+ "name": "storage.type.pitch.lilypond"
409
+ },
410
+ "4": {
411
+ "name": "meta.note-modifier.accidental.reminder.lilypond"
412
+ },
413
+ "5": {
414
+ "name": "meta.note-modifier.accidental.cautionary.lilypond"
415
+ },
416
+ "6": {
417
+ "name": "meta.note-modifier.octave.lilypond"
418
+ },
419
+ "7": {
420
+ "name": "storage.type.duration.lilypond"
421
+ }
422
+ },
423
+ "comment": "\n\t\t\t\t\t\tThis rule handles notes, including the pitch, the\n\t\t\t\t\t\tduration, and any articulations drawn along with\n\t\t\t\t\t\tthe note.\n\t\t\t\t\t\t\n\t\t\t\t\t\tThis rule gets a whole lot uglier if we want to\n\t\t\t\t\t\tsupport multilingual note names. If so, the rule\n\t\t\t\t\t\tgoes something like:\n\t\t\t\t\t\t\n\t\t\t\t\t\t(?x)\n\t\t\t\t\t\t\t\\b( # Basic Pitches\n\t\t\t\t\t\t\t [a-h] # Dutch/English/etc. \n\t\t\t\t\t\t\t (?: (iss?|s|sharp|x)(iss?|s|sharp|x|ih) | # sharp / flat\n\t\t\t\t\t\t\t\t (ess?|s|flat|f)(ess?|s|flat|f|eh)\n\t\t\t\t\t\t\t )? |\n\t\t\t\t\t\t\t (?: do|re|mi|fa|sol|la|si) # Italian/Spanish\n\t\t\t\t\t\t\t (?: ss?|dd?bb?) # sharp/flat\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t...\n\t\t\t\t\t",
424
+ "end": "(?x)\n\t\t\t\t\t\t(?= [\\s}~a-z] |$) # End when we encounter a space or } or end of line\n\t\t\t\t\t",
425
+ "name": "meta.element.note.lilypond",
426
+ "patterns": [
427
+ {
428
+ "include": "#n_articulations"
429
+ }
430
+ ]
431
+ },
432
+ {
433
+ "begin": "(?x)\\b\n\t\t\t\t\t\t(?:(r)|(R)) # (groups 1-2)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 3-5)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 6)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 7-9)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
434
+ "beginCaptures": {
435
+ "1": {
436
+ "name": "storage.type.pause.rest.lilypond"
437
+ },
438
+ "2": {
439
+ "name": "storage.type.pause.rest.multi-measure.lilypond"
440
+ },
441
+ "3": {
442
+ "name": "storage.type.duration.lilypond"
443
+ },
444
+ "5": {
445
+ "name": "punctuation.definition.function.lilypond"
446
+ },
447
+ "7": {
448
+ "name": "keyword.operator.duration-scale.lilypond"
449
+ },
450
+ "9": {
451
+ "name": "constant.numeric.fraction.lilypond"
452
+ }
453
+ },
454
+ "end": "(?=[\\s}~a-z])",
455
+ "name": "meta.element.pause.rest.lilypond",
456
+ "patterns": [
457
+ {
458
+ "include": "#n_articulations"
459
+ }
460
+ ]
461
+ },
462
+ {
463
+ "begin": "(?x)\\b\n\t\t\t\t\t\t(s) # (group 1)\n\t\t\t\t\t\t( ( (\\\\)breve| # Duration (groups 2-4)\n\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t )\n\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t ((?:(\\*)(\\d+(?:/\\d+)?))*) # Scaling duration (groups 6-8)\n\t\t\t\t\t\t\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?![a-z])\t# do not follow a note with a letter\n\t\t\t\t\t",
464
+ "beginCaptures": {
465
+ "1": {
466
+ "name": "storage.type.pause.skip.lilypond"
467
+ },
468
+ "2": {
469
+ "name": "storage.type.duration.lilypond"
470
+ },
471
+ "4": {
472
+ "name": "punctuation.definition.function.lilypond"
473
+ },
474
+ "6": {
475
+ "name": "keyword.operator.duration-scale.lilypond"
476
+ },
477
+ "8": {
478
+ "name": "constant.numeric.fraction.lilypond"
479
+ }
480
+ },
481
+ "end": "(?=[\\s}~a-z]|$)",
482
+ "name": "meta.element.pause.skip.lilypond",
483
+ "patterns": [
484
+ {
485
+ "include": "#n_articulations"
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "captures": {
491
+ "1": {
492
+ "name": "storage.type.pause.skip.lilypond"
493
+ },
494
+ "2": {
495
+ "name": "punctuation.definition.function.lilypond"
496
+ },
497
+ "3": {
498
+ "name": "storage.type.duration.lilypond"
499
+ }
500
+ },
501
+ "match": "((\\\\)skip)\\s+(64|32|16|8|4|2|1)",
502
+ "name": "meta.element.pause.skip.lilypond"
503
+ },
504
+ {
505
+ "begin": "<",
506
+ "beginCaptures": {
507
+ "0": {
508
+ "name": "punctuation.definition.chord.lilypond"
509
+ }
510
+ },
511
+ "comment": "\n\t\t\t\t\t\tLilypond chords look like: < a b c >\n\t\t\t\t\t",
512
+ "end": ">",
513
+ "endCaptures": {
514
+ "0": {
515
+ "name": "punctuation.definition.chord.lilypond"
516
+ }
517
+ },
518
+ "name": "meta.element.chord.lilypond",
519
+ "patterns": [
520
+ {
521
+ "captures": {
522
+ "1": {
523
+ "name": "storage.type.pitch.lilypond"
524
+ },
525
+ "3": {
526
+ "name": "meta.note-modifier.accidental.reminder.lilypond"
527
+ },
528
+ "4": {
529
+ "name": "meta.note-modifier.accidental.cautionary.lilypond"
530
+ },
531
+ "5": {
532
+ "name": "meta.note-modifier.octave.lilypond"
533
+ }
534
+ },
535
+ "match": "(?x)\\b\n\t\t\t\t\t\t\t\t ( [a-h] # Pitch (group 1)\n\t\t\t\t\t\t\t\t ( (?:i[sh]){1,2} | # - sharp (group 2)\n\t\t\t\t\t\t\t\t (?:e[sh]|s){1,2} # - flat\n\t\t\t\t\t\t\t\t )?\n\t\t\t\t\t\t\t (?:(\\!)|(\\?))? # Reminder/cautionary accidental (groups 3-4)\n\t\t\t\t\t\t\t ('+|,+)? # Octave (group 5)\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t"
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "begin": "(?x)\n\t\t\t\t\t (?<!-)\n\t\t\t\t\t (?<=>)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t( ( ((\\\\)breve)| # Duration (groups 1-4)\n\t\t\t\t\t\t\t 64|32|16|8|4|2|1\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t (\\.+)? # Augmentation dot (group 5)\n\t\t\t\t\t\t\t) |\n\t\t\t\t\t\t\t(?![\\s}~a-z]|$)\n\t\t\t\t\t\t)\n\t\t\t\t\t",
541
+ "beginCaptures": {
542
+ "1": {
543
+ "name": "storage.type.duration.lilypond"
544
+ },
545
+ "4": {
546
+ "name": "punctuation.definition.function.lilypond"
547
+ }
548
+ },
549
+ "comment": "\n\t\t\t\t\t\tThis rule attaches stuff to the end of a chord\n\t\t\t\t\t\t\n\t\t\t\t\t\tTherefore it begins after the > which ends a chord,\n\t\t\t\t\t\tand does not end after a > which ends a chord.\n\t\t\t\t\t\t(to avoid infinite loops)\n\t\t\t\t\t",
550
+ "end": "(?=[\\s}~a-z]|$)(?<![^-]>)",
551
+ "name": "meta.element.chord.lilypond",
552
+ "patterns": [
553
+ {
554
+ "include": "#n_articulations"
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "match": "~",
560
+ "name": "storage.type.tie.lilypond"
561
+ },
562
+ {
563
+ "captures": {
564
+ "1": {
565
+ "name": "punctuation.definition.function.lilypond"
566
+ }
567
+ },
568
+ "match": "(\\\\)breathe",
569
+ "name": "storage.type.breath-mark.lilypond"
570
+ }
571
+ ]
572
+ },
573
+ "scheme": {
574
+ "begin": "#",
575
+ "beginCaptures": {
576
+ "0": {
577
+ "name": "punctuation.section.embedded.scheme.lilypond"
578
+ }
579
+ },
580
+ "comment": "\n\t\t\t\tLilypond source can embed scheme code to do things more\n\t\t\t\tflexibly than allowed by the basic language.\n\n\t\t\t\tWe need to make sure to match after a \\n, as included\n\t\t\t\tby some s-expressions in the scheme grammar.\n\t\t\t",
581
+ "contentName": "source.scheme.embedded.lilypond",
582
+ "end": "(?=[\\s%])|(?<=\\n)",
583
+ "patterns": [
584
+ {
585
+ "include": "source.scheme"
586
+ }
587
+ ]
588
+ },
589
+ "strings": {
590
+ "begin": "\"",
591
+ "captures": {
592
+ "0": {
593
+ "name": "punctuation.definition.string.lilypond"
594
+ }
595
+ },
596
+ "end": "\"",
597
+ "name": "string.quoted.double.lilypond",
598
+ "patterns": [
599
+ {
600
+ "match": "\\\\.",
601
+ "name": "constant.character.escape.lilypond"
602
+ }
603
+ ]
604
+ }
605
+ },
606
+ "scopeName": "source.lilypond",
607
+ "uuid": "F25B30BE-0526-4D92-806C-F0D678DDF669"
608
+ }