textpow 0.10.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. data/.travis.yml +7 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +30 -0
  4. data/{History.txt → History.rdoc} +10 -0
  5. data/{README.txt → MIT-LICENSE.txt} +0 -30
  6. data/README.rdoc +82 -0
  7. data/Rakefile +42 -49
  8. data/bin/plist2syntax +0 -0
  9. data/bin/plist2yaml +0 -0
  10. data/examples/benchmark_js.rb +13 -0
  11. data/examples/jquery.js +9046 -0
  12. data/lib/textpow.rb +43 -3
  13. data/lib/textpow/debug_processor.rb +35 -35
  14. data/lib/textpow/recording_processor.rb +13 -0
  15. data/lib/textpow/score_manager.rb +60 -60
  16. data/lib/textpow/syntax.rb +303 -262
  17. data/lib/textpow/syntax/broken/markdown.syntax +519 -0
  18. data/lib/textpow/syntax/broken/php.syntax +1253 -0
  19. data/lib/textpow/syntax/buggy/nemerle.syntax +74 -0
  20. data/lib/textpow/syntax/old/YAML.yaml +160 -0
  21. data/lib/textpow/syntax/old/txt2tags.yaml +139 -0
  22. data/lib/textpow/syntax/source.actionscript.syntax +97 -0
  23. data/lib/textpow/syntax/source.active4d.library.syntax +21 -0
  24. data/lib/textpow/syntax/source.active4d.syntax +276 -0
  25. data/lib/textpow/syntax/source.ada.syntax +33 -0
  26. data/lib/textpow/syntax/source.antlr.syntax +151 -0
  27. data/lib/textpow/syntax/source.apache-config.mod_perl.syntax +50 -0
  28. data/lib/textpow/syntax/source.apache-config.syntax +191 -0
  29. data/lib/textpow/syntax/source.applescript.syntax +384 -0
  30. data/lib/textpow/syntax/source.asp.syntax +70 -0
  31. data/lib/textpow/syntax/source.asp.vb.net.syntax +129 -0
  32. data/lib/textpow/syntax/source.c++.qt.syntax +26 -0
  33. data/lib/textpow/syntax/source.c++.syntax +186 -0
  34. data/lib/textpow/syntax/source.c-sharp.syntax +59 -0
  35. data/lib/textpow/syntax/source.c.ragel.syntax +201 -0
  36. data/lib/textpow/syntax/source.c.syntax +414 -0
  37. data/lib/textpow/syntax/source.camlp4.ocaml.syntax +36 -0
  38. data/lib/textpow/syntax/source.cm.syntax +32 -0
  39. data/lib/textpow/syntax/source.coffee.syntax +216 -0
  40. data/lib/textpow/syntax/source.context-free.syntax +176 -0
  41. data/lib/textpow/syntax/source.css.beta.syntax +1925 -0
  42. data/lib/textpow/syntax/source.css.syntax +195 -0
  43. data/lib/textpow/syntax/source.d.syntax +142 -0
  44. data/lib/textpow/syntax/source.diff.syntax +81 -0
  45. data/lib/textpow/syntax/source.dot.syntax +47 -0
  46. data/lib/textpow/syntax/source.dylan.syntax +62 -0
  47. data/lib/textpow/syntax/source.eiffel.syntax +78 -0
  48. data/lib/textpow/syntax/source.erlang.syntax +922 -0
  49. data/lib/textpow/syntax/source.fortran.syntax +141 -0
  50. data/lib/textpow/syntax/source.fscript.syntax +80 -0
  51. data/lib/textpow/syntax/source.fxscript.syntax +142 -0
  52. data/lib/textpow/syntax/source.gri.syntax +83 -0
  53. data/lib/textpow/syntax/source.groovy.groovy.syntax +191 -0
  54. data/lib/textpow/syntax/source.haskell.syntax +88 -0
  55. data/lib/textpow/syntax/source.icalendar.syntax +32 -0
  56. data/lib/textpow/syntax/source.inform.syntax +48 -0
  57. data/lib/textpow/syntax/source.ini.syntax +55 -0
  58. data/lib/textpow/syntax/source.io.syntax +81 -0
  59. data/lib/textpow/syntax/source.java-props.syntax +20 -0
  60. data/lib/textpow/syntax/source.java.syntax +211 -0
  61. data/lib/textpow/syntax/source.js.greasemonkey.syntax +34 -0
  62. data/lib/textpow/syntax/source.js.jquery.syntax +114 -0
  63. data/lib/textpow/syntax/source.js.mootools.syntax +572 -0
  64. data/lib/textpow/syntax/source.js.prototype.bracketed.syntax +140 -0
  65. data/lib/textpow/syntax/source.js.prototype.syntax +72 -0
  66. data/lib/textpow/syntax/source.js.syntax +256 -0
  67. data/lib/textpow/syntax/source.js.yui.syntax +176 -0
  68. data/lib/textpow/syntax/source.json.syntax +136 -0
  69. data/lib/textpow/syntax/source.lex.syntax +219 -0
  70. data/lib/textpow/syntax/source.lighttpd-config.syntax +54 -0
  71. data/lib/textpow/syntax/source.lilypond.syntax +492 -0
  72. data/lib/textpow/syntax/source.lisp.syntax +61 -0
  73. data/lib/textpow/syntax/source.logo.syntax +29 -0
  74. data/lib/textpow/syntax/source.logtalk.syntax +152 -0
  75. data/lib/textpow/syntax/source.lua.syntax +86 -0
  76. data/lib/textpow/syntax/source.makefile.syntax +36 -0
  77. data/lib/textpow/syntax/source.matlab.syntax +142 -0
  78. data/lib/textpow/syntax/source.mel.syntax +92 -0
  79. data/lib/textpow/syntax/source.mips.syntax +66 -0
  80. data/lib/textpow/syntax/source.ml.syntax +121 -0
  81. data/lib/textpow/syntax/source.modula-3.syntax +47 -0
  82. data/lib/textpow/syntax/source.nant-build.syntax +53 -0
  83. data/lib/textpow/syntax/source.objc++.syntax +18 -0
  84. data/lib/textpow/syntax/source.objc.syntax +233 -0
  85. data/lib/textpow/syntax/source.ocaml.syntax +764 -0
  86. data/lib/textpow/syntax/source.ocamllex.syntax +167 -0
  87. data/lib/textpow/syntax/source.ocamlyacc.syntax +184 -0
  88. data/lib/textpow/syntax/source.open-gl.syntax +14 -0
  89. data/lib/textpow/syntax/source.pascal.syntax +77 -0
  90. data/lib/textpow/syntax/source.pascal.vectorscript.syntax +57 -0
  91. data/lib/textpow/syntax/source.perl.syntax +1113 -0
  92. data/lib/textpow/syntax/source.php.cake.syntax +55 -0
  93. data/lib/textpow/syntax/source.plist.tm-grammar.syntax +708 -0
  94. data/lib/textpow/syntax/source.postscript.syntax +114 -0
  95. data/lib/textpow/syntax/source.processing.syntax +106 -0
  96. data/lib/textpow/syntax/source.prolog.syntax +40 -0
  97. data/lib/textpow/syntax/source.python.django.syntax +21 -0
  98. data/lib/textpow/syntax/source.python.syntax +868 -0
  99. data/lib/textpow/syntax/source.qmake.syntax +114 -0
  100. data/lib/textpow/syntax/source.quake-config.syntax +32 -0
  101. data/lib/textpow/syntax/source.r-console.syntax +16 -0
  102. data/lib/textpow/syntax/source.r.syntax +81 -0
  103. data/lib/textpow/syntax/source.regexp.oniguruma.syntax +107 -0
  104. data/lib/textpow/syntax/source.regexp.python.syntax +109 -0
  105. data/lib/textpow/syntax/source.regexp.syntax +50 -0
  106. data/lib/textpow/syntax/source.remind.syntax +253 -0
  107. data/lib/textpow/syntax/source.rez.syntax +80 -0
  108. data/lib/textpow/syntax/source.ruby.experimental.syntax +145 -0
  109. data/lib/textpow/syntax/source.ruby.rails.syntax +88 -0
  110. data/lib/textpow/syntax/source.ruby.syntax +1035 -0
  111. data/lib/textpow/syntax/source.s5.syntax +69 -0
  112. data/lib/textpow/syntax/source.sass.syntax +45 -0
  113. data/lib/textpow/syntax/source.scheme.syntax +347 -0
  114. data/lib/textpow/syntax/source.scilab.syntax +41 -0
  115. data/lib/textpow/syntax/source.scss.syntax +527 -0
  116. data/lib/textpow/syntax/source.shell.syntax +384 -0
  117. data/lib/textpow/syntax/source.slate.syntax +149 -0
  118. data/lib/textpow/syntax/source.smarty.syntax +63 -0
  119. data/lib/textpow/syntax/source.sql.ruby.syntax +18 -0
  120. data/lib/textpow/syntax/source.sql.syntax +237 -0
  121. data/lib/textpow/syntax/source.ssh-config.syntax +33 -0
  122. data/lib/textpow/syntax/source.strings.syntax +39 -0
  123. data/lib/textpow/syntax/source.swig.syntax +57 -0
  124. data/lib/textpow/syntax/source.tcl.macports.syntax +163 -0
  125. data/lib/textpow/syntax/source.tcl.syntax +152 -0
  126. data/lib/textpow/syntax/source.yaml.syntax +160 -0
  127. data/lib/textpow/syntax/text.active4d-ini.syntax +50 -0
  128. data/lib/textpow/syntax/text.bbcode.syntax +287 -0
  129. data/lib/textpow/syntax/text.bibtex.syntax +151 -0
  130. data/lib/textpow/syntax/text.blog.html.syntax +41 -0
  131. data/lib/textpow/syntax/text.blog.markdown.syntax +42 -0
  132. data/lib/textpow/syntax/text.blog.syntax +27 -0
  133. data/lib/textpow/syntax/text.blog.textile.syntax +27 -0
  134. data/lib/textpow/syntax/text.gtdalt.syntax +143 -0
  135. data/lib/textpow/syntax/text.haml.syntax +88 -0
  136. data/lib/textpow/syntax/text.html.asp.net.syntax +424 -0
  137. data/lib/textpow/syntax/text.html.asp.syntax +27 -0
  138. data/lib/textpow/syntax/text.html.basic.syntax +362 -0
  139. data/lib/textpow/syntax/text.html.cfm.syntax +119 -0
  140. data/lib/textpow/syntax/text.html.django.syntax +36 -0
  141. data/lib/textpow/syntax/text.html.dokuwiki.syntax +204 -0
  142. data/lib/textpow/syntax/text.html.doxygen.syntax +43 -0
  143. data/lib/textpow/syntax/text.html.markdown.multimarkdown.syntax +39 -0
  144. data/lib/textpow/syntax/text.html.mason.syntax +119 -0
  145. data/lib/textpow/syntax/text.html.mediawiki.syntax +567 -0
  146. data/lib/textpow/syntax/text.html.mt.syntax +162 -0
  147. data/lib/textpow/syntax/text.html.ruby.syntax +40 -0
  148. data/lib/textpow/syntax/text.html.strict.active4d.syntax +311 -0
  149. data/lib/textpow/syntax/text.html.tcl.syntax +26 -0
  150. data/lib/textpow/syntax/text.html.textile.syntax +215 -0
  151. data/lib/textpow/syntax/text.html.tt.syntax +121 -0
  152. data/lib/textpow/syntax/text.html.twiki.syntax +241 -0
  153. data/lib/textpow/syntax/text.html.xhtml.1-strict.syntax +4027 -0
  154. data/lib/textpow/syntax/text.log.latex.syntax +50 -0
  155. data/lib/textpow/syntax/text.mail.markdown.syntax +118 -0
  156. data/lib/textpow/syntax/text.man.syntax +17 -0
  157. data/lib/textpow/syntax/text.moinmoin.syntax +189 -0
  158. data/lib/textpow/syntax/text.plain.gtd.syntax +22 -0
  159. data/lib/textpow/syntax/text.plain.release-notes.syntax +46 -0
  160. data/lib/textpow/syntax/text.plain.syntax +32 -0
  161. data/lib/textpow/syntax/text.plist.syntax +635 -0
  162. data/lib/textpow/syntax/text.pmwiki.syntax +113 -0
  163. data/lib/textpow/syntax/text.restructuredtext.syntax +250 -0
  164. data/lib/textpow/syntax/text.setext.syntax +147 -0
  165. data/lib/textpow/syntax/text.subversion-commit.syntax +36 -0
  166. data/lib/textpow/syntax/text.tabular.csv.syntax +68 -0
  167. data/lib/textpow/syntax/text.tabular.tsv.syntax +50 -0
  168. data/lib/textpow/syntax/text.tex.latex.beamer.syntax +41 -0
  169. data/lib/textpow/syntax/text.tex.latex.haskell.syntax +24 -0
  170. data/lib/textpow/syntax/text.tex.latex.memoir.syntax +64 -0
  171. data/lib/textpow/syntax/text.tex.latex.rd.syntax +91 -0
  172. data/lib/textpow/syntax/text.tex.latex.sweave.syntax +84 -0
  173. data/lib/textpow/syntax/text.tex.latex.syntax +566 -0
  174. data/lib/textpow/syntax/text.tex.math.syntax +49 -0
  175. data/lib/textpow/syntax/text.tex.syntax +86 -0
  176. data/lib/textpow/syntax/text.txt2tags.syntax +79 -0
  177. data/lib/textpow/syntax/text.xml.apple-dist.syntax +77 -0
  178. data/lib/textpow/syntax/text.xml.strict.syntax +92 -0
  179. data/lib/textpow/syntax/text.xml.syntax +180 -0
  180. data/lib/textpow/syntax/text.xml.xsl.syntax +60 -0
  181. data/lib/textpow/version.rb +3 -0
  182. data/spec/fixtures/objeck.plist +107 -0
  183. data/spec/fixtures/utf8.txt +1 -0
  184. data/spec/spec_helper.rb +2 -0
  185. data/spec/textpow/score_manager_spec.rb +20 -0
  186. data/spec/textpow/syntax_files_spec.rb +26 -0
  187. data/spec/textpow/syntax_spec.rb +225 -0
  188. data/spec/textpow_spec.rb +57 -0
  189. data/textpow.gemspec +19 -0
  190. metadata +246 -68
  191. data/Manifest.txt +0 -13
  192. data/mm/manual.mm +0 -266
  193. data/test/test_textpow.rb +0 -25
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: camlp4
3
+ scopeName: source.camlp4.ocaml
4
+ repository:
5
+ camlpppp-streams:
6
+ patterns:
7
+ - name: meta.camlp4-stream.element.ocaml
8
+ endCaptures:
9
+ "1":
10
+ name: punctuation.separator.camlp4.ocaml
11
+ begin: (')
12
+ beginCaptures:
13
+ "1":
14
+ name: punctuation.definition.camlp4.simple-element.ocaml
15
+ end: (;)(?=\s*')|(?=\s*>])
16
+ patterns:
17
+ - include: source.ocaml
18
+ uuid: 37538B6B-CEFA-4DAE-B1E4-1218DB82B37F
19
+ foldingStartMarker: (\bEXTEND\B)
20
+ patterns:
21
+ - name: meta.camlp4-stream.ocaml
22
+ endCaptures:
23
+ "1":
24
+ name: punctuation.definition.camlp4-stream.ocaml
25
+ begin: (\[<)(?=.*?>])
26
+ beginCaptures:
27
+ "1":
28
+ name: punctuation.definition.camlp4-stream.ocaml
29
+ end: (?=>])
30
+ patterns:
31
+ - include: "#camlpppp-streams"
32
+ - name: punctuation.definition.camlp4-stream.ocaml
33
+ match: \[<|>]
34
+ - name: keyword.other.camlp4.ocaml
35
+ match: \bparser\b|<(<|:)|>>|\$(:|\${0,1})
36
+ foldingStopMarker: (\bEND\b)
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: CM
3
+ fileTypes:
4
+ - cm
5
+ scopeName: source.cm
6
+ uuid: AEF91285-0D21-4BB0-B702-F5D0CEDBA4B8
7
+ foldingStartMarker: \(\*
8
+ patterns:
9
+ - name: comment.block.cm
10
+ captures:
11
+ "0":
12
+ name: punctuation.definition.comment.cm
13
+ begin: \(\*
14
+ end: \*\)
15
+ - name: keyword.other.cm
16
+ match: \b(Library|is|Group|structure|signature|functor)\b
17
+ - name: meta.directive.cm
18
+ captures:
19
+ "1":
20
+ name: meta.preprocessor.cm
21
+ "2":
22
+ name: keyword.control.import.if.cm
23
+ begin: ^\s*(#(if).*)
24
+ end: ^\s*(#(endif))
25
+ - name: string.quoted.double.cm
26
+ begin: "\""
27
+ end: "\""
28
+ patterns:
29
+ - name: constant.character.escape.cm
30
+ match: \\.
31
+ foldingStopMarker: \*\)
32
+ comment: CM is the SML Compilation Manager, a sophisticated make that determines dependencies for you.
@@ -0,0 +1,216 @@
1
+ ---
2
+ comment: "CoffeeScript Syntax: version 1"
3
+ fileTypes:
4
+ - coffee
5
+ - Cakefile
6
+ foldingStartMarker: .*(->|=>)\s*$|.*[\[{]\s*$
7
+ foldingStopMarker: ^\s*$|^\s*[}\]]\s*$
8
+ keyEquivalent: ^~C
9
+ name: CoffeeScript
10
+ patterns:
11
+ - captures:
12
+ "1":
13
+ name: variable.parameter.function.coffee
14
+ "2":
15
+ name: storage.type.function.coffee
16
+ comment: "match stuff like: a -> \xE2\x80\xA6 "
17
+ match: (\([^()]*?\))\s*([=-]>)
18
+ name: meta.inline.function.coffee
19
+ - captures:
20
+ "1":
21
+ name: keyword.operator.new.coffee
22
+ "2":
23
+ name: entity.name.type.instance.coffee
24
+ match: (new)\s+(\w+(?:\.\w*)?)
25
+ name: meta.class.instance.constructor
26
+ - begin: "'''"
27
+ beginCaptures:
28
+ "0":
29
+ name: punctuation.definition.string.begin.coffee
30
+ end: "'''"
31
+ endCaptures:
32
+ "0":
33
+ name: punctuation.definition.string.end.coffee
34
+ name: string.quoted.heredoc.coffee
35
+ - begin: "\"\"\""
36
+ beginCaptures:
37
+ "0":
38
+ name: punctuation.definition.string.begin.coffee
39
+ end: "\"\"\""
40
+ endCaptures:
41
+ "0":
42
+ name: punctuation.definition.string.end.coffee
43
+ name: string.quoted.double.heredoc.coffee
44
+ patterns:
45
+ - match: \\.
46
+ name: constant.character.escape.coffee
47
+ - include: "#interpolated_coffee"
48
+ - begin: "`"
49
+ beginCaptures:
50
+ "0":
51
+ name: punctuation.definition.string.begin.coffee
52
+ end: "`"
53
+ endCaptures:
54
+ "0":
55
+ name: punctuation.definition.string.end.coffee
56
+ name: string.quoted.script.coffee
57
+ patterns:
58
+ - match: \\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)
59
+ name: constant.character.escape.coffee
60
+ - begin: "###(?!#)"
61
+ captures:
62
+ "0":
63
+ name: punctuation.definition.comment.coffee
64
+ end: "###[ \\t]*\\n"
65
+ name: comment.block.coffee
66
+ - captures:
67
+ "1":
68
+ name: punctuation.definition.comment.coffee
69
+ match: (#).*$\n?
70
+ name: comment.line.coffee
71
+ - begin: /{3}
72
+ end: /{3}[imgy]{0,4}
73
+ name: string.regexp.coffee
74
+ patterns:
75
+ - include: "#interpolated_coffee"
76
+ - include: "#embedded_comment"
77
+ - match: /(?![\s/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])
78
+ name: string.regexp.coffee
79
+ - match: \b(?<!\.)(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|(?<=for)\s+own)(?!\s*:)\b
80
+ name: keyword.control.coffee
81
+ - match: and=|or=|!|%|&|\^|\*|\/|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\?|\||\|\||\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^=|\b(instanceof|new|delete|typeof|and|or|is|isnt|not)\b
82
+ name: keyword.operator.coffee
83
+ - captures:
84
+ "1":
85
+ name: variable.assignment.coffee
86
+ "4":
87
+ name: punctuation.separator.key-value
88
+ "5":
89
+ name: keyword.operator.coffee
90
+ match: ([a-zA-Z\$_](\w|\$|\.)*\s*(?!\::)((:)|(=))(?!(\s*\(.*\))?\s*((=|-)>)))
91
+ name: variable.assignment.coffee
92
+ - begin: (?<=\s|^)([\[\{])(?=.*?[\]\}]\s+[:=])
93
+ beginCaptures:
94
+ "0":
95
+ name: keyword.operator.coffee
96
+ end: ([\]\}]\s*[:=])
97
+ endCaptures:
98
+ "0":
99
+ name: keyword.operator.coffee
100
+ name: meta.variable.assignment.destructured.coffee
101
+ patterns:
102
+ - include: "#variable_name"
103
+ - include: "#instance_variable"
104
+ - include: "#single_quoted_string"
105
+ - include: "#double_quoted_string"
106
+ - include: "#numeric"
107
+ - captures:
108
+ "2":
109
+ name: entity.name.function.coffee
110
+ match: (\s*)(?=[a-zA-Z\$_])([a-zA-Z\$_](\w|\$|:|\.)*\s*(?=[:=](\s*\(.*\))?\s*((=|-)>)))
111
+ name: meta.function.coffee
112
+ - match: (=|-)>
113
+ name: storage.type.function.coffee
114
+ - match: \b(?<!\.)(true|on|yes)(?!\s*[:=])\b
115
+ name: constant.language.boolean.true.coffee
116
+ - match: \b(?<!\.)(false|off|no)(?!\s*[:=])\b
117
+ name: constant.language.boolean.false.coffee
118
+ - match: \b(?<!\.)null(?!\s*[:=])\b
119
+ name: constant.language.null.coffee
120
+ - match: \b(?<!\.)(super|this|extends)(?!\s*[:=])\b
121
+ name: variable.language.coffee
122
+ - captures:
123
+ "1":
124
+ name: storage.type.class.coffee
125
+ "2":
126
+ name: entity.name.type.class.coffee
127
+ "3":
128
+ name: entity.other.inherited-class.coffee
129
+ "4":
130
+ name: keyword.control.inheritance.coffee
131
+ match: (class\b)\s+([a-zA-Z\$_]\w+)?(\s+(extends)\s+[a-zA-Z\$_]\w*)?
132
+ name: meta.class.coffee
133
+ - match: \b(debugger|\\)\b
134
+ name: keyword.other.coffee
135
+ - match: \b(Infinity|NaN|undefined)\b
136
+ name: constant.language.coffee
137
+ - match: \;
138
+ name: punctuation.terminator.statement.coffee
139
+ - match: ",[ |\t]*"
140
+ name: meta.delimiter.object.comma.coffee
141
+ - match: \.
142
+ name: meta.delimiter.method.period.coffee
143
+ - match: \{|\}
144
+ name: meta.brace.curly.coffee
145
+ - match: \(|\)
146
+ name: meta.brace.round.coffee
147
+ - match: \[|\]\s*
148
+ name: meta.brace.square.coffee
149
+ - include: "#instance_variable"
150
+ - include: "#single_quoted_string"
151
+ - include: "#double_quoted_string"
152
+ - include: "#numeric"
153
+ repository:
154
+ double_quoted_string:
155
+ patterns:
156
+ - begin: "\""
157
+ beginCaptures:
158
+ "0":
159
+ name: punctuation.definition.string.begin.coffee
160
+ end: "\""
161
+ endCaptures:
162
+ "0":
163
+ name: punctuation.definition.string.end.coffee
164
+ name: string.quoted.double.coffee
165
+ patterns:
166
+ - match: \\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)
167
+ name: constant.character.escape.coffee
168
+ - include: "#interpolated_coffee"
169
+ embedded_comment:
170
+ patterns:
171
+ - captures:
172
+ "1":
173
+ name: punctuation.definition.comment.coffee
174
+ match: (#).*$\n?
175
+ name: comment.line.coffee
176
+ instance_variable:
177
+ patterns:
178
+ - match: (@)([a-zA-Z_\$]\w*)?
179
+ name: variable.other.readwrite.instance.coffee
180
+ interpolated_coffee:
181
+ patterns:
182
+ - begin: \#\{
183
+ captures:
184
+ "0":
185
+ name: punctuation.section.embedded.coffee
186
+ end: \}
187
+ name: source.coffee.embedded.source
188
+ patterns:
189
+ - include: $self
190
+ numeric:
191
+ patterns:
192
+ - match: (?<!\$)\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?(e[+\-]?[0-9]+)?))\b
193
+ name: constant.numeric.coffee
194
+ single_quoted_string:
195
+ patterns:
196
+ - begin: "'"
197
+ beginCaptures:
198
+ "0":
199
+ name: punctuation.definition.string.begin.coffee
200
+ end: "'"
201
+ endCaptures:
202
+ "0":
203
+ name: punctuation.definition.string.end.coffee
204
+ name: string.quoted.single.coffee
205
+ patterns:
206
+ - match: \\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)
207
+ name: constant.character.escape.coffee
208
+ variable_name:
209
+ patterns:
210
+ - captures:
211
+ "1":
212
+ name: variable.assignment.coffee
213
+ match: ([a-zA-Z\$_]\w*(\.\w+)*)
214
+ name: variable.assignment.coffee
215
+ scopeName: source.coffee
216
+ uuid: 5B520980-A7D5-4E10-8582-1A4C889A8DE5
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: Context Free
3
+ fileTypes:
4
+ - cfdg
5
+ - context free
6
+ scopeName: source.context-free
7
+ repository:
8
+ rule-directive:
9
+ endCaptures:
10
+ "1":
11
+ name: punctuation.section.rule.end.cfdg
12
+ begin: \b(rule)\s++([a-zA-Z_][a-zA-Z_\.\d]*+)(\s++(((\d++)?(\.))?\d++))?
13
+ beginCaptures:
14
+ "7":
15
+ name: punctuation.separator.integer-float.cfdg
16
+ "1":
17
+ name: keyword.control.rule.cfdg
18
+ "2":
19
+ name: entity.name.function.rule.definition.cfdg
20
+ "4":
21
+ name: constant.numeric.cfdg
22
+ end: (\})
23
+ patterns:
24
+ - include: "#rule"
25
+ - include: "#comment"
26
+ color-adjustment-block:
27
+ patterns:
28
+ - begin: (\{)
29
+ beginCaptures:
30
+ "1":
31
+ name: punctuation.section.unordered-block.begin.cfdg
32
+ end: (?=\})
33
+ patterns:
34
+ - include: "#color-adjustment"
35
+ - include: "#number"
36
+ - include: "#comment"
37
+ - begin: (\[)
38
+ beginCaptures:
39
+ "1":
40
+ name: punctuation.section.ordered-block.begin.cfdg
41
+ end: (?=\])
42
+ patterns:
43
+ - include: "#color-adjustment"
44
+ - include: "#number"
45
+ - include: "#comment"
46
+ color-adjustment:
47
+ name: constant.language.color-adjustment.cfdg
48
+ match: \||\b(h(ue)?|sat(uration)?|b(rightness)?|a(lpha)?)\b
49
+ number:
50
+ name: constant.numeric.cfdg
51
+ captures:
52
+ "1":
53
+ name: keyword.operator.sign.cfdg
54
+ "4":
55
+ name: punctuation.separator.integer-float.cfdg
56
+ match: (\+|\-)?((\d++)?(\.))?\d++
57
+ shape-adjustment-block:
58
+ patterns:
59
+ - begin: (\{)
60
+ beginCaptures:
61
+ "1":
62
+ name: punctuation.section.unordered-block.begin.cfdg
63
+ end: (?=\})
64
+ patterns:
65
+ - include: "#color-adjustment"
66
+ - include: "#geometry-adjustment"
67
+ - include: "#number"
68
+ - include: "#comment"
69
+ - begin: (\[)
70
+ beginCaptures:
71
+ "1":
72
+ name: punctuation.section.ordered-block.begin.cfdg
73
+ end: (?=\])
74
+ patterns:
75
+ - include: "#color-adjustment"
76
+ - include: "#geometry-adjustment"
77
+ - include: "#number"
78
+ - include: "#comment"
79
+ startshape-directive:
80
+ captures:
81
+ "1":
82
+ name: keyword.control.startshape.cfdg
83
+ "2":
84
+ name: entity.name.function.rule.cfdg
85
+ match: \b(startshape)\s++([a-zA-Z_][a-zA-Z_\.\d]*+)
86
+ background-directive:
87
+ endCaptures:
88
+ "1":
89
+ name: punctuation.section.unordered-block.end.cfdg
90
+ "2":
91
+ name: punctuation.section.ordered-block.end.cfdg
92
+ begin: \b(background)
93
+ beginCaptures:
94
+ "1":
95
+ name: keyword.control.background.cfdg
96
+ end: (\})|(\])
97
+ patterns:
98
+ - include: "#color-adjustment-block"
99
+ - include: "#comment"
100
+ shape-replacement:
101
+ endCaptures:
102
+ "1":
103
+ name: punctuation.section.unordered-block.end.cfdg
104
+ "2":
105
+ name: punctuation.section.ordered-block.end.cfdg
106
+ begin: ([a-zA-Z_][a-zA-Z_\.\d]*+)
107
+ beginCaptures:
108
+ "1":
109
+ name: entity.name.function.rule.cfdg
110
+ end: (\})|(\])
111
+ patterns:
112
+ - include: "#shape-adjustment-block"
113
+ - include: "#comment"
114
+ loop:
115
+ endCaptures:
116
+ "1":
117
+ name: punctuation.section.unordered-block.end.cfdg
118
+ "2":
119
+ name: punctuation.section.ordered-block.end.cfdg
120
+ begin: (\d++)\s*+(\*)
121
+ beginCaptures:
122
+ "1":
123
+ name: constant.numeric.cfdg
124
+ "2":
125
+ name: keyword.operator.loop.cfdg
126
+ end: (\})|(\])
127
+ patterns:
128
+ - include: "#shape-adjustment-block"
129
+ - include: "#comment"
130
+ geometry-adjustment:
131
+ name: constant.language.geometry-adjustment.cfdg
132
+ match: \b(x|y|z|s(ize)?|r(ot(ate)?)?|f(lip)?|skew)\b
133
+ comment:
134
+ patterns:
135
+ - name: comment.line.cfdg
136
+ begin: (//|#)
137
+ beginCaptures:
138
+ "1":
139
+ name: punctuation.definition.comment.cfdg
140
+ end: $\n?
141
+ - name: comment.block.cfdg
142
+ endCaptures:
143
+ "1":
144
+ name: punctuation.definition.comment.end.cfdg
145
+ begin: (/\*)
146
+ beginCaptures:
147
+ "1":
148
+ name: punctuation.definition.comment.begin.cfdg
149
+ end: (\*/)
150
+ rule:
151
+ begin: (\{)
152
+ beginCaptures:
153
+ "1":
154
+ name: punctuation.section.rule.begin.cfdg
155
+ end: (?=\})
156
+ patterns:
157
+ - include: "#loop"
158
+ - include: "#shape-replacement"
159
+ - include: "#comment"
160
+ include-directive:
161
+ captures:
162
+ "1":
163
+ name: keyword.control.include.cfdg
164
+ "2":
165
+ name: string.unquoted.file-name.cfdg
166
+ match: \b(include)\s++(\S++)
167
+ uuid: 8D0EE5A2-FB60-40F8-8D0F-1E1FFB506462
168
+ foldingStartMarker: "[\\{\\[]\\s*$"
169
+ patterns:
170
+ - include: "#comment"
171
+ - include: "#startshape-directive"
172
+ - include: "#include-directive"
173
+ - include: "#background-directive"
174
+ - include: "#rule-directive"
175
+ foldingStopMarker: ^\s*[\}\]]
176
+ keyEquivalent: ^~C