textpow1x 0.11.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -2
- data/Gemfile.lock +11 -10
- data/README.rdoc +4 -6
- data/Rakefile +2 -7
- data/lib/textpow.rb +4 -0
- data/lib/textpow/syntax/actionscript.syntax +97 -0
- data/lib/textpow/syntax/active4d.syntax +276 -0
- data/lib/textpow/syntax/active4d_html.syntax +311 -0
- data/lib/textpow/syntax/active4d_ini.syntax +50 -0
- data/lib/textpow/syntax/active4d_library.syntax +21 -0
- data/lib/textpow/syntax/ada.syntax +33 -0
- data/lib/textpow/syntax/antlr.syntax +151 -0
- data/lib/textpow/syntax/apache.syntax +191 -0
- data/lib/textpow/syntax/applescript.syntax +384 -0
- data/lib/textpow/syntax/asp.syntax +70 -0
- data/lib/textpow/syntax/asp_vb.net.syntax +129 -0
- data/lib/textpow/syntax/bibtex.syntax +151 -0
- data/lib/textpow/syntax/blog_html.syntax +41 -0
- data/lib/textpow/syntax/blog_markdown.syntax +42 -0
- data/lib/textpow/syntax/blog_text.syntax +27 -0
- data/lib/textpow/syntax/blog_textile.syntax +27 -0
- data/lib/textpow/syntax/broken/markdown.syntax +543 -0
- data/lib/textpow/syntax/broken/php.syntax +1253 -0
- data/lib/textpow/syntax/buggy/nemerle.syntax +74 -0
- data/lib/textpow/syntax/build.syntax +53 -0
- data/lib/textpow/syntax/bulletin_board.syntax +287 -0
- data/lib/textpow/syntax/c++.syntax +186 -0
- data/lib/textpow/syntax/c.syntax +414 -0
- data/lib/textpow/syntax/cake.syntax +55 -0
- data/lib/textpow/syntax/camlp4.syntax +36 -0
- data/lib/textpow/syntax/cm.syntax +32 -0
- data/lib/textpow/syntax/coffeescript.syntax +216 -0
- data/lib/textpow/syntax/coldfusion.syntax +119 -0
- data/lib/textpow/syntax/context_free.syntax +176 -0
- data/lib/textpow/syntax/cs.syntax +59 -0
- data/lib/textpow/syntax/css.syntax +195 -0
- data/lib/textpow/syntax/css_experimental.syntax +1925 -0
- data/lib/textpow/syntax/csv.syntax +68 -0
- data/lib/textpow/syntax/d.syntax +142 -0
- data/lib/textpow/syntax/diff.syntax +81 -0
- data/lib/textpow/syntax/dokuwiki.syntax +204 -0
- data/lib/textpow/syntax/dot.syntax +47 -0
- data/lib/textpow/syntax/doxygen.syntax +43 -0
- data/lib/textpow/syntax/dylan.syntax +62 -0
- data/lib/textpow/syntax/eiffel.syntax +78 -0
- data/lib/textpow/syntax/erlang.syntax +922 -0
- data/lib/textpow/syntax/f-script.syntax +80 -0
- data/lib/textpow/syntax/fortran.syntax +141 -0
- data/lib/textpow/syntax/fxscript.syntax +142 -0
- data/lib/textpow/syntax/greasemonkey.syntax +34 -0
- data/lib/textpow/syntax/gri.syntax +83 -0
- data/lib/textpow/syntax/groovy.syntax +191 -0
- data/lib/textpow/syntax/gtd.syntax +22 -0
- data/lib/textpow/syntax/gtdalt.syntax +143 -0
- data/lib/textpow/syntax/haml.syntax +88 -0
- data/lib/textpow/syntax/haskell.syntax +88 -0
- data/lib/textpow/syntax/html-asp.syntax +27 -0
- data/lib/textpow/syntax/html.syntax +362 -0
- data/lib/textpow/syntax/html_django.syntax +36 -0
- data/lib/textpow/syntax/html_for_asp.net.syntax +424 -0
- data/lib/textpow/syntax/html_mason.syntax +119 -0
- data/lib/textpow/syntax/html_rails.syntax +40 -0
- data/lib/textpow/syntax/html_tcl.syntax +26 -0
- data/lib/textpow/syntax/icalendar.syntax +32 -0
- data/lib/textpow/syntax/inform.syntax +48 -0
- data/lib/textpow/syntax/ini.syntax +55 -0
- data/lib/textpow/syntax/installer_distribution_script.syntax +77 -0
- data/lib/textpow/syntax/io.syntax +81 -0
- data/lib/textpow/syntax/java.syntax +211 -0
- data/lib/textpow/syntax/javaproperties.syntax +20 -0
- data/lib/textpow/syntax/javascript.syntax +256 -0
- data/lib/textpow/syntax/javascript_+_prototype.syntax +72 -0
- data/lib/textpow/syntax/javascript_+_prototype_bracketed.syntax +140 -0
- data/lib/textpow/syntax/jquery_javascript.syntax +114 -0
- data/lib/textpow/syntax/json.syntax +136 -0
- data/lib/textpow/syntax/languagedefinition.syntax +708 -0
- data/lib/textpow/syntax/latex.syntax +566 -0
- data/lib/textpow/syntax/latex_beamer.syntax +41 -0
- data/lib/textpow/syntax/latex_log.syntax +50 -0
- data/lib/textpow/syntax/latex_memoir.syntax +64 -0
- data/lib/textpow/syntax/lexflex.syntax +219 -0
- data/lib/textpow/syntax/lighttpd.syntax +54 -0
- data/lib/textpow/syntax/lilypond.syntax +492 -0
- data/lib/textpow/syntax/lisp.syntax +61 -0
- data/lib/textpow/syntax/literate_haskell.syntax +24 -0
- data/lib/textpow/syntax/logo.syntax +29 -0
- data/lib/textpow/syntax/logtalk.syntax +152 -0
- data/lib/textpow/syntax/lua.syntax +86 -0
- data/lib/textpow/syntax/m.syntax +142 -0
- data/lib/textpow/syntax/macports_portfile.syntax +163 -0
- data/lib/textpow/syntax/mail.syntax +118 -0
- data/lib/textpow/syntax/makefile.syntax +36 -0
- data/lib/textpow/syntax/man.syntax +17 -0
- data/lib/textpow/syntax/mediawiki.syntax +567 -0
- data/lib/textpow/syntax/mel.syntax +92 -0
- data/lib/textpow/syntax/mips.syntax +66 -0
- data/lib/textpow/syntax/mod_perl.syntax +50 -0
- data/lib/textpow/syntax/modula-3.syntax +47 -0
- data/lib/textpow/syntax/moinmoin.syntax +189 -0
- data/lib/textpow/syntax/mootools.syntax +572 -0
- data/lib/textpow/syntax/movable_type.syntax +162 -0
- data/lib/textpow/syntax/multimarkdown.syntax +39 -0
- data/lib/textpow/syntax/objective-c++.syntax +18 -0
- data/lib/textpow/syntax/objective-c.syntax +233 -0
- data/lib/textpow/syntax/ocaml.syntax +764 -0
- data/lib/textpow/syntax/ocamllex.syntax +167 -0
- data/lib/textpow/syntax/ocamlyacc.syntax +184 -0
- data/lib/textpow/syntax/old/YAML.yaml +160 -0
- data/lib/textpow/syntax/old/txt2tags.yaml +139 -0
- data/lib/textpow/syntax/opengl.syntax +14 -0
- data/lib/textpow/syntax/pascal.syntax +77 -0
- data/lib/textpow/syntax/perl.syntax +1113 -0
- data/lib/textpow/syntax/plain_text.syntax +32 -0
- data/lib/textpow/syntax/pmwiki.syntax +113 -0
- data/lib/textpow/syntax/postscript.syntax +114 -0
- data/lib/textpow/syntax/processing.syntax +106 -0
- data/lib/textpow/syntax/prolog.syntax +40 -0
- data/lib/textpow/syntax/property_list.syntax +635 -0
- data/lib/textpow/syntax/python.syntax +868 -0
- data/lib/textpow/syntax/python_django.syntax +21 -0
- data/lib/textpow/syntax/qmake_project.syntax +114 -0
- data/lib/textpow/syntax/qt_c++.syntax +26 -0
- data/lib/textpow/syntax/quake3_config.syntax +32 -0
- data/lib/textpow/syntax/r.syntax +81 -0
- data/lib/textpow/syntax/r_console.syntax +16 -0
- data/lib/textpow/syntax/ragel.syntax +201 -0
- data/lib/textpow/syntax/rd_r_documentation.syntax +91 -0
- data/lib/textpow/syntax/regexp.syntax +50 -0
- data/lib/textpow/syntax/regular_expressions_oniguruma.syntax +107 -0
- data/lib/textpow/syntax/regular_expressions_python.syntax +109 -0
- data/lib/textpow/syntax/release_notes.syntax +46 -0
- data/lib/textpow/syntax/remind.syntax +253 -0
- data/lib/textpow/syntax/restructuredtext.syntax +250 -0
- data/lib/textpow/syntax/rez.syntax +80 -0
- data/lib/textpow/syntax/ruby.syntax +1035 -0
- data/lib/textpow/syntax/ruby_experimental.syntax +145 -0
- data/lib/textpow/syntax/ruby_on_rails.syntax +88 -0
- data/lib/textpow/syntax/s5.syntax +69 -0
- data/lib/textpow/syntax/sass.syntax +45 -0
- data/lib/textpow/syntax/scheme.syntax +347 -0
- data/lib/textpow/syntax/scilab.syntax +41 -0
- data/lib/textpow/syntax/setext.syntax +147 -0
- data/lib/textpow/syntax/shell-unix-generic.syntax +384 -0
- data/lib/textpow/syntax/slate.syntax +149 -0
- data/lib/textpow/syntax/smarty.syntax +63 -0
- data/lib/textpow/syntax/sql.syntax +237 -0
- data/lib/textpow/syntax/sql_rails.syntax +18 -0
- data/lib/textpow/syntax/ssh-config.syntax +33 -0
- data/lib/textpow/syntax/standard_ml.syntax +121 -0
- data/lib/textpow/syntax/strings_file.syntax +39 -0
- data/lib/textpow/syntax/subversion_commit_message.syntax +36 -0
- data/lib/textpow/syntax/sweave.syntax +84 -0
- data/lib/textpow/syntax/swig.syntax +57 -0
- data/lib/textpow/syntax/tcl.syntax +152 -0
- data/lib/textpow/syntax/template_toolkit.syntax +121 -0
- data/lib/textpow/syntax/tex.syntax +86 -0
- data/lib/textpow/syntax/tex_math.syntax +49 -0
- data/lib/textpow/syntax/textile.syntax +215 -0
- data/lib/textpow/syntax/tsv.syntax +50 -0
- data/lib/textpow/syntax/twiki.syntax +241 -0
- data/lib/textpow/syntax/txt2tags.syntax +79 -0
- data/lib/textpow/syntax/vectorscript.syntax +57 -0
- data/lib/textpow/syntax/xhtml_1.0.syntax +4027 -0
- data/lib/textpow/syntax/xml.syntax +180 -0
- data/lib/textpow/syntax/xml_strict.syntax +92 -0
- data/lib/textpow/syntax/xsl.syntax +60 -0
- data/lib/textpow/syntax/yaml.syntax +160 -0
- data/lib/textpow/syntax/yui_javascript.syntax +176 -0
- data/lib/textpow/version.rb +2 -2
- data/spec/spec_helper.rb +2 -0
- data/spec/textpow_spec.rb +34 -0
- metadata +169 -5
- data/test/textpow_test.rb +0 -24
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
name: LaTeX Beamer
|
3
|
+
fileTypes: []
|
4
|
+
|
5
|
+
firstLineMatch: ^\\documentclass(\[.*\])?\{beamer\}
|
6
|
+
scopeName: text.tex.latex.beamer
|
7
|
+
uuid: 2ACA20AA-B008-469B-A04A-6DE232973ED8
|
8
|
+
foldingStartMarker: \\begin\{.*\}|%.*\(fold\)\s*$
|
9
|
+
patterns:
|
10
|
+
- name: meta.function.environment.frame.latex
|
11
|
+
captures:
|
12
|
+
"1":
|
13
|
+
name: support.function.be.latex
|
14
|
+
"2":
|
15
|
+
name: punctuation.definition.function.latex
|
16
|
+
"3":
|
17
|
+
name: punctuation.definition.arguments.begin.latex
|
18
|
+
"4":
|
19
|
+
name: variable.parameter.function.latex
|
20
|
+
"5":
|
21
|
+
name: punctuation.definition.arguments.end.latex
|
22
|
+
begin: (?:\s*)((\\)begin)(\{)(frame)(\})
|
23
|
+
end: ((\\)end)(\{)(frame)(\})
|
24
|
+
patterns:
|
25
|
+
- name: support.function.with-arg.latex
|
26
|
+
captures:
|
27
|
+
"1":
|
28
|
+
name: support.function.with-arg.latex
|
29
|
+
"2":
|
30
|
+
name: punctuation.definition.function.latex
|
31
|
+
"3":
|
32
|
+
name: punctuation.definition.arguments.begin.latex
|
33
|
+
"4":
|
34
|
+
name: entity.name.function.frame.latex
|
35
|
+
"5":
|
36
|
+
name: punctuation.definition.arguments.end.latex
|
37
|
+
match: ((\\)frametitle)(\{)(.*)(\})
|
38
|
+
- include: $self
|
39
|
+
- include: text.tex.latex
|
40
|
+
foldingStopMarker: \\end\{.*\}|%.*\(end\)\s*$
|
41
|
+
keyEquivalent: ^~B
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
name: LaTeX Log
|
3
|
+
firstLineMatch: "This is (pdfe)?TeXk?, Version "
|
4
|
+
scopeName: text.log.latex
|
5
|
+
uuid: F68ACE95-7DB3-4DFB-AA8A-89988B116B5C
|
6
|
+
foldingStartMarker: /\*\*|\(\s*$
|
7
|
+
patterns:
|
8
|
+
- name: invalid.deprecated
|
9
|
+
match: ".*Warning:"
|
10
|
+
- name: invalid.deprecated
|
11
|
+
match: "[^:]*:\\d*:.*"
|
12
|
+
- name: invalid.illegal
|
13
|
+
match: .*Error|^!.*
|
14
|
+
- name: entity.name.function
|
15
|
+
match: .*\.sty
|
16
|
+
- name: entity.name.type.class
|
17
|
+
match: .*\.cls
|
18
|
+
- name: entity.name.tag.configuration
|
19
|
+
match: .*\.cfg
|
20
|
+
- name: entity.name.tag.definition
|
21
|
+
match: .*\.def
|
22
|
+
- name: comment.block.documentation
|
23
|
+
match: .*Info.*
|
24
|
+
- name: meta.log.latex.fixme
|
25
|
+
match: ".*FiXme:"
|
26
|
+
- name: meta.log.latex.hyphenation
|
27
|
+
captures:
|
28
|
+
"1":
|
29
|
+
name: keyword.control.hyphenation.latex
|
30
|
+
begin: (Overfull|Underfull)
|
31
|
+
end: (\[\]\n)
|
32
|
+
patterns:
|
33
|
+
- name: variable.parameter.hyphenation.latex2
|
34
|
+
match: "[0-9]+\\-\\-[0-9]+"
|
35
|
+
- name: string.unquoted.other.filename.log.latex
|
36
|
+
endCaptures:
|
37
|
+
"0":
|
38
|
+
name: punctuation.definition.string.end.log.latex
|
39
|
+
begin: (<)
|
40
|
+
beginCaptures:
|
41
|
+
"0":
|
42
|
+
name: punctuation.definition.string.begin.log.latex
|
43
|
+
end: (>)
|
44
|
+
patterns:
|
45
|
+
- name: support.function.with-arg.latex
|
46
|
+
captures:
|
47
|
+
"1":
|
48
|
+
name: entity.name.function.filename.latex
|
49
|
+
match: (.*/.*\.pdf)
|
50
|
+
foldingStopMarker: \*\*/|^\s*\)
|
@@ -0,0 +1,64 @@
|
|
1
|
+
---
|
2
|
+
name: LaTeX Memoir
|
3
|
+
fileTypes: []
|
4
|
+
|
5
|
+
firstLineMatch: ^\\documentclass(\[.*\])?\{memoir\}
|
6
|
+
scopeName: text.tex.latex.memoir
|
7
|
+
uuid: D0853B20-ABFF-48AB-8AB9-3D8BA0755C05
|
8
|
+
foldingStartMarker: \\begin\{.*\}|%.*\(fold\)\s*$
|
9
|
+
patterns:
|
10
|
+
- name: meta.function.memoir-fbox.latex
|
11
|
+
captures:
|
12
|
+
"1":
|
13
|
+
name: support.function.be.latex
|
14
|
+
"2":
|
15
|
+
name: punctuation.definition.function.latex
|
16
|
+
"3":
|
17
|
+
name: punctuation.definition.arguments.begin.latex
|
18
|
+
"4":
|
19
|
+
name: variable.parameter.function.latex
|
20
|
+
"5":
|
21
|
+
name: punctuation.definition.arguments.end.latex
|
22
|
+
begin: (?:\s*)((\\)begin)(\{)(framed|shaded|leftbar)(\})
|
23
|
+
end: ((\\)end)(\{)(\4)(\})
|
24
|
+
patterns:
|
25
|
+
- include: $self
|
26
|
+
- name: meta.function.memoir-verbatim.latex
|
27
|
+
captures:
|
28
|
+
"1":
|
29
|
+
name: support.function.be.latex
|
30
|
+
"2":
|
31
|
+
name: punctuation.definition.function.latex
|
32
|
+
"3":
|
33
|
+
name: punctuation.definition.arguments.begin.latex
|
34
|
+
"4":
|
35
|
+
name: variable.parameter.function.latex
|
36
|
+
"5":
|
37
|
+
name: punctuation.definition.arguments.end.latex
|
38
|
+
begin: (?:\s*)((\\)begin)(\{)((?:fboxv|boxedv|V)erbatim)(\})
|
39
|
+
contentName: markup.raw.verbatim.latex
|
40
|
+
end: ((\\)end)(\{)(\4)(\})
|
41
|
+
- name: meta.function.memoir-alltt.latex
|
42
|
+
captures:
|
43
|
+
"1":
|
44
|
+
name: support.function.be.latex
|
45
|
+
"2":
|
46
|
+
name: punctuation.definition.function.latex
|
47
|
+
"3":
|
48
|
+
name: punctuation.definition.arguments.begin.latex
|
49
|
+
"4":
|
50
|
+
name: variable.parameter.function.latex
|
51
|
+
"5":
|
52
|
+
name: punctuation.definition.arguments.end.latex
|
53
|
+
begin: (?:\s*)((\\)begin)(\{)(alltt)(\})
|
54
|
+
contentName: markup.raw.verbatim.latex
|
55
|
+
end: ((\\)end)(\{)(alltt)(\})
|
56
|
+
patterns:
|
57
|
+
- name: support.function.general.tex
|
58
|
+
captures:
|
59
|
+
"1":
|
60
|
+
name: punctuation.definition.function.tex
|
61
|
+
match: (\\)[A-Za-z]+
|
62
|
+
- include: text.tex.latex
|
63
|
+
foldingStopMarker: \\end\{.*\}|%.*\(end\)\s*$
|
64
|
+
keyEquivalent: ^~M
|
@@ -0,0 +1,219 @@
|
|
1
|
+
---
|
2
|
+
name: Lex/Flex
|
3
|
+
fileTypes:
|
4
|
+
- l
|
5
|
+
scopeName: source.lex
|
6
|
+
repository:
|
7
|
+
csource:
|
8
|
+
patterns:
|
9
|
+
- name: support.function.c.lex
|
10
|
+
match: \b(?:ECHO|BEGIN|REJECT|YY_FLUSH_BUFFER|YY_BREAK|yy(?:more|less|unput|input|terminate|text|leng|restart|_(?:push|pop|top)_state|_(?:create|switch_to|flush|delete)_buffer|_scan_(?:string|bytes|buffer)|_set_(?:bol|interactive))(?=\(|$))\b
|
11
|
+
- include: source.c
|
12
|
+
subregexp:
|
13
|
+
patterns:
|
14
|
+
- include: "#re_escape"
|
15
|
+
- name: constant.other.character-class.set.lex
|
16
|
+
endCaptures:
|
17
|
+
"1":
|
18
|
+
name: punctuation.terminator.character-class.set.lex
|
19
|
+
begin: (\[)(\^)?-?
|
20
|
+
beginCaptures:
|
21
|
+
"1":
|
22
|
+
name: punctuation.definition.character-class.set.lex
|
23
|
+
"2":
|
24
|
+
name: keyword.operator.negation.regexp.lex
|
25
|
+
end: -?(\])
|
26
|
+
patterns:
|
27
|
+
- include: "#re_escape"
|
28
|
+
- name: constant.other.character-class.set.lex
|
29
|
+
captures:
|
30
|
+
"1":
|
31
|
+
name: invalid.illegal.regexp.lex
|
32
|
+
match: \[:(?:(?:alnum|alpha|blank|cntrl|x?digit|graph|lower|print|punct|space|upper)|(.*?)):\]
|
33
|
+
- name: variable.other.lex
|
34
|
+
match: (?i){[a-z_][a-z0-9_-]*}
|
35
|
+
- name: keyword.operator.quantifier.regexp.lex
|
36
|
+
begin: \{
|
37
|
+
end: \}
|
38
|
+
patterns:
|
39
|
+
- match: (?<=\{)[0-9]*(?:,[0-9]*)?(?=\})
|
40
|
+
- name: invalid.illegal.regexp.lex
|
41
|
+
match: "[^}]"
|
42
|
+
comment: "{3} counts should only have digit[,digit]"
|
43
|
+
- name: string.quoted.double.regexp.lex
|
44
|
+
begin: "\""
|
45
|
+
end: "\""
|
46
|
+
patterns:
|
47
|
+
- include: "#re_escape"
|
48
|
+
- begin: ([*+?])(?=[*+?])
|
49
|
+
beginCaptures:
|
50
|
+
"1":
|
51
|
+
name: keyword.operator.quantifier.regexp.lex
|
52
|
+
end: (?=[^*+?])
|
53
|
+
patterns:
|
54
|
+
- name: invalid.illegal.regexp.lex
|
55
|
+
match: .
|
56
|
+
comment: make ** or +? or other combinations illegal
|
57
|
+
- name: keyword.operator.quantifier.regexp.lex
|
58
|
+
match: "[*+?]"
|
59
|
+
- name: invalid.illegal.regexp.lex
|
60
|
+
match: <<EOF>>
|
61
|
+
comment: <<EOF>> is handled in the rule pattern
|
62
|
+
- name: meta.group.regexp.lex
|
63
|
+
endCaptures:
|
64
|
+
"1":
|
65
|
+
name: punctuation.terminator.group.regexp.lex
|
66
|
+
begin: (\()
|
67
|
+
beginCaptures:
|
68
|
+
"1":
|
69
|
+
name: punctuation.definition.group.regexp.lex
|
70
|
+
end: (\))|(?=\s)|$(?#end on whitespace because regex does)
|
71
|
+
patterns:
|
72
|
+
- name: invalid.illegal.regexp.lex
|
73
|
+
match: /
|
74
|
+
- include: "#subregexp"
|
75
|
+
- begin: (/)
|
76
|
+
beginCaptures:
|
77
|
+
"1":
|
78
|
+
name: keyword.operator.trailing-match.regexp.lex
|
79
|
+
end: (?=\s)|$
|
80
|
+
patterns:
|
81
|
+
- name: invalid.illegal.regexp.lex
|
82
|
+
match: /|\$(?!\S)
|
83
|
+
- include: "#subregexp"
|
84
|
+
comment: detection of multiple trailing contexts
|
85
|
+
regexp:
|
86
|
+
name: string.regexp.lex
|
87
|
+
captures:
|
88
|
+
"1":
|
89
|
+
name: keyword.control.anchor.regexp.lex
|
90
|
+
begin: \G(?=\S)(\^)?
|
91
|
+
end: (\$)?(?:(?=\s)|$)
|
92
|
+
patterns:
|
93
|
+
- include: "#subregexp"
|
94
|
+
re_escape:
|
95
|
+
name: constant.character.escape.lex
|
96
|
+
match: \\(?i:[0-9]{1,3}|x[0-9a-f]{1,2}|.)
|
97
|
+
includes:
|
98
|
+
patterns:
|
99
|
+
- name: meta.embedded.source.c.lex
|
100
|
+
begin: ^%\{$
|
101
|
+
end: ^%\}$
|
102
|
+
patterns:
|
103
|
+
- include: source.c
|
104
|
+
comment: "TODO: $} should override the embedded scopes"
|
105
|
+
- name: meta.embedded.source.c.lex
|
106
|
+
begin: ^[ \t]+
|
107
|
+
end: $
|
108
|
+
patterns:
|
109
|
+
- include: source.c
|
110
|
+
comment: "TODO: eol should override the embedded scopes"
|
111
|
+
rec_csource:
|
112
|
+
begin: \{
|
113
|
+
end: \}
|
114
|
+
patterns:
|
115
|
+
- include: source.c
|
116
|
+
- include: "#csource"
|
117
|
+
uuid: 92E842A0-9DE6-4D31-A6AC-1CDE0F9547C5
|
118
|
+
foldingStartMarker: /\*\*|\{\s*$
|
119
|
+
patterns:
|
120
|
+
- name: meta.section.definitions.lex
|
121
|
+
begin: \A(?!%%$)
|
122
|
+
end: ^(?=%%$)
|
123
|
+
patterns:
|
124
|
+
- include: "#includes"
|
125
|
+
- name: comment.block.c.lex
|
126
|
+
begin: /\*
|
127
|
+
end: \*/|$
|
128
|
+
- name: meta.definition.lex
|
129
|
+
begin: ^(?i)([a-z_][a-z0-9_-]*)(?=\s|$)
|
130
|
+
beginCaptures:
|
131
|
+
"1":
|
132
|
+
name: entity.name.function.lex
|
133
|
+
end: $
|
134
|
+
patterns:
|
135
|
+
- include: "#regexp"
|
136
|
+
- name: meta.start-condition.lex
|
137
|
+
begin: ^(%[sx])(?=\s|$)
|
138
|
+
beginCaptures:
|
139
|
+
"1":
|
140
|
+
name: punctuation.definition.start-condition.lex
|
141
|
+
end: $
|
142
|
+
patterns:
|
143
|
+
- match: (?i)[a-z_][a-z0-9_-]*
|
144
|
+
- name: invalid.illegal.lex
|
145
|
+
match: \S
|
146
|
+
- name: meta.options.lex
|
147
|
+
begin: ^(%option)\s(?=\S)
|
148
|
+
beginCaptures:
|
149
|
+
"1":
|
150
|
+
name: keyword.other.option.lex
|
151
|
+
end: $
|
152
|
+
patterns:
|
153
|
+
- name: support.other.option.lex
|
154
|
+
match: \b(?:(?:no)?(?:[78]bit|align|backup|batch|c\+\+|debug|default|ecs|fast|full|interactive|lex-compat|meta-ecs|perf-report|read|stdout|verbose|warn|array|pointer|input|unput|yy_(?:(?:push|pop|top)_state|scan_(?:buffer|bytes|string))|main|stack|stdinit|yylineno|yywrap)|(?:case(?:ful|less)|case-(?:in)?sensitive|(?:always|never)-interactive))\b
|
155
|
+
- name: keyword.other.option.lex
|
156
|
+
begin: ^%(?:array|pointer)
|
157
|
+
end: $
|
158
|
+
patterns:
|
159
|
+
- name: invalid.illegal.lex
|
160
|
+
match: \S
|
161
|
+
comment: first section of the file - definitions
|
162
|
+
- begin: ^(%%)$
|
163
|
+
beginCaptures:
|
164
|
+
"1":
|
165
|
+
name: punctuation.separator.sections.lex
|
166
|
+
end: \Z.\A(?# never end)
|
167
|
+
patterns:
|
168
|
+
- name: meta.section.rules.lex
|
169
|
+
begin: ^(?!%%$)
|
170
|
+
end: ^(?=%%$)
|
171
|
+
patterns:
|
172
|
+
- name: meta.rule.lex
|
173
|
+
begin: ^(?!$)
|
174
|
+
end: $
|
175
|
+
patterns:
|
176
|
+
- include: "#includes"
|
177
|
+
- begin: (?i)^(<(?:(?:[a-z_][a-z0-9_-]*,)*[a-z_][a-z0-9_-]|\*)>)?(?:(<<EOF>>)(\s*))?(?=\S)
|
178
|
+
beginCaptures:
|
179
|
+
"1":
|
180
|
+
name: keyword.other.start-condition.lex
|
181
|
+
"2":
|
182
|
+
name: keyword.operator.eof.lex
|
183
|
+
"3":
|
184
|
+
name: invalid.illegal.regexp.lex
|
185
|
+
end: (?=\s)|$
|
186
|
+
patterns:
|
187
|
+
- include: "#regexp"
|
188
|
+
comment: rule pattern
|
189
|
+
- endCaptures:
|
190
|
+
"1":
|
191
|
+
name: punctuation.terminator.code.lex
|
192
|
+
"2":
|
193
|
+
name: invalid.illegal.ignored.lex
|
194
|
+
begin: (%\{)
|
195
|
+
beginCaptures:
|
196
|
+
"1":
|
197
|
+
name: punctuation.definition.code.lex
|
198
|
+
end: (%\})(.*)
|
199
|
+
patterns:
|
200
|
+
- include: "#csource"
|
201
|
+
comment: "TODO: %} should override embedded scopes"
|
202
|
+
- name: meta.rule.action.lex
|
203
|
+
begin: (?=\S)
|
204
|
+
end: $
|
205
|
+
patterns:
|
206
|
+
- include: "#csource"
|
207
|
+
comment: "TODO: eol should override embedded scopes"
|
208
|
+
comment: second section of the file - rules
|
209
|
+
- begin: ^(%%)$
|
210
|
+
contentName: meta.section.user-code.lex
|
211
|
+
beginCaptures:
|
212
|
+
"1":
|
213
|
+
name: punctuation.separator.sections.lex
|
214
|
+
end: \Z.\A(?# never end)
|
215
|
+
patterns:
|
216
|
+
- include: "#csource"
|
217
|
+
comment: third section of the file - user code
|
218
|
+
foldingStopMarker: \*\*/|^\s*\}
|
219
|
+
keyEquivalent: ^~L
|
@@ -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"
|