pygments.rb 0.6.3 → 1.0.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 (606) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/Rakefile +2 -1
  5. data/cache-lexers.rb +1 -1
  6. data/circle.yml +7 -0
  7. data/lib/pygments/lexer.rb +3 -3
  8. data/lib/pygments/popen.rb +67 -30
  9. data/lib/pygments/version.rb +1 -1
  10. data/pygments.rb.gemspec +2 -1
  11. data/test/test_pygments.rb +16 -16
  12. data/vendor/pygments-main/AUTHORS +54 -8
  13. data/vendor/pygments-main/CHANGES +247 -25
  14. data/vendor/pygments-main/LICENSE +1 -1
  15. data/vendor/pygments-main/Makefile +15 -6
  16. data/vendor/pygments-main/README.rst +39 -0
  17. data/vendor/pygments-main/REVISION +1 -1
  18. data/vendor/pygments-main/TODO +0 -3
  19. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  20. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  21. data/vendor/pygments-main/doc/conf.py +3 -11
  22. data/vendor/pygments-main/doc/docs/api.rst +15 -0
  23. data/vendor/pygments-main/doc/docs/cmdline.rst +6 -2
  24. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +4 -3
  25. data/vendor/pygments-main/doc/docs/integrate.rst +11 -15
  26. data/vendor/pygments-main/doc/docs/java.rst +7 -7
  27. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +258 -171
  28. data/vendor/pygments-main/doc/docs/lexers.rst +2 -2
  29. data/vendor/pygments-main/doc/docs/styles.rst +58 -0
  30. data/vendor/pygments-main/doc/docs/tokens.rst +22 -2
  31. data/vendor/pygments-main/doc/docs/unicode.rst +15 -7
  32. data/vendor/pygments-main/doc/faq.rst +17 -21
  33. data/vendor/pygments-main/doc/index.rst +12 -11
  34. data/vendor/pygments-main/doc/languages.rst +10 -7
  35. data/vendor/pygments-main/external/autopygmentize +9 -6
  36. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +70 -52
  37. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  38. data/vendor/pygments-main/external/moin-parser.py +1 -1
  39. data/vendor/pygments-main/external/rst-directive.py +1 -1
  40. data/vendor/pygments-main/pygmentize +2 -1
  41. data/vendor/pygments-main/pygments/__init__.py +14 -15
  42. data/vendor/pygments-main/pygments/cmdline.py +188 -113
  43. data/vendor/pygments-main/pygments/console.py +13 -13
  44. data/vendor/pygments-main/pygments/filter.py +7 -7
  45. data/vendor/pygments-main/pygments/filters/__init__.py +24 -32
  46. data/vendor/pygments-main/pygments/formatter.py +5 -5
  47. data/vendor/pygments-main/pygments/formatters/__init__.py +92 -44
  48. data/vendor/pygments-main/pygments/formatters/_mapping.py +51 -69
  49. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  50. data/vendor/pygments-main/pygments/formatters/html.py +63 -51
  51. data/vendor/pygments-main/pygments/formatters/img.py +25 -22
  52. data/vendor/pygments-main/pygments/formatters/irc.py +182 -0
  53. data/vendor/pygments-main/pygments/formatters/latex.py +34 -22
  54. data/vendor/pygments-main/pygments/formatters/other.py +5 -7
  55. data/vendor/pygments-main/pygments/formatters/rtf.py +28 -31
  56. data/vendor/pygments-main/pygments/formatters/svg.py +1 -2
  57. data/vendor/pygments-main/pygments/formatters/terminal.py +29 -45
  58. data/vendor/pygments-main/pygments/formatters/terminal256.py +118 -31
  59. data/vendor/pygments-main/pygments/lexer.py +120 -34
  60. data/vendor/pygments-main/pygments/lexers/__init__.py +85 -53
  61. data/vendor/pygments-main/pygments/lexers/{_asybuiltins.py → _asy_builtins.py} +7 -7
  62. data/vendor/pygments-main/pygments/lexers/{_clbuiltins.py → _cl_builtins.py} +17 -17
  63. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +72 -0
  64. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1346 -0
  65. data/vendor/pygments-main/pygments/lexers/{_lassobuiltins.py → _lasso_builtins.py} +4699 -4561
  66. data/vendor/pygments-main/pygments/lexers/{_luabuiltins.py → _lua_builtins.py} +91 -51
  67. data/vendor/pygments-main/pygments/lexers/_mapping.py +342 -242
  68. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1172 -0
  69. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +2547 -0
  70. data/vendor/pygments-main/pygments/lexers/{_phpbuiltins.py → _php_builtins.py} +350 -353
  71. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +600 -212
  72. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3084 -30
  73. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1163 -0
  74. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +91 -13
  75. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +419 -0
  76. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1004 -0
  77. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1939 -0
  78. data/vendor/pygments-main/pygments/lexers/actionscript.py +240 -0
  79. data/vendor/pygments-main/pygments/lexers/agile.py +14 -2542
  80. data/vendor/pygments-main/pygments/lexers/algebra.py +221 -0
  81. data/vendor/pygments-main/pygments/lexers/ambient.py +76 -0
  82. data/vendor/pygments-main/pygments/lexers/ampl.py +87 -0
  83. data/vendor/pygments-main/pygments/lexers/apl.py +101 -0
  84. data/vendor/pygments-main/pygments/lexers/archetype.py +318 -0
  85. data/vendor/pygments-main/pygments/lexers/asm.py +276 -81
  86. data/vendor/pygments-main/pygments/lexers/automation.py +374 -0
  87. data/vendor/pygments-main/pygments/lexers/basic.py +500 -0
  88. data/vendor/pygments-main/pygments/lexers/bibtex.py +156 -0
  89. data/vendor/pygments-main/pygments/lexers/business.py +594 -0
  90. data/vendor/pygments-main/pygments/lexers/c_cpp.py +252 -0
  91. data/vendor/pygments-main/pygments/lexers/c_like.py +541 -0
  92. data/vendor/pygments-main/pygments/lexers/capnproto.py +79 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +101 -0
  94. data/vendor/pygments-main/pygments/lexers/clean.py +288 -0
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +24 -5182
  96. data/vendor/pygments-main/pygments/lexers/configs.py +833 -0
  97. data/vendor/pygments-main/pygments/lexers/console.py +114 -0
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +384 -0
  99. data/vendor/pygments-main/pygments/lexers/csound.py +366 -0
  100. data/vendor/pygments-main/pygments/lexers/css.py +689 -0
  101. data/vendor/pygments-main/pygments/lexers/d.py +251 -0
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +6 -6
  103. data/vendor/pygments-main/pygments/lexers/data.py +555 -0
  104. data/vendor/pygments-main/pygments/lexers/diff.py +165 -0
  105. data/vendor/pygments-main/pygments/lexers/dotnet.py +96 -88
  106. data/vendor/pygments-main/pygments/lexers/dsls.py +878 -0
  107. data/vendor/pygments-main/pygments/lexers/dylan.py +289 -0
  108. data/vendor/pygments-main/pygments/lexers/ecl.py +125 -0
  109. data/vendor/pygments-main/pygments/lexers/eiffel.py +65 -0
  110. data/vendor/pygments-main/pygments/lexers/elm.py +121 -0
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +533 -0
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +275 -0
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +68 -0
  114. data/vendor/pygments-main/pygments/lexers/factor.py +344 -0
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +250 -0
  116. data/vendor/pygments-main/pygments/lexers/felix.py +273 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +177 -0
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +205 -0
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/functional.py +11 -3661
  121. data/vendor/pygments-main/pygments/lexers/go.py +101 -0
  122. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +213 -0
  123. data/vendor/pygments-main/pygments/lexers/graph.py +7 -8
  124. data/vendor/pygments-main/pygments/lexers/graphics.py +553 -0
  125. data/vendor/pygments-main/pygments/lexers/haskell.py +840 -0
  126. data/vendor/pygments-main/pygments/lexers/haxe.py +936 -0
  127. data/vendor/pygments-main/pygments/lexers/hdl.py +172 -145
  128. data/vendor/pygments-main/pygments/lexers/hexdump.py +97 -0
  129. data/vendor/pygments-main/pygments/lexers/html.py +602 -0
  130. data/vendor/pygments-main/pygments/lexers/idl.py +270 -0
  131. data/vendor/pygments-main/pygments/lexers/igor.py +288 -0
  132. data/vendor/pygments-main/pygments/lexers/inferno.py +3 -3
  133. data/vendor/pygments-main/pygments/lexers/installers.py +322 -0
  134. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1343 -0
  135. data/vendor/pygments-main/pygments/lexers/iolang.py +63 -0
  136. data/vendor/pygments-main/pygments/lexers/j.py +146 -0
  137. data/vendor/pygments-main/pygments/lexers/javascript.py +1506 -0
  138. data/vendor/pygments-main/pygments/lexers/julia.py +333 -0
  139. data/vendor/pygments-main/pygments/lexers/jvm.py +232 -186
  140. data/vendor/pygments-main/pygments/lexers/lisp.py +2621 -0
  141. data/vendor/pygments-main/pygments/lexers/make.py +202 -0
  142. data/vendor/pygments-main/pygments/lexers/markup.py +595 -0
  143. data/vendor/pygments-main/pygments/lexers/math.py +11 -2276
  144. data/vendor/pygments-main/pygments/lexers/matlab.py +663 -0
  145. data/vendor/pygments-main/pygments/lexers/ml.py +769 -0
  146. data/vendor/pygments-main/pygments/lexers/modeling.py +358 -0
  147. data/vendor/pygments-main/pygments/lexers/modula2.py +1561 -0
  148. data/vendor/pygments-main/pygments/lexers/monte.py +203 -0
  149. data/vendor/pygments-main/pygments/lexers/ncl.py +1053 -0
  150. data/vendor/pygments-main/pygments/lexers/nimrod.py +159 -0
  151. data/vendor/pygments-main/pygments/lexers/nit.py +64 -0
  152. data/vendor/pygments-main/pygments/lexers/nix.py +136 -0
  153. data/vendor/pygments-main/pygments/lexers/oberon.py +105 -0
  154. data/vendor/pygments-main/pygments/lexers/objective.py +504 -0
  155. data/vendor/pygments-main/pygments/lexers/ooc.py +85 -0
  156. data/vendor/pygments-main/pygments/lexers/other.py +30 -4481
  157. data/vendor/pygments-main/pygments/lexers/parasail.py +79 -0
  158. data/vendor/pygments-main/pygments/lexers/parsers.py +171 -114
  159. data/vendor/pygments-main/pygments/lexers/pascal.py +644 -0
  160. data/vendor/pygments-main/pygments/lexers/pawn.py +199 -0
  161. data/vendor/pygments-main/pygments/lexers/perl.py +616 -0
  162. data/vendor/pygments-main/pygments/lexers/php.py +267 -0
  163. data/vendor/pygments-main/pygments/lexers/praat.py +294 -0
  164. data/vendor/pygments-main/pygments/lexers/prolog.py +306 -0
  165. data/vendor/pygments-main/pygments/lexers/python.py +938 -0
  166. data/vendor/pygments-main/pygments/lexers/qvt.py +152 -0
  167. data/vendor/pygments-main/pygments/lexers/r.py +453 -0
  168. data/vendor/pygments-main/pygments/lexers/rdf.py +195 -24
  169. data/vendor/pygments-main/pygments/lexers/rebol.py +431 -0
  170. data/vendor/pygments-main/pygments/lexers/resource.py +85 -0
  171. data/vendor/pygments-main/pygments/lexers/rnc.py +67 -0
  172. data/vendor/pygments-main/pygments/lexers/roboconf.py +82 -0
  173. data/vendor/pygments-main/pygments/lexers/{_robotframeworklexer.py → robotframework.py} +20 -18
  174. data/vendor/pygments-main/pygments/lexers/ruby.py +519 -0
  175. data/vendor/pygments-main/pygments/lexers/rust.py +209 -0
  176. data/vendor/pygments-main/pygments/lexers/sas.py +228 -0
  177. data/vendor/pygments-main/pygments/lexers/scripting.py +1222 -0
  178. data/vendor/pygments-main/pygments/lexers/shell.py +478 -115
  179. data/vendor/pygments-main/pygments/lexers/smalltalk.py +195 -0
  180. data/vendor/pygments-main/pygments/lexers/smv.py +75 -0
  181. data/vendor/pygments-main/pygments/lexers/snobol.py +83 -0
  182. data/vendor/pygments-main/pygments/lexers/special.py +6 -2
  183. data/vendor/pygments-main/pygments/lexers/sql.py +209 -120
  184. data/vendor/pygments-main/pygments/lexers/stata.py +106 -0
  185. data/vendor/pygments-main/pygments/lexers/supercollider.py +90 -0
  186. data/vendor/pygments-main/pygments/lexers/tcl.py +145 -0
  187. data/vendor/pygments-main/pygments/lexers/templates.py +282 -90
  188. data/vendor/pygments-main/pygments/lexers/testing.py +207 -0
  189. data/vendor/pygments-main/pygments/lexers/text.py +15 -2045
  190. data/vendor/pygments-main/pygments/lexers/textedit.py +169 -0
  191. data/vendor/pygments-main/pygments/lexers/textfmts.py +297 -0
  192. data/vendor/pygments-main/pygments/lexers/theorem.py +458 -0
  193. data/vendor/pygments-main/pygments/lexers/trafficscript.py +54 -0
  194. data/vendor/pygments-main/pygments/lexers/typoscript.py +225 -0
  195. data/vendor/pygments-main/pygments/lexers/urbi.py +133 -0
  196. data/vendor/pygments-main/pygments/lexers/varnish.py +190 -0
  197. data/vendor/pygments-main/pygments/lexers/verification.py +111 -0
  198. data/vendor/pygments-main/pygments/lexers/web.py +13 -4499
  199. data/vendor/pygments-main/pygments/lexers/webmisc.py +979 -0
  200. data/vendor/pygments-main/pygments/lexers/whiley.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/x10.py +69 -0
  202. data/vendor/pygments-main/pygments/modeline.py +5 -2
  203. data/vendor/pygments-main/pygments/plugin.py +1 -1
  204. data/vendor/pygments-main/pygments/regexopt.py +92 -0
  205. data/vendor/pygments-main/pygments/scanner.py +3 -2
  206. data/vendor/pygments-main/pygments/sphinxext.py +11 -6
  207. data/vendor/pygments-main/pygments/style.py +41 -4
  208. data/vendor/pygments-main/pygments/styles/__init__.py +5 -1
  209. data/vendor/pygments-main/pygments/styles/algol.py +63 -0
  210. data/vendor/pygments-main/pygments/styles/algol_nu.py +63 -0
  211. data/vendor/pygments-main/pygments/styles/arduino.py +98 -0
  212. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  213. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  215. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  216. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  221. data/vendor/pygments-main/pygments/styles/lovelace.py +97 -0
  222. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  223. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  224. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  225. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  226. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  227. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  228. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  229. data/vendor/pygments-main/pygments/styles/perldoc.py +2 -2
  230. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/sas.py +41 -0
  232. data/vendor/pygments-main/pygments/styles/stata.py +37 -0
  233. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  234. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  238. data/vendor/pygments-main/pygments/token.py +31 -16
  239. data/vendor/pygments-main/pygments/unistring.py +141 -65
  240. data/vendor/pygments-main/pygments/util.py +129 -33
  241. data/vendor/pygments-main/requirements.txt +5 -0
  242. data/vendor/pygments-main/scripts/check_sources.py +25 -40
  243. data/vendor/pygments-main/scripts/debug_lexer.py +246 -0
  244. data/vendor/pygments-main/scripts/find_error.py +1 -0
  245. data/vendor/pygments-main/scripts/get_vimkw.py +35 -4
  246. data/vendor/pygments-main/setup.cfg +3 -0
  247. data/vendor/pygments-main/setup.py +17 -30
  248. data/vendor/pygments-main/tox.ini +7 -0
  249. metadata +159 -387
  250. data/vendor/pygments-main/ez_setup.py +0 -382
  251. data/vendor/pygments-main/pygments/lexers/_cocoabuiltins.py +0 -73
  252. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +0 -562
  253. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +0 -1077
  254. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +0 -13
  255. data/vendor/pygments-main/pygments/lexers/qbasic.py +0 -157
  256. data/vendor/pygments-main/scripts/find_codetags.py +0 -213
  257. data/vendor/pygments-main/scripts/find_error.py +0 -173
  258. data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +0 -37
  259. data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +0 -869
  260. data/vendor/pygments-main/tests/dtds/HTML4.dcl +0 -88
  261. data/vendor/pygments-main/tests/dtds/HTML4.dtd +0 -1092
  262. data/vendor/pygments-main/tests/dtds/HTML4.soc +0 -9
  263. data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +0 -195
  264. data/vendor/pygments-main/tests/dtds/HTMLspec.ent +0 -77
  265. data/vendor/pygments-main/tests/dtds/HTMLsym.ent +0 -241
  266. data/vendor/pygments-main/tests/examplefiles/99_bottles_of_beer.chpl +0 -118
  267. data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +0 -209
  268. data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +0 -102
  269. data/vendor/pygments-main/tests/examplefiles/BOM.js +0 -1
  270. data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +0 -611
  271. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +0 -1973
  272. data/vendor/pygments-main/tests/examplefiles/Constants.mo +0 -158
  273. data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +0 -411
  274. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +0 -578
  275. data/vendor/pygments-main/tests/examplefiles/Error.pmod +0 -38
  276. data/vendor/pygments-main/tests/examplefiles/Errors.scala +0 -18
  277. data/vendor/pygments-main/tests/examplefiles/FakeFile.pike +0 -360
  278. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +0 -66
  279. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +0 -104
  280. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +0 -671
  281. data/vendor/pygments-main/tests/examplefiles/Intro.java +0 -1660
  282. data/vendor/pygments-main/tests/examplefiles/Makefile +0 -1131
  283. data/vendor/pygments-main/tests/examplefiles/Object.st +0 -4394
  284. data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +0 -584
  285. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +0 -23
  286. data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +0 -378
  287. data/vendor/pygments-main/tests/examplefiles/Sorting.mod +0 -470
  288. data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +0 -382
  289. data/vendor/pygments-main/tests/examplefiles/addressbook.proto +0 -30
  290. data/vendor/pygments-main/tests/examplefiles/antlr_ANTLRv3.g +0 -608
  291. data/vendor/pygments-main/tests/examplefiles/antlr_throws +0 -1
  292. data/vendor/pygments-main/tests/examplefiles/apache2.conf +0 -393
  293. data/vendor/pygments-main/tests/examplefiles/as3_test.as +0 -143
  294. data/vendor/pygments-main/tests/examplefiles/as3_test2.as +0 -46
  295. data/vendor/pygments-main/tests/examplefiles/as3_test3.as +0 -3
  296. data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +0 -27
  297. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +0 -25
  298. data/vendor/pygments-main/tests/examplefiles/badcase.java +0 -2
  299. data/vendor/pygments-main/tests/examplefiles/batchfile.bat +0 -49
  300. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +0 -308
  301. data/vendor/pygments-main/tests/examplefiles/boot-9.scm +0 -1557
  302. data/vendor/pygments-main/tests/examplefiles/ca65_example +0 -284
  303. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +0 -9
  304. data/vendor/pygments-main/tests/examplefiles/cells.ps +0 -515
  305. data/vendor/pygments-main/tests/examplefiles/ceval.c +0 -2604
  306. data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +0 -13
  307. data/vendor/pygments-main/tests/examplefiles/classes.dylan +0 -125
  308. data/vendor/pygments-main/tests/examplefiles/clojure-weird-keywords.clj +0 -5
  309. data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +0 -10
  310. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +0 -447
  311. data/vendor/pygments-main/tests/examplefiles/core.cljs +0 -52
  312. data/vendor/pygments-main/tests/examplefiles/database.pytb +0 -20
  313. data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +0 -2461
  314. data/vendor/pygments-main/tests/examplefiles/demo.ahk +0 -181
  315. data/vendor/pygments-main/tests/examplefiles/demo.cfm +0 -50
  316. data/vendor/pygments-main/tests/examplefiles/demo.hbs +0 -12
  317. data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +0 -68
  318. data/vendor/pygments-main/tests/examplefiles/dwarf.cw +0 -17
  319. data/vendor/pygments-main/tests/examplefiles/ember.handlebars +0 -33
  320. data/vendor/pygments-main/tests/examplefiles/erl_session +0 -10
  321. data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +0 -1
  322. data/vendor/pygments-main/tests/examplefiles/evil_regex.js +0 -48
  323. data/vendor/pygments-main/tests/examplefiles/example.Rd +0 -78
  324. data/vendor/pygments-main/tests/examplefiles/example.als +0 -217
  325. data/vendor/pygments-main/tests/examplefiles/example.bug +0 -54
  326. data/vendor/pygments-main/tests/examplefiles/example.c +0 -2080
  327. data/vendor/pygments-main/tests/examplefiles/example.ceylon +0 -52
  328. data/vendor/pygments-main/tests/examplefiles/example.chai +0 -6
  329. data/vendor/pygments-main/tests/examplefiles/example.clay +0 -33
  330. data/vendor/pygments-main/tests/examplefiles/example.cls +0 -15
  331. data/vendor/pygments-main/tests/examplefiles/example.cob +0 -3556
  332. data/vendor/pygments-main/tests/examplefiles/example.coffee +0 -27
  333. data/vendor/pygments-main/tests/examplefiles/example.cpp +0 -2363
  334. data/vendor/pygments-main/tests/examplefiles/example.e +0 -124
  335. data/vendor/pygments-main/tests/examplefiles/example.f90 +0 -8
  336. data/vendor/pygments-main/tests/examplefiles/example.feature +0 -16
  337. data/vendor/pygments-main/tests/examplefiles/example.gd +0 -23
  338. data/vendor/pygments-main/tests/examplefiles/example.gi +0 -64
  339. data/vendor/pygments-main/tests/examplefiles/example.groovy +0 -2
  340. data/vendor/pygments-main/tests/examplefiles/example.gs +0 -106
  341. data/vendor/pygments-main/tests/examplefiles/example.gst +0 -7
  342. data/vendor/pygments-main/tests/examplefiles/example.hs +0 -27
  343. data/vendor/pygments-main/tests/examplefiles/example.hx +0 -185
  344. data/vendor/pygments-main/tests/examplefiles/example.i6t +0 -32
  345. data/vendor/pygments-main/tests/examplefiles/example.i7x +0 -45
  346. data/vendor/pygments-main/tests/examplefiles/example.inf +0 -374
  347. data/vendor/pygments-main/tests/examplefiles/example.j +0 -564
  348. data/vendor/pygments-main/tests/examplefiles/example.jag +0 -48
  349. data/vendor/pygments-main/tests/examplefiles/example.java +0 -16
  350. data/vendor/pygments-main/tests/examplefiles/example.kal +0 -75
  351. data/vendor/pygments-main/tests/examplefiles/example.kt +0 -47
  352. data/vendor/pygments-main/tests/examplefiles/example.lagda +0 -19
  353. data/vendor/pygments-main/tests/examplefiles/example.liquid +0 -42
  354. data/vendor/pygments-main/tests/examplefiles/example.lua +0 -250
  355. data/vendor/pygments-main/tests/examplefiles/example.ma +0 -8
  356. data/vendor/pygments-main/tests/examplefiles/example.monkey +0 -152
  357. data/vendor/pygments-main/tests/examplefiles/example.moo +0 -26
  358. data/vendor/pygments-main/tests/examplefiles/example.moon +0 -629
  359. data/vendor/pygments-main/tests/examplefiles/example.mq4 +0 -187
  360. data/vendor/pygments-main/tests/examplefiles/example.mqh +0 -123
  361. data/vendor/pygments-main/tests/examplefiles/example.msc +0 -43
  362. data/vendor/pygments-main/tests/examplefiles/example.ni +0 -57
  363. data/vendor/pygments-main/tests/examplefiles/example.nim +0 -1010
  364. data/vendor/pygments-main/tests/examplefiles/example.nix +0 -80
  365. data/vendor/pygments-main/tests/examplefiles/example.ns2 +0 -69
  366. data/vendor/pygments-main/tests/examplefiles/example.pas +0 -2708
  367. data/vendor/pygments-main/tests/examplefiles/example.pp +0 -8
  368. data/vendor/pygments-main/tests/examplefiles/example.prg +0 -161
  369. data/vendor/pygments-main/tests/examplefiles/example.rb +0 -1852
  370. data/vendor/pygments-main/tests/examplefiles/example.red +0 -257
  371. data/vendor/pygments-main/tests/examplefiles/example.reds +0 -150
  372. data/vendor/pygments-main/tests/examplefiles/example.reg +0 -19
  373. data/vendor/pygments-main/tests/examplefiles/example.rexx +0 -50
  374. data/vendor/pygments-main/tests/examplefiles/example.rhtml +0 -561
  375. data/vendor/pygments-main/tests/examplefiles/example.rkt +0 -743
  376. data/vendor/pygments-main/tests/examplefiles/example.rpf +0 -4
  377. data/vendor/pygments-main/tests/examplefiles/example.sh +0 -22
  378. data/vendor/pygments-main/tests/examplefiles/example.sh-session +0 -19
  379. data/vendor/pygments-main/tests/examplefiles/example.shell-session +0 -45
  380. data/vendor/pygments-main/tests/examplefiles/example.slim +0 -31
  381. data/vendor/pygments-main/tests/examplefiles/example.sls +0 -51
  382. data/vendor/pygments-main/tests/examplefiles/example.sml +0 -156
  383. data/vendor/pygments-main/tests/examplefiles/example.snobol +0 -15
  384. data/vendor/pygments-main/tests/examplefiles/example.stan +0 -110
  385. data/vendor/pygments-main/tests/examplefiles/example.tea +0 -34
  386. data/vendor/pygments-main/tests/examplefiles/example.todotxt +0 -9
  387. data/vendor/pygments-main/tests/examplefiles/example.ts +0 -28
  388. data/vendor/pygments-main/tests/examplefiles/example.u +0 -548
  389. data/vendor/pygments-main/tests/examplefiles/example.weechatlog +0 -9
  390. data/vendor/pygments-main/tests/examplefiles/example.xhtml +0 -376
  391. data/vendor/pygments-main/tests/examplefiles/example.xtend +0 -34
  392. data/vendor/pygments-main/tests/examplefiles/example.yaml +0 -302
  393. data/vendor/pygments-main/tests/examplefiles/example2.aspx +0 -29
  394. data/vendor/pygments-main/tests/examplefiles/example2.msc +0 -79
  395. data/vendor/pygments-main/tests/examplefiles/exampleScript.cfc +0 -241
  396. data/vendor/pygments-main/tests/examplefiles/exampleTag.cfc +0 -18
  397. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +0 -205
  398. data/vendor/pygments-main/tests/examplefiles/example_file.fy +0 -128
  399. data/vendor/pygments-main/tests/examplefiles/firefox.mak +0 -586
  400. data/vendor/pygments-main/tests/examplefiles/flipflop.sv +0 -19
  401. data/vendor/pygments-main/tests/examplefiles/foo.sce +0 -6
  402. data/vendor/pygments-main/tests/examplefiles/format.ml +0 -1213
  403. data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +0 -77
  404. data/vendor/pygments-main/tests/examplefiles/function.mu +0 -1
  405. data/vendor/pygments-main/tests/examplefiles/functional.rst +0 -1472
  406. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +0 -133
  407. data/vendor/pygments-main/tests/examplefiles/genclass.clj +0 -510
  408. data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +0 -193
  409. data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +0 -33
  410. data/vendor/pygments-main/tests/examplefiles/glsl.frag +0 -7
  411. data/vendor/pygments-main/tests/examplefiles/glsl.vert +0 -13
  412. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +0 -22
  413. data/vendor/pygments-main/tests/examplefiles/hash_syntax.rb +0 -5
  414. data/vendor/pygments-main/tests/examplefiles/hello.at +0 -6
  415. data/vendor/pygments-main/tests/examplefiles/hello.golo +0 -5
  416. data/vendor/pygments-main/tests/examplefiles/hello.lsl +0 -12
  417. data/vendor/pygments-main/tests/examplefiles/hello.smali +0 -40
  418. data/vendor/pygments-main/tests/examplefiles/hello.sp +0 -9
  419. data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +0 -1
  420. data/vendor/pygments-main/tests/examplefiles/http_request_example +0 -15
  421. data/vendor/pygments-main/tests/examplefiles/http_response_example +0 -29
  422. data/vendor/pygments-main/tests/examplefiles/hybris_File.hy +0 -174
  423. data/vendor/pygments-main/tests/examplefiles/idl_sample.pro +0 -73
  424. data/vendor/pygments-main/tests/examplefiles/iex_example +0 -23
  425. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +0 -71
  426. data/vendor/pygments-main/tests/examplefiles/intro.ik +0 -24
  427. data/vendor/pygments-main/tests/examplefiles/ints.php +0 -10
  428. data/vendor/pygments-main/tests/examplefiles/intsyn.fun +0 -675
  429. data/vendor/pygments-main/tests/examplefiles/intsyn.sig +0 -286
  430. data/vendor/pygments-main/tests/examplefiles/irb_heredoc +0 -8
  431. data/vendor/pygments-main/tests/examplefiles/irc.lsp +0 -214
  432. data/vendor/pygments-main/tests/examplefiles/java.properties +0 -16
  433. data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +0 -28
  434. data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +0 -45
  435. data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +0 -713
  436. data/vendor/pygments-main/tests/examplefiles/json.lasso +0 -301
  437. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +0 -213
  438. data/vendor/pygments-main/tests/examplefiles/language.hy +0 -165
  439. data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +0 -13
  440. data/vendor/pygments-main/tests/examplefiles/limbo.b +0 -456
  441. data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +0 -47
  442. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +0 -43
  443. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +0 -28
  444. data/vendor/pygments-main/tests/examplefiles/ltmain.sh +0 -2849
  445. data/vendor/pygments-main/tests/examplefiles/main.cmake +0 -44
  446. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +0 -679
  447. data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +0 -3
  448. data/vendor/pygments-main/tests/examplefiles/matlab_sample +0 -30
  449. data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +0 -37
  450. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +0 -455
  451. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +0 -112
  452. data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +0 -4
  453. data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +0 -340
  454. data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +0 -38
  455. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +0 -95
  456. data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +0 -96
  457. data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +0 -30
  458. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +0 -87
  459. data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +0 -118
  460. data/vendor/pygments-main/tests/examplefiles/numbers.c +0 -12
  461. data/vendor/pygments-main/tests/examplefiles/objc_example.m +0 -179
  462. data/vendor/pygments-main/tests/examplefiles/openedge_example +0 -34
  463. data/vendor/pygments-main/tests/examplefiles/pawn_example +0 -25
  464. data/vendor/pygments-main/tests/examplefiles/perl_misc +0 -62
  465. data/vendor/pygments-main/tests/examplefiles/perl_perl5db +0 -998
  466. data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +0 -120
  467. data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +0 -856
  468. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +0 -163
  469. data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +0 -567
  470. data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +0 -1223
  471. data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +0 -47
  472. data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +0 -10
  473. data/vendor/pygments-main/tests/examplefiles/psql_session.txt +0 -122
  474. data/vendor/pygments-main/tests/examplefiles/py3_test.txt +0 -2
  475. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +0 -4
  476. data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +0 -14
  477. data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +0 -2
  478. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +0 -4
  479. data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +0 -234
  480. data/vendor/pygments-main/tests/examplefiles/qbasic_example +0 -2
  481. data/vendor/pygments-main/tests/examplefiles/qsort.prolog +0 -13
  482. data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +0 -38
  483. data/vendor/pygments-main/tests/examplefiles/r6rs-comments.scm +0 -23
  484. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +0 -280
  485. data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +0 -2
  486. data/vendor/pygments-main/tests/examplefiles/regex.js +0 -22
  487. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +0 -427
  488. data/vendor/pygments-main/tests/examplefiles/robotframework_test.txt +0 -39
  489. data/vendor/pygments-main/tests/examplefiles/rql-queries.rql +0 -34
  490. data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +0 -11
  491. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +0 -233
  492. data/vendor/pygments-main/tests/examplefiles/scilab.sci +0 -30
  493. data/vendor/pygments-main/tests/examplefiles/scope.cirru +0 -43
  494. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +0 -9
  495. data/vendor/pygments-main/tests/examplefiles/sibling.prolog +0 -19
  496. data/vendor/pygments-main/tests/examplefiles/simple.md +0 -747
  497. data/vendor/pygments-main/tests/examplefiles/smarty_example.html +0 -209
  498. data/vendor/pygments-main/tests/examplefiles/source.lgt +0 -343
  499. data/vendor/pygments-main/tests/examplefiles/sources.list +0 -62
  500. data/vendor/pygments-main/tests/examplefiles/sparql.rq +0 -23
  501. data/vendor/pygments-main/tests/examplefiles/sphere.pov +0 -18
  502. data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +0 -27
  503. data/vendor/pygments-main/tests/examplefiles/squid.conf +0 -30
  504. data/vendor/pygments-main/tests/examplefiles/string.jl +0 -1031
  505. data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +0 -21
  506. data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +0 -3
  507. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +0 -1329
  508. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +0 -225
  509. data/vendor/pygments-main/tests/examplefiles/test.R +0 -185
  510. data/vendor/pygments-main/tests/examplefiles/test.adb +0 -211
  511. data/vendor/pygments-main/tests/examplefiles/test.agda +0 -102
  512. data/vendor/pygments-main/tests/examplefiles/test.apl +0 -26
  513. data/vendor/pygments-main/tests/examplefiles/test.asy +0 -131
  514. data/vendor/pygments-main/tests/examplefiles/test.awk +0 -121
  515. data/vendor/pygments-main/tests/examplefiles/test.bb +0 -95
  516. data/vendor/pygments-main/tests/examplefiles/test.bmx +0 -145
  517. data/vendor/pygments-main/tests/examplefiles/test.boo +0 -39
  518. data/vendor/pygments-main/tests/examplefiles/test.bro +0 -250
  519. data/vendor/pygments-main/tests/examplefiles/test.cs +0 -374
  520. data/vendor/pygments-main/tests/examplefiles/test.css +0 -54
  521. data/vendor/pygments-main/tests/examplefiles/test.cu +0 -36
  522. data/vendor/pygments-main/tests/examplefiles/test.cyp +0 -123
  523. data/vendor/pygments-main/tests/examplefiles/test.d +0 -135
  524. data/vendor/pygments-main/tests/examplefiles/test.dart +0 -23
  525. data/vendor/pygments-main/tests/examplefiles/test.dtd +0 -89
  526. data/vendor/pygments-main/tests/examplefiles/test.ebnf +0 -31
  527. data/vendor/pygments-main/tests/examplefiles/test.ec +0 -605
  528. data/vendor/pygments-main/tests/examplefiles/test.ecl +0 -58
  529. data/vendor/pygments-main/tests/examplefiles/test.eh +0 -315
  530. data/vendor/pygments-main/tests/examplefiles/test.erl +0 -169
  531. data/vendor/pygments-main/tests/examplefiles/test.evoque +0 -33
  532. data/vendor/pygments-main/tests/examplefiles/test.fan +0 -818
  533. data/vendor/pygments-main/tests/examplefiles/test.flx +0 -57
  534. data/vendor/pygments-main/tests/examplefiles/test.gdc +0 -13
  535. data/vendor/pygments-main/tests/examplefiles/test.groovy +0 -97
  536. data/vendor/pygments-main/tests/examplefiles/test.html +0 -339
  537. data/vendor/pygments-main/tests/examplefiles/test.idr +0 -93
  538. data/vendor/pygments-main/tests/examplefiles/test.ini +0 -10
  539. data/vendor/pygments-main/tests/examplefiles/test.java +0 -653
  540. data/vendor/pygments-main/tests/examplefiles/test.jsp +0 -24
  541. data/vendor/pygments-main/tests/examplefiles/test.maql +0 -45
  542. data/vendor/pygments-main/tests/examplefiles/test.mask +0 -41
  543. data/vendor/pygments-main/tests/examplefiles/test.mod +0 -374
  544. data/vendor/pygments-main/tests/examplefiles/test.moo +0 -51
  545. data/vendor/pygments-main/tests/examplefiles/test.myt +0 -166
  546. data/vendor/pygments-main/tests/examplefiles/test.nim +0 -93
  547. data/vendor/pygments-main/tests/examplefiles/test.opa +0 -10
  548. data/vendor/pygments-main/tests/examplefiles/test.p6 +0 -252
  549. data/vendor/pygments-main/tests/examplefiles/test.pan +0 -54
  550. data/vendor/pygments-main/tests/examplefiles/test.pas +0 -743
  551. data/vendor/pygments-main/tests/examplefiles/test.php +0 -507
  552. data/vendor/pygments-main/tests/examplefiles/test.pig +0 -148
  553. data/vendor/pygments-main/tests/examplefiles/test.plot +0 -333
  554. data/vendor/pygments-main/tests/examplefiles/test.ps1 +0 -108
  555. data/vendor/pygments-main/tests/examplefiles/test.pwn +0 -253
  556. data/vendor/pygments-main/tests/examplefiles/test.pypylog +0 -1839
  557. data/vendor/pygments-main/tests/examplefiles/test.r3 +0 -114
  558. data/vendor/pygments-main/tests/examplefiles/test.rb +0 -177
  559. data/vendor/pygments-main/tests/examplefiles/test.rhtml +0 -43
  560. data/vendor/pygments-main/tests/examplefiles/test.rsl +0 -111
  561. data/vendor/pygments-main/tests/examplefiles/test.scaml +0 -8
  562. data/vendor/pygments-main/tests/examplefiles/test.ssp +0 -12
  563. data/vendor/pygments-main/tests/examplefiles/test.swift +0 -65
  564. data/vendor/pygments-main/tests/examplefiles/test.tcsh +0 -830
  565. data/vendor/pygments-main/tests/examplefiles/test.vb +0 -407
  566. data/vendor/pygments-main/tests/examplefiles/test.vhdl +0 -161
  567. data/vendor/pygments-main/tests/examplefiles/test.xqy +0 -138
  568. data/vendor/pygments-main/tests/examplefiles/test.xsl +0 -23
  569. data/vendor/pygments-main/tests/examplefiles/test.zep +0 -33
  570. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +0 -120
  571. data/vendor/pygments-main/tests/examplefiles/truncated.pytb +0 -15
  572. data/vendor/pygments-main/tests/examplefiles/type.lisp +0 -1218
  573. data/vendor/pygments-main/tests/examplefiles/underscore.coffee +0 -603
  574. data/vendor/pygments-main/tests/examplefiles/unicode.applescript +0 -5
  575. data/vendor/pygments-main/tests/examplefiles/unicode.go +0 -10
  576. data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +0 -11
  577. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +0 -37
  578. data/vendor/pygments-main/tests/examplefiles/vbnet_test.bas +0 -29
  579. data/vendor/pygments-main/tests/examplefiles/vctreestatus_hg +0 -4
  580. data/vendor/pygments-main/tests/examplefiles/vimrc +0 -21
  581. data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +0 -3
  582. data/vendor/pygments-main/tests/examplefiles/while.pov +0 -13
  583. data/vendor/pygments-main/tests/examplefiles/wiki.factor +0 -384
  584. data/vendor/pygments-main/tests/examplefiles/xml_example +0 -1897
  585. data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +0 -798
  586. data/vendor/pygments-main/tests/run.py +0 -44
  587. data/vendor/pygments-main/tests/string_asserts.py +0 -22
  588. data/vendor/pygments-main/tests/support.py +0 -15
  589. data/vendor/pygments-main/tests/support/tags +0 -36
  590. data/vendor/pygments-main/tests/test_basic_api.py +0 -309
  591. data/vendor/pygments-main/tests/test_cfm.py +0 -46
  592. data/vendor/pygments-main/tests/test_clexer.py +0 -236
  593. data/vendor/pygments-main/tests/test_cmdline.py +0 -106
  594. data/vendor/pygments-main/tests/test_examplefiles.py +0 -110
  595. data/vendor/pygments-main/tests/test_html_formatter.py +0 -180
  596. data/vendor/pygments-main/tests/test_latex_formatter.py +0 -57
  597. data/vendor/pygments-main/tests/test_lexers_other.py +0 -68
  598. data/vendor/pygments-main/tests/test_objectiveclexer.py +0 -81
  599. data/vendor/pygments-main/tests/test_perllexer.py +0 -137
  600. data/vendor/pygments-main/tests/test_qbasiclexer.py +0 -43
  601. data/vendor/pygments-main/tests/test_regexlexer.py +0 -54
  602. data/vendor/pygments-main/tests/test_rtf_formatter.py +0 -109
  603. data/vendor/pygments-main/tests/test_string_asserts.py +0 -39
  604. data/vendor/pygments-main/tests/test_token.py +0 -46
  605. data/vendor/pygments-main/tests/test_using_api.py +0 -40
  606. data/vendor/pygments-main/tests/test_util.py +0 -135
@@ -0,0 +1,106 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.stata
4
+ ~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for Stata
7
+
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, include, words
13
+ from pygments.token import Comment, Keyword, Name, Number, \
14
+ String, Text, Operator
15
+
16
+ from pygments.lexers._stata_builtins import builtins_base, builtins_functions
17
+
18
+ __all__ = ['StataLexer']
19
+
20
+ class StataLexer(RegexLexer):
21
+ """
22
+ For `Stata <http://www.stata.com/>`_ do files.
23
+
24
+ .. versionadded:: 2.2
25
+ """
26
+ # Syntax based on
27
+ # - http://fmwww.bc.edu/RePEc/bocode/s/synlightlist.ado
28
+ # - http://github.com/isagalaev/highlight.js/blob/master/src/languages/stata.js
29
+ # - http://github.com/jpitblado/vim-stata/blob/master/syntax/stata.vim
30
+
31
+ name = 'Stata'
32
+ aliases = ['stata', 'do']
33
+ filenames = ['*.do', '*.ado']
34
+ mimetypes = ['text/x-stata', 'text/stata', 'application/x-stata']
35
+
36
+ tokens = {
37
+ 'root': [
38
+ include('comments'),
39
+ include('vars-strings'),
40
+ include('numbers'),
41
+ include('keywords'),
42
+ (r'.', Text),
43
+ ],
44
+ # Global and local macros; regular and special strings
45
+ 'vars-strings': [
46
+ (r'\$[a-zA-Z_0-9\{]', Name.Variable.Global, 'var_validglobal'),
47
+ (r'`[a-zA-Z_0-9]{0,31}\'', Name.Variable),
48
+ (r'"', String, 'string_dquote'),
49
+ (r'`"', String, 'string_mquote'),
50
+ ],
51
+ # For either string type, highlight macros as macros
52
+ 'string_dquote': [
53
+ (r'"', String, '#pop'),
54
+ (r'\\\\|\\"|\\\n', String.Escape),
55
+ (r'\$', Name.Variable.Global, 'var_validglobal'),
56
+ (r'`', Name.Variable, 'var_validlocal'),
57
+ (r'[^$\$`"\\]+', String),
58
+ (r'[$"\\]', String),
59
+ ],
60
+ 'string_mquote': [
61
+ (r'"\'', String, '#pop'),
62
+ (r'\\\\|\\"|\\\n', String.Escape),
63
+ (r'\$', Name.Variable.Global, 'var_validglobal'),
64
+ (r'`', Name.Variable, 'var_validlocal'),
65
+ (r'[^$\$`"\\]+', String),
66
+ (r'[$"\\]', String),
67
+ ],
68
+ 'var_validglobal': [
69
+ (r'\{?[a-zA-Z0-9_]{0,32}\}?', Name.Variable.Global, '#pop'),
70
+ ],
71
+ 'var_validlocal': [
72
+ (r'[a-zA-Z0-9_]{0,31}\'', Name.Variable, '#pop'),
73
+ ],
74
+ # * only OK at line start, // OK anywhere
75
+ 'comments': [
76
+ (r'^\s*\*.*$', Comment),
77
+ (r'//.*', Comment.Single),
78
+ (r'/\*.*?\*/', Comment.Multiline),
79
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline),
80
+ ],
81
+ # Built in functions and statements
82
+ 'keywords': [
83
+ (words(builtins_functions, prefix = r'\b', suffix = r'\('),
84
+ Name.Function),
85
+ (words(builtins_base, prefix = r'(^\s*|\s)', suffix = r'\b'),
86
+ Keyword),
87
+ ],
88
+ # http://www.stata.com/help.cgi?operators
89
+ 'operators': [
90
+ (r'-|==|<=|>=|<|>|&|!=', Operator),
91
+ (r'\*|\+|\^|/|!|~|==|~=', Operator)
92
+ ],
93
+ # Stata numbers
94
+ 'numbers': [
95
+ # decimal number
96
+ (r'\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[i]?\b',
97
+ Number),
98
+ ],
99
+ # Stata formats
100
+ 'format': [
101
+ (r'%-?\d{1,2}(\.\d{1,2})?[gfe]c?', Name.Variable),
102
+ (r'%(21x|16H|16L|8H|8L)', Name.Variable),
103
+ (r'%-?(tc|tC|td|tw|tm|tq|th|ty|tg).{0,32}', Name.Variable),
104
+ (r'%[-~]?\d{1,4}s', Name.Variable),
105
+ ]
106
+ }
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.supercollider
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for SuperCollider
7
+
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ import re
13
+
14
+ from pygments.lexer import RegexLexer, include, words, default
15
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
+ Number, Punctuation
17
+
18
+ __all__ = ['SuperColliderLexer']
19
+
20
+
21
+ class SuperColliderLexer(RegexLexer):
22
+ """
23
+ For `SuperCollider <http://supercollider.github.io/>`_ source code.
24
+
25
+ .. versionadded:: 2.1
26
+ """
27
+
28
+ name = 'SuperCollider'
29
+ aliases = ['sc', 'supercollider']
30
+ filenames = ['*.sc', '*.scd']
31
+ mimetypes = ['application/supercollider', 'text/supercollider', ]
32
+
33
+ flags = re.DOTALL | re.MULTILINE
34
+ tokens = {
35
+ 'commentsandwhitespace': [
36
+ (r'\s+', Text),
37
+ (r'<!--', Comment),
38
+ (r'//.*?\n', Comment.Single),
39
+ (r'/\*.*?\*/', Comment.Multiline)
40
+ ],
41
+ 'slashstartsregex': [
42
+ include('commentsandwhitespace'),
43
+ (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
44
+ r'([gim]+\b|\B)', String.Regex, '#pop'),
45
+ (r'(?=/)', Text, ('#pop', 'badregex')),
46
+ default('#pop'),
47
+ ],
48
+ 'badregex': [
49
+ (r'\n', Text, '#pop')
50
+ ],
51
+ 'root': [
52
+ (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
53
+ include('commentsandwhitespace'),
54
+ (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
55
+ r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
56
+ (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
57
+ (r'[})\].]', Punctuation),
58
+ (words((
59
+ 'for', 'in', 'while', 'do', 'break', 'return', 'continue',
60
+ 'switch', 'case', 'default', 'if', 'else', 'throw', 'try',
61
+ 'catch', 'finally', 'new', 'delete', 'typeof', 'instanceof',
62
+ 'void'), suffix=r'\b'),
63
+ Keyword, 'slashstartsregex'),
64
+ (words(('var', 'let', 'with', 'function', 'arg'), suffix=r'\b'),
65
+ Keyword.Declaration, 'slashstartsregex'),
66
+ (words((
67
+ '(abstract', 'boolean', 'byte', 'char', 'class', 'const',
68
+ 'debugger', 'double', 'enum', 'export', 'extends', 'final',
69
+ 'float', 'goto', 'implements', 'import', 'int', 'interface',
70
+ 'long', 'native', 'package', 'private', 'protected', 'public',
71
+ 'short', 'static', 'super', 'synchronized', 'throws',
72
+ 'transient', 'volatile'), suffix=r'\b'),
73
+ Keyword.Reserved),
74
+ (words(('true', 'false', 'nil', 'inf'), suffix=r'\b'), Keyword.Constant),
75
+ (words((
76
+ 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Number',
77
+ 'Object', 'Packages', 'RegExp', 'String',
78
+ 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'super',
79
+ 'thisFunctionDef', 'thisFunction', 'thisMethod', 'thisProcess',
80
+ 'thisThread', 'this'), suffix=r'\b'),
81
+ Name.Builtin),
82
+ (r'[$a-zA-Z_]\w*', Name.Other),
83
+ (r'\\?[$a-zA-Z_]\w*', String.Symbol),
84
+ (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
85
+ (r'0x[0-9a-fA-F]+', Number.Hex),
86
+ (r'[0-9]+', Number.Integer),
87
+ (r'"(\\\\|\\"|[^"])*"', String.Double),
88
+ (r"'(\\\\|\\'|[^'])*'", String.Single),
89
+ ]
90
+ }
@@ -0,0 +1,145 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.tcl
4
+ ~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for Tcl and related languages.
7
+
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, include, words
13
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
14
+ Number
15
+ from pygments.util import shebang_matches
16
+
17
+ __all__ = ['TclLexer']
18
+
19
+
20
+ class TclLexer(RegexLexer):
21
+ """
22
+ For Tcl source code.
23
+
24
+ .. versionadded:: 0.10
25
+ """
26
+
27
+ keyword_cmds_re = words((
28
+ 'after', 'apply', 'array', 'break', 'catch', 'continue', 'elseif', 'else', 'error',
29
+ 'eval', 'expr', 'for', 'foreach', 'global', 'if', 'namespace', 'proc', 'rename', 'return',
30
+ 'set', 'switch', 'then', 'trace', 'unset', 'update', 'uplevel', 'upvar', 'variable',
31
+ 'vwait', 'while'), prefix=r'\b', suffix=r'\b')
32
+
33
+ builtin_cmds_re = words((
34
+ 'append', 'bgerror', 'binary', 'cd', 'chan', 'clock', 'close', 'concat', 'dde', 'dict',
35
+ 'encoding', 'eof', 'exec', 'exit', 'fblocked', 'fconfigure', 'fcopy', 'file',
36
+ 'fileevent', 'flush', 'format', 'gets', 'glob', 'history', 'http', 'incr', 'info', 'interp',
37
+ 'join', 'lappend', 'lassign', 'lindex', 'linsert', 'list', 'llength', 'load', 'loadTk',
38
+ 'lrange', 'lrepeat', 'lreplace', 'lreverse', 'lsearch', 'lset', 'lsort', 'mathfunc',
39
+ 'mathop', 'memory', 'msgcat', 'open', 'package', 'pid', 'pkg::create', 'pkg_mkIndex',
40
+ 'platform', 'platform::shell', 'puts', 'pwd', 're_syntax', 'read', 'refchan',
41
+ 'regexp', 'registry', 'regsub', 'scan', 'seek', 'socket', 'source', 'split', 'string',
42
+ 'subst', 'tell', 'time', 'tm', 'unknown', 'unload'), prefix=r'\b', suffix=r'\b')
43
+
44
+ name = 'Tcl'
45
+ aliases = ['tcl']
46
+ filenames = ['*.tcl', '*.rvt']
47
+ mimetypes = ['text/x-tcl', 'text/x-script.tcl', 'application/x-tcl']
48
+
49
+ def _gen_command_rules(keyword_cmds_re, builtin_cmds_re, context=""):
50
+ return [
51
+ (keyword_cmds_re, Keyword, 'params' + context),
52
+ (builtin_cmds_re, Name.Builtin, 'params' + context),
53
+ (r'([\w.-]+)', Name.Variable, 'params' + context),
54
+ (r'#', Comment, 'comment'),
55
+ ]
56
+
57
+ tokens = {
58
+ 'root': [
59
+ include('command'),
60
+ include('basic'),
61
+ include('data'),
62
+ (r'\}', Keyword), # HACK: somehow we miscounted our braces
63
+ ],
64
+ 'command': _gen_command_rules(keyword_cmds_re, builtin_cmds_re),
65
+ 'command-in-brace': _gen_command_rules(keyword_cmds_re,
66
+ builtin_cmds_re,
67
+ "-in-brace"),
68
+ 'command-in-bracket': _gen_command_rules(keyword_cmds_re,
69
+ builtin_cmds_re,
70
+ "-in-bracket"),
71
+ 'command-in-paren': _gen_command_rules(keyword_cmds_re,
72
+ builtin_cmds_re,
73
+ "-in-paren"),
74
+ 'basic': [
75
+ (r'\(', Keyword, 'paren'),
76
+ (r'\[', Keyword, 'bracket'),
77
+ (r'\{', Keyword, 'brace'),
78
+ (r'"', String.Double, 'string'),
79
+ (r'(eq|ne|in|ni)\b', Operator.Word),
80
+ (r'!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]', Operator),
81
+ ],
82
+ 'data': [
83
+ (r'\s+', Text),
84
+ (r'0x[a-fA-F0-9]+', Number.Hex),
85
+ (r'0[0-7]+', Number.Oct),
86
+ (r'\d+\.\d+', Number.Float),
87
+ (r'\d+', Number.Integer),
88
+ (r'\$([\w.:-]+)', Name.Variable),
89
+ (r'([\w.:-]+)', Text),
90
+ ],
91
+ 'params': [
92
+ (r';', Keyword, '#pop'),
93
+ (r'\n', Text, '#pop'),
94
+ (r'(else|elseif|then)\b', Keyword),
95
+ include('basic'),
96
+ include('data'),
97
+ ],
98
+ 'params-in-brace': [
99
+ (r'\}', Keyword, ('#pop', '#pop')),
100
+ include('params')
101
+ ],
102
+ 'params-in-paren': [
103
+ (r'\)', Keyword, ('#pop', '#pop')),
104
+ include('params')
105
+ ],
106
+ 'params-in-bracket': [
107
+ (r'\]', Keyword, ('#pop', '#pop')),
108
+ include('params')
109
+ ],
110
+ 'string': [
111
+ (r'\[', String.Double, 'string-square'),
112
+ (r'(?s)(\\\\|\\[0-7]+|\\.|[^"\\])', String.Double),
113
+ (r'"', String.Double, '#pop')
114
+ ],
115
+ 'string-square': [
116
+ (r'\[', String.Double, 'string-square'),
117
+ (r'(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])', String.Double),
118
+ (r'\]', String.Double, '#pop')
119
+ ],
120
+ 'brace': [
121
+ (r'\}', Keyword, '#pop'),
122
+ include('command-in-brace'),
123
+ include('basic'),
124
+ include('data'),
125
+ ],
126
+ 'paren': [
127
+ (r'\)', Keyword, '#pop'),
128
+ include('command-in-paren'),
129
+ include('basic'),
130
+ include('data'),
131
+ ],
132
+ 'bracket': [
133
+ (r'\]', Keyword, '#pop'),
134
+ include('command-in-bracket'),
135
+ include('basic'),
136
+ include('data'),
137
+ ],
138
+ 'comment': [
139
+ (r'.*[^\\]\n', Comment, '#pop'),
140
+ (r'.*\\\n', Comment),
141
+ ],
142
+ }
143
+
144
+ def analyse_text(text):
145
+ return shebang_matches(text, r'(tcl)')
@@ -5,23 +5,24 @@
5
5
 
6
6
  Lexers for various template engines' markup.
7
7
 
8
- :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  import re
13
13
 
14
- from pygments.lexers.web import \
15
- PhpLexer, HtmlLexer, XmlLexer, JavascriptLexer, CssLexer, LassoLexer
16
- from pygments.lexers.agile import PythonLexer, PerlLexer
17
- from pygments.lexers.compiled import JavaLexer
18
- from pygments.lexers.jvm import TeaLangLexer
19
- from pygments.lexers.text import YamlLexer
14
+ from pygments.lexers.html import HtmlLexer, XmlLexer
15
+ from pygments.lexers.javascript import JavascriptLexer, LassoLexer
16
+ from pygments.lexers.css import CssLexer
17
+ from pygments.lexers.php import PhpLexer
18
+ from pygments.lexers.python import PythonLexer
19
+ from pygments.lexers.perl import PerlLexer
20
+ from pygments.lexers.jvm import JavaLexer, TeaLangLexer
21
+ from pygments.lexers.data import YamlLexer
20
22
  from pygments.lexer import Lexer, DelegatingLexer, RegexLexer, bygroups, \
21
- include, using, this, default, combined
22
- from pygments.token import Error, Punctuation, \
23
- Text, Comment, Operator, Keyword, Name, String, Number, Other, Token, \
24
- Whitespace
23
+ include, using, this, default, combined
24
+ from pygments.token import Error, Punctuation, Whitespace, \
25
+ Text, Comment, Operator, Keyword, Name, String, Number, Other, Token
25
26
  from pygments.util import html_doctype_matches, looks_like_xml
26
27
 
27
28
  __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
@@ -42,7 +43,8 @@ __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
42
43
  'VelocityHtmlLexer', 'VelocityXmlLexer', 'SspLexer',
43
44
  'TeaTemplateLexer', 'LassoHtmlLexer', 'LassoXmlLexer',
44
45
  'LassoCssLexer', 'LassoJavascriptLexer', 'HandlebarsLexer',
45
- 'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer']
46
+ 'HandlebarsHtmlLexer', 'YamlJinjaLexer', 'LiquidLexer',
47
+ 'TwigLexer', 'TwigHtmlLexer', 'Angular2Lexer', 'Angular2HtmlLexer']
46
48
 
47
49
 
48
50
  class ErbLexer(Lexer):
@@ -63,7 +65,7 @@ class ErbLexer(Lexer):
63
65
  _block_re = re.compile(r'(<%%|%%>|<%=|<%#|<%-|<%|-%>|%>|^%[^%].*?$)', re.M)
64
66
 
65
67
  def __init__(self, **options):
66
- from pygments.lexers.agile import RubyLexer
68
+ from pygments.lexers.ruby import RubyLexer
67
69
  self.ruby_lexer = RubyLexer(**options)
68
70
  Lexer.__init__(self, **options)
69
71
 
@@ -106,7 +108,7 @@ class ErbLexer(Lexer):
106
108
  data = tokens.pop()
107
109
  r_idx = 0
108
110
  for r_idx, r_token, r_value in \
109
- self.ruby_lexer.get_tokens_unprocessed(data):
111
+ self.ruby_lexer.get_tokens_unprocessed(data):
110
112
  yield r_idx + idx, r_token, r_value
111
113
  idx += len(data)
112
114
  state = 2
@@ -119,7 +121,7 @@ class ErbLexer(Lexer):
119
121
  yield idx, Comment.Preproc, tag[0]
120
122
  r_idx = 0
121
123
  for r_idx, r_token, r_value in \
122
- self.ruby_lexer.get_tokens_unprocessed(tag[1:]):
124
+ self.ruby_lexer.get_tokens_unprocessed(tag[1:]):
123
125
  yield idx + 1 + r_idx, r_token, r_value
124
126
  idx += len(tag)
125
127
  state = 0
@@ -169,10 +171,11 @@ class SmartyLexer(RegexLexer):
169
171
  ],
170
172
  'smarty': [
171
173
  (r'\s+', Text),
174
+ (r'\{', Comment.Preproc, '#push'),
172
175
  (r'\}', Comment.Preproc, '#pop'),
173
176
  (r'#[a-zA-Z_]\w*#', Name.Variable),
174
177
  (r'\$[a-zA-Z_]\w*(\.\w+)*', Name.Variable),
175
- (r'[~!%^&*()+=|\[\]:;,.<>/?{}@-]', Operator),
178
+ (r'[~!%^&*()+=|\[\]:;,.<>/?@-]', Operator),
176
179
  (r'(true|false|null)\b', Keyword.Constant),
177
180
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
178
181
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -205,7 +208,7 @@ class VelocityLexer(RegexLexer):
205
208
 
206
209
  name = 'Velocity'
207
210
  aliases = ['velocity']
208
- filenames = ['*.vm','*.fhtml']
211
+ filenames = ['*.vm', '*.fhtml']
209
212
 
210
213
  flags = re.MULTILINE | re.DOTALL
211
214
 
@@ -234,7 +237,7 @@ class VelocityLexer(RegexLexer):
234
237
  default('#pop')
235
238
  ],
236
239
  'directiveparams': [
237
- (r'(&&|\|\||==?|!=?|[-<>+*%&\|\^/])|\b(eq|ne|gt|lt|ge|le|not|in)\b',
240
+ (r'(&&|\|\||==?|!=?|[-<>+*%&|^/])|\b(eq|ne|gt|lt|ge|le|not|in)\b',
238
241
  Operator),
239
242
  (r'\[', Operator, 'rangeoperator'),
240
243
  (r'\b' + identifier + r'\b', Name.Function),
@@ -248,7 +251,7 @@ class VelocityLexer(RegexLexer):
248
251
  'funcparams': [
249
252
  (r'\$\{?', Punctuation, 'variable'),
250
253
  (r'\s+', Text),
251
- (r',', Punctuation),
254
+ (r'[,:]', Punctuation),
252
255
  (r'"(\\\\|\\"|[^"])*"', String.Double),
253
256
  (r"'(\\\\|\\'|[^'])*'", String.Single),
254
257
  (r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -256,6 +259,8 @@ class VelocityLexer(RegexLexer):
256
259
  (r'(true|false|null)\b', Keyword.Constant),
257
260
  (r'\(', Punctuation, '#push'),
258
261
  (r'\)', Punctuation, '#pop'),
262
+ (r'\{', Punctuation, '#push'),
263
+ (r'\}', Punctuation, '#pop'),
259
264
  (r'\[', Punctuation, '#push'),
260
265
  (r'\]', Punctuation, '#pop'),
261
266
  ]
@@ -277,31 +282,31 @@ class VelocityLexer(RegexLexer):
277
282
 
278
283
  class VelocityHtmlLexer(DelegatingLexer):
279
284
  """
280
- Subclass of the `VelocityLexer` that highlights unlexer data
285
+ Subclass of the `VelocityLexer` that highlights unlexed data
281
286
  with the `HtmlLexer`.
282
287
 
283
288
  """
284
289
 
285
290
  name = 'HTML+Velocity'
286
291
  aliases = ['html+velocity']
287
- alias_filenames = ['*.html','*.fhtml']
292
+ alias_filenames = ['*.html', '*.fhtml']
288
293
  mimetypes = ['text/html+velocity']
289
294
 
290
295
  def __init__(self, **options):
291
296
  super(VelocityHtmlLexer, self).__init__(HtmlLexer, VelocityLexer,
292
- **options)
297
+ **options)
293
298
 
294
299
 
295
300
  class VelocityXmlLexer(DelegatingLexer):
296
301
  """
297
- Subclass of the `VelocityLexer` that highlights unlexer data
302
+ Subclass of the `VelocityLexer` that highlights unlexed data
298
303
  with the `XmlLexer`.
299
304
 
300
305
  """
301
306
 
302
307
  name = 'XML+Velocity'
303
308
  aliases = ['xml+velocity']
304
- alias_filenames = ['*.xml','*.vm']
309
+ alias_filenames = ['*.xml', '*.vm']
305
310
  mimetypes = ['application/xml+velocity']
306
311
 
307
312
  def __init__(self, **options):
@@ -311,7 +316,7 @@ class VelocityXmlLexer(DelegatingLexer):
311
316
  def analyse_text(text):
312
317
  rv = VelocityLexer.analyse_text(text) - 0.01
313
318
  if looks_like_xml(text):
314
- rv += 0.5
319
+ rv += 0.4
315
320
  return rv
316
321
 
317
322
 
@@ -366,7 +371,7 @@ class DjangoLexer(RegexLexer):
366
371
  r'with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b',
367
372
  Keyword),
368
373
  (r'(loop|block|super|forloop)\b', Name.Builtin),
369
- (r'[a-zA-Z][\w-]*', Name.Variable),
374
+ (r'[a-zA-Z_][\w-]*', Name.Variable),
370
375
  (r'\.\w+', Name.Variable),
371
376
  (r':?"(\\\\|\\"|[^"])*"', String.Double),
372
377
  (r":?'(\\\\|\\'|[^'])*'", String.Single),
@@ -448,7 +453,7 @@ class MyghtyLexer(RegexLexer):
448
453
 
449
454
  class MyghtyHtmlLexer(DelegatingLexer):
450
455
  """
451
- Subclass of the `MyghtyLexer` that highlights unlexer data
456
+ Subclass of the `MyghtyLexer` that highlights unlexed data
452
457
  with the `HtmlLexer`.
453
458
 
454
459
  .. versionadded:: 0.6
@@ -465,7 +470,7 @@ class MyghtyHtmlLexer(DelegatingLexer):
465
470
 
466
471
  class MyghtyXmlLexer(DelegatingLexer):
467
472
  """
468
- Subclass of the `MyghtyLexer` that highlights unlexer data
473
+ Subclass of the `MyghtyLexer` that highlights unlexed data
469
474
  with the `XmlLexer`.
470
475
 
471
476
  .. versionadded:: 0.6
@@ -482,7 +487,7 @@ class MyghtyXmlLexer(DelegatingLexer):
482
487
 
483
488
  class MyghtyJavascriptLexer(DelegatingLexer):
484
489
  """
485
- Subclass of the `MyghtyLexer` that highlights unlexer data
490
+ Subclass of the `MyghtyLexer` that highlights unlexed data
486
491
  with the `JavascriptLexer`.
487
492
 
488
493
  .. versionadded:: 0.6
@@ -501,7 +506,7 @@ class MyghtyJavascriptLexer(DelegatingLexer):
501
506
 
502
507
  class MyghtyCssLexer(DelegatingLexer):
503
508
  """
504
- Subclass of the `MyghtyLexer` that highlights unlexer data
509
+ Subclass of the `MyghtyLexer` that highlights unlexed data
505
510
  with the `CssLexer`.
506
511
 
507
512
  .. versionadded:: 0.6
@@ -565,10 +570,12 @@ class MasonLexer(RegexLexer):
565
570
  }
566
571
 
567
572
  def analyse_text(text):
568
- rv = 0.0
569
- if re.search('<&', text) is not None:
570
- rv = 1.0
571
- return rv
573
+ result = 0.0
574
+ if re.search(r'</%(class|doc|init)%>', text) is not None:
575
+ result = 1.0
576
+ elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
577
+ result = 0.11
578
+ return result
572
579
 
573
580
 
574
581
  class MakoLexer(RegexLexer):
@@ -595,11 +602,11 @@ class MakoLexer(RegexLexer):
595
602
  (r'(\s*)(##[^\n]*)(\n|\Z)',
596
603
  bygroups(Text, Comment.Preproc, Other)),
597
604
  (r'(?s)<%doc>.*?</%doc>', Comment.Preproc),
598
- (r'(<%)([\w\.\:]+)',
605
+ (r'(<%)([\w.:]+)',
599
606
  bygroups(Comment.Preproc, Name.Builtin), 'tag'),
600
- (r'(</%)([\w\.\:]+)(>)',
607
+ (r'(</%)([\w.:]+)(>)',
601
608
  bygroups(Comment.Preproc, Name.Builtin, Comment.Preproc)),
602
- (r'<%(?=([\w\.\:]+))', Comment.Preproc, 'ondeftags'),
609
+ (r'<%(?=([\w.:]+))', Comment.Preproc, 'ondeftags'),
603
610
  (r'(<%(?:!?))(.*?)(%>)(?s)',
604
611
  bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
605
612
  (r'(\$\{)(.*?)(\})',
@@ -653,11 +660,12 @@ class MakoHtmlLexer(DelegatingLexer):
653
660
 
654
661
  def __init__(self, **options):
655
662
  super(MakoHtmlLexer, self).__init__(HtmlLexer, MakoLexer,
656
- **options)
663
+ **options)
664
+
657
665
 
658
666
  class MakoXmlLexer(DelegatingLexer):
659
667
  """
660
- Subclass of the `MakoLexer` that highlights unlexer data
668
+ Subclass of the `MakoLexer` that highlights unlexed data
661
669
  with the `XmlLexer`.
662
670
 
663
671
  .. versionadded:: 0.7
@@ -669,11 +677,12 @@ class MakoXmlLexer(DelegatingLexer):
669
677
 
670
678
  def __init__(self, **options):
671
679
  super(MakoXmlLexer, self).__init__(XmlLexer, MakoLexer,
672
- **options)
680
+ **options)
681
+
673
682
 
674
683
  class MakoJavascriptLexer(DelegatingLexer):
675
684
  """
676
- Subclass of the `MakoLexer` that highlights unlexer data
685
+ Subclass of the `MakoLexer` that highlights unlexed data
677
686
  with the `JavascriptLexer`.
678
687
 
679
688
  .. versionadded:: 0.7
@@ -687,11 +696,12 @@ class MakoJavascriptLexer(DelegatingLexer):
687
696
 
688
697
  def __init__(self, **options):
689
698
  super(MakoJavascriptLexer, self).__init__(JavascriptLexer,
690
- MakoLexer, **options)
699
+ MakoLexer, **options)
700
+
691
701
 
692
702
  class MakoCssLexer(DelegatingLexer):
693
703
  """
694
- Subclass of the `MakoLexer` that highlights unlexer data
704
+ Subclass of the `MakoLexer` that highlights unlexed data
695
705
  with the `CssLexer`.
696
706
 
697
707
  .. versionadded:: 0.7
@@ -703,7 +713,7 @@ class MakoCssLexer(DelegatingLexer):
703
713
 
704
714
  def __init__(self, **options):
705
715
  super(MakoCssLexer, self).__init__(CssLexer, MakoLexer,
706
- **options)
716
+ **options)
707
717
 
708
718
 
709
719
  # Genshi and Cheetah lexers courtesy of Matt Good.
@@ -747,7 +757,7 @@ class CheetahLexer(RegexLexer):
747
757
  (bygroups(Comment.Preproc, using(CheetahPythonLexer),
748
758
  Comment.Preproc))),
749
759
  # TODO support other Python syntax like $foo['bar']
750
- (r'(\$)([a-zA-Z_][\w\.]*\w)',
760
+ (r'(\$)([a-zA-Z_][\w.]*\w)',
751
761
  bygroups(Comment.Preproc, using(CheetahPythonLexer))),
752
762
  (r'(\$\{!?)(.*?)(\})(?s)',
753
763
  bygroups(Comment.Preproc, using(CheetahPythonLexer),
@@ -767,7 +777,7 @@ class CheetahLexer(RegexLexer):
767
777
 
768
778
  class CheetahHtmlLexer(DelegatingLexer):
769
779
  """
770
- Subclass of the `CheetahLexer` that highlights unlexer data
780
+ Subclass of the `CheetahLexer` that highlights unlexed data
771
781
  with the `HtmlLexer`.
772
782
  """
773
783
 
@@ -782,7 +792,7 @@ class CheetahHtmlLexer(DelegatingLexer):
782
792
 
783
793
  class CheetahXmlLexer(DelegatingLexer):
784
794
  """
785
- Subclass of the `CheetahLexer` that highlights unlexer data
795
+ Subclass of the `CheetahLexer` that highlights unlexed data
786
796
  with the `XmlLexer`.
787
797
  """
788
798
 
@@ -797,7 +807,7 @@ class CheetahXmlLexer(DelegatingLexer):
797
807
 
798
808
  class CheetahJavascriptLexer(DelegatingLexer):
799
809
  """
800
- Subclass of the `CheetahLexer` that highlights unlexer data
810
+ Subclass of the `CheetahLexer` that highlights unlexed data
801
811
  with the `JavascriptLexer`.
802
812
  """
803
813
 
@@ -828,11 +838,11 @@ class GenshiTextLexer(RegexLexer):
828
838
 
829
839
  tokens = {
830
840
  'root': [
831
- (r'[^#\$\s]+', Other),
841
+ (r'[^#$\s]+', Other),
832
842
  (r'^(\s*)(##.*)$', bygroups(Text, Comment)),
833
843
  (r'^(\s*)(#)', bygroups(Text, Comment.Preproc), 'directive'),
834
844
  include('variable'),
835
- (r'[#\$\s]', Other),
845
+ (r'[#$\s]', Other),
836
846
  ],
837
847
  'directive': [
838
848
  (r'\n', Text, '#pop'),
@@ -845,7 +855,7 @@ class GenshiTextLexer(RegexLexer):
845
855
  'variable': [
846
856
  (r'(?<!\$)(\$\{)(.+?)(\})',
847
857
  bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
848
- (r'(?<!\$)(\$)([a-zA-Z_][\w\.]*)',
858
+ (r'(?<!\$)(\$)([a-zA-Z_][\w.]*)',
849
859
  Name.Variable),
850
860
  ]
851
861
  }
@@ -861,15 +871,15 @@ class GenshiMarkupLexer(RegexLexer):
861
871
 
862
872
  tokens = {
863
873
  'root': [
864
- (r'[^<\$]+', Other),
874
+ (r'[^<$]+', Other),
865
875
  (r'(<\?python)(.*?)(\?>)',
866
876
  bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
867
877
  # yield style and script blocks as Other
868
878
  (r'<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>', Other),
869
879
  (r'<\s*py:[a-zA-Z0-9]+', Name.Tag, 'pytag'),
870
- (r'<\s*[a-zA-Z0-9:]+', Name.Tag, 'tag'),
880
+ (r'<\s*[a-zA-Z0-9:.]+', Name.Tag, 'tag'),
871
881
  include('variable'),
872
- (r'[<\$]', Other),
882
+ (r'[<$]', Other),
873
883
  ],
874
884
  'pytag': [
875
885
  (r'\s+', Text),
@@ -1116,7 +1126,7 @@ class HtmlPhpLexer(DelegatingLexer):
1116
1126
 
1117
1127
  class XmlPhpLexer(DelegatingLexer):
1118
1128
  """
1119
- Subclass of `PhpLexer` that higlights unhandled data with the `XmlLexer`.
1129
+ Subclass of `PhpLexer` that highlights unhandled data with the `XmlLexer`.
1120
1130
  """
1121
1131
 
1122
1132
  name = 'XML+PHP'
@@ -1174,7 +1184,7 @@ class JavascriptPhpLexer(DelegatingLexer):
1174
1184
 
1175
1185
  class HtmlSmartyLexer(DelegatingLexer):
1176
1186
  """
1177
- Subclass of the `SmartyLexer` that highighlights unlexed data with the
1187
+ Subclass of the `SmartyLexer` that highlights unlexed data with the
1178
1188
  `HtmlLexer`.
1179
1189
 
1180
1190
  Nested Javascript and CSS is highlighted too.
@@ -1257,7 +1267,7 @@ class JavascriptSmartyLexer(DelegatingLexer):
1257
1267
 
1258
1268
  class HtmlDjangoLexer(DelegatingLexer):
1259
1269
  """
1260
- Subclass of the `DjangoLexer` that highighlights unlexed data with the
1270
+ Subclass of the `DjangoLexer` that highlights unlexed data with the
1261
1271
  `HtmlLexer`.
1262
1272
 
1263
1273
  Nested Javascript and CSS is highlighted too.
@@ -1416,7 +1426,7 @@ class EvoqueLexer(RegexLexer):
1416
1426
  String, Punctuation)),
1417
1427
  # directives: evoque, overlay
1418
1428
  # see doc for handling first name arg: /directives/evoque/
1419
- #+ minor inconsistency: the "name" in e.g. $overlay{name=site_base}
1429
+ # + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
1420
1430
  # should be using(PythonLexer), not passed out as String
1421
1431
  (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+[^=,%}]+?)?'
1422
1432
  r'(.*?)((?(4)%)\})',
@@ -1442,6 +1452,7 @@ class EvoqueLexer(RegexLexer):
1442
1452
  ],
1443
1453
  }
1444
1454
 
1455
+
1445
1456
  class EvoqueHtmlLexer(DelegatingLexer):
1446
1457
  """
1447
1458
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
@@ -1458,6 +1469,7 @@ class EvoqueHtmlLexer(DelegatingLexer):
1458
1469
  super(EvoqueHtmlLexer, self).__init__(HtmlLexer, EvoqueLexer,
1459
1470
  **options)
1460
1471
 
1472
+
1461
1473
  class EvoqueXmlLexer(DelegatingLexer):
1462
1474
  """
1463
1475
  Subclass of the `EvoqueLexer` that highlights unlexed data with the
@@ -1474,6 +1486,7 @@ class EvoqueXmlLexer(DelegatingLexer):
1474
1486
  super(EvoqueXmlLexer, self).__init__(XmlLexer, EvoqueLexer,
1475
1487
  **options)
1476
1488
 
1489
+
1477
1490
  class ColdfusionLexer(RegexLexer):
1478
1491
  """
1479
1492
  Coldfusion statements
@@ -1554,7 +1567,7 @@ class ColdfusionMarkupLexer(RegexLexer):
1554
1567
  (r'[^#<]+', Other),
1555
1568
  (r'(#)(.*?)(#)', bygroups(Punctuation, using(ColdfusionLexer),
1556
1569
  Punctuation)),
1557
- #(r'<cfoutput.*?>', Name.Builtin, '#push'),
1570
+ # (r'<cfoutput.*?>', Name.Builtin, '#push'),
1558
1571
  (r'</cfoutput.*?>', Name.Builtin, '#pop'),
1559
1572
  include('tags'),
1560
1573
  (r'(?s)<[^<>]*', Other),
@@ -1585,6 +1598,8 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1585
1598
  class ColdfusionCFCLexer(DelegatingLexer):
1586
1599
  """
1587
1600
  Coldfusion markup/script components
1601
+
1602
+ .. versionadded:: 2.0
1588
1603
  """
1589
1604
  name = 'Coldfusion CFC'
1590
1605
  aliases = ['cfc']
@@ -1593,7 +1608,7 @@ class ColdfusionCFCLexer(DelegatingLexer):
1593
1608
 
1594
1609
  def __init__(self, **options):
1595
1610
  super(ColdfusionCFCLexer, self).__init__(ColdfusionHtmlLexer, ColdfusionLexer,
1596
- **options)
1611
+ **options)
1597
1612
 
1598
1613
 
1599
1614
  class SspLexer(DelegatingLexer):
@@ -1634,13 +1649,13 @@ class TeaTemplateRootLexer(RegexLexer):
1634
1649
  (r'<%\S?', Keyword, 'sec'),
1635
1650
  (r'[^<]+', Other),
1636
1651
  (r'<', Other),
1637
- ],
1652
+ ],
1638
1653
  'sec': [
1639
1654
  (r'%>', Keyword, '#pop'),
1640
1655
  # note: '\w\W' != '.' without DOTALL.
1641
1656
  (r'[\w\W]+?(?=%>|\Z)', using(TeaLangLexer)),
1642
- ],
1643
- }
1657
+ ],
1658
+ }
1644
1659
 
1645
1660
 
1646
1661
  class TeaTemplateLexer(DelegatingLexer):
@@ -1690,9 +1705,7 @@ class LassoHtmlLexer(DelegatingLexer):
1690
1705
 
1691
1706
  def analyse_text(text):
1692
1707
  rv = LassoLexer.analyse_text(text) - 0.01
1693
- if re.search(r'<\w+>', text, re.I):
1694
- rv += 0.2
1695
- if html_doctype_matches(text):
1708
+ if html_doctype_matches(text): # same as HTML lexer
1696
1709
  rv += 0.5
1697
1710
  return rv
1698
1711
 
@@ -1769,16 +1782,17 @@ class LassoJavascriptLexer(DelegatingLexer):
1769
1782
 
1770
1783
  def analyse_text(text):
1771
1784
  rv = LassoLexer.analyse_text(text) - 0.05
1772
- if 'function' in text:
1773
- rv += 0.2
1774
1785
  return rv
1775
1786
 
1787
+
1776
1788
  class HandlebarsLexer(RegexLexer):
1777
1789
  """
1778
1790
  Generic `handlebars <http://handlebarsjs.com/>` template lexer.
1779
1791
 
1780
1792
  Highlights only the Handlebars template tags (stuff between `{{` and `}}`).
1781
1793
  Everything else is left for a delegating lexer.
1794
+
1795
+ .. versionadded:: 2.0
1782
1796
  """
1783
1797
 
1784
1798
  name = "Handlebars"
@@ -1788,10 +1802,10 @@ class HandlebarsLexer(RegexLexer):
1788
1802
  'root': [
1789
1803
  (r'[^{]+', Other),
1790
1804
 
1791
- (r'{{!.*}}', Comment),
1805
+ (r'\{\{!.*\}\}', Comment),
1792
1806
 
1793
- (r'({{{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
1794
- (r'({{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
1807
+ (r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
1808
+ (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
1795
1809
  ],
1796
1810
 
1797
1811
  'tag': [
@@ -1800,20 +1814,20 @@ class HandlebarsLexer(RegexLexer):
1800
1814
  (r'\}\}', Comment.Preproc, '#pop'),
1801
1815
 
1802
1816
  # Handlebars
1803
- (r'([\#/]*)(each|if|unless|else|with|log|in)', bygroups(Keyword,
1817
+ (r'([#/]*)(each|if|unless|else|with|log|in)', bygroups(Keyword,
1804
1818
  Keyword)),
1805
1819
 
1806
1820
  # General {{#block}}
1807
- (r'([\#/])(\w+)', bygroups(Name.Function, Name.Function)),
1821
+ (r'([#/])([\w-]+)', bygroups(Name.Function, Name.Function)),
1808
1822
 
1809
1823
  # {{opt=something}}
1810
- (r'(\w+)(=)', bygroups(Name.Attribute, Operator)),
1824
+ (r'([\w-]+)(=)', bygroups(Name.Attribute, Operator)),
1811
1825
 
1812
1826
  # borrowed from DjangoLexer
1813
1827
  (r':?"(\\\\|\\"|[^"])*"', String.Double),
1814
1828
  (r":?'(\\\\|\\'|[^'])*'", String.Single),
1815
1829
  (r'[a-zA-Z][\w-]*', Name.Variable),
1816
- (r'\.\w+', Name.Variable),
1830
+ (r'\.[\w-]+', Name.Variable),
1817
1831
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
1818
1832
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
1819
1833
  ]
@@ -1824,6 +1838,8 @@ class HandlebarsHtmlLexer(DelegatingLexer):
1824
1838
  """
1825
1839
  Subclass of the `HandlebarsLexer` that highlights unlexed data with the
1826
1840
  `HtmlLexer`.
1841
+
1842
+ .. versionadded:: 2.0
1827
1843
  """
1828
1844
 
1829
1845
  name = "HTML+Handlebars"
@@ -1837,7 +1853,7 @@ class HandlebarsHtmlLexer(DelegatingLexer):
1837
1853
 
1838
1854
  class YamlJinjaLexer(DelegatingLexer):
1839
1855
  """
1840
- Subclass of the `DjangoLexer` that highighlights unlexed data with the
1856
+ Subclass of the `DjangoLexer` that highlights unlexed data with the
1841
1857
  `YamlLexer`.
1842
1858
 
1843
1859
  Commonly used in Saltstack salt states.
@@ -1871,10 +1887,10 @@ class LiquidLexer(RegexLexer):
1871
1887
  # tags and block tags
1872
1888
  (r'(\{%)(\s*)', bygroups(Punctuation, Whitespace), 'tag-or-block'),
1873
1889
  # output tags
1874
- (r'({{)(\s*)([^\s}]+)',
1890
+ (r'(\{\{)(\s*)([^\s}]+)',
1875
1891
  bygroups(Punctuation, Whitespace, using(this, state = 'generic')),
1876
1892
  'output'),
1877
- (r'{', Text)
1893
+ (r'\{', Text)
1878
1894
  ],
1879
1895
 
1880
1896
  'tag-or-block': [
@@ -1912,16 +1928,16 @@ class LiquidLexer(RegexLexer):
1912
1928
 
1913
1929
  'output': [
1914
1930
  include('whitespace'),
1915
- ('\}\}', Punctuation, '#pop'), # end of output
1931
+ ('\}\}', Punctuation, '#pop'), # end of output
1916
1932
 
1917
1933
  (r'\|', Punctuation, 'filters')
1918
1934
  ],
1919
1935
 
1920
1936
  'filters': [
1921
1937
  include('whitespace'),
1922
- (r'\}\}', Punctuation, ('#pop', '#pop')), # end of filters and output
1938
+ (r'\}\}', Punctuation, ('#pop', '#pop')), # end of filters and output
1923
1939
 
1924
- (r'([^\s\|:]+)(:?)(\s*)',
1940
+ (r'([^\s|:]+)(:?)(\s*)',
1925
1941
  bygroups(Name.Function, Punctuation, Whitespace), 'filter-markup')
1926
1942
  ],
1927
1943
 
@@ -1941,7 +1957,7 @@ class LiquidLexer(RegexLexer):
1941
1957
  Punctuation)),
1942
1958
  (r'\b!', Operator),
1943
1959
  (r'\bnot\b', Operator.Word),
1944
- (r'([\w\.\'"]+)(\s+)(contains)(\s+)([\w\.\'"]+)',
1960
+ (r'([\w.\'"]+)(\s+)(contains)(\s+)([\w.\'"]+)',
1945
1961
  bygroups(using(this, state = 'generic'), Whitespace, Operator.Word,
1946
1962
  Whitespace, using(this, state = 'generic'))),
1947
1963
 
@@ -1980,7 +1996,7 @@ class LiquidLexer(RegexLexer):
1980
1996
  (r'([^\s=:]+)(\s*)(=|:)',
1981
1997
  bygroups(Name.Attribute, Whitespace, Operator)),
1982
1998
  # explicit variables
1983
- (r'(\{\{)(\s*)([^\s\}])(\s*)(\}\})',
1999
+ (r'(\{\{)(\s*)([^\s}])(\s*)(\}\})',
1984
2000
  bygroups(Punctuation, Whitespace, using(this, state = 'variable'),
1985
2001
  Whitespace, Punctuation)),
1986
2002
 
@@ -1992,22 +2008,22 @@ class LiquidLexer(RegexLexer):
1992
2008
 
1993
2009
  'default-param-markup': [
1994
2010
  include('param-markup'),
1995
- (r'.', Text) # fallback for switches / variables / un-quoted strings / ...
2011
+ (r'.', Text) # fallback for switches / variables / un-quoted strings / ...
1996
2012
  ],
1997
2013
 
1998
2014
  'variable-param-markup': [
1999
2015
  include('param-markup'),
2000
2016
  include('variable'),
2001
- (r'.', Text) # fallback
2017
+ (r'.', Text) # fallback
2002
2018
  ],
2003
2019
 
2004
2020
  'tag-markup': [
2005
- (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
2021
+ (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
2006
2022
  include('default-param-markup')
2007
2023
  ],
2008
2024
 
2009
2025
  'variable-tag-markup': [
2010
- (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
2026
+ (r'%\}', Punctuation, ('#pop', '#pop')), # end of tag
2011
2027
  include('variable-param-markup')
2012
2028
  ],
2013
2029
 
@@ -2031,7 +2047,7 @@ class LiquidLexer(RegexLexer):
2031
2047
  (r'\d+', Number.Integer)
2032
2048
  ],
2033
2049
 
2034
- 'generic': [ # decides for variable, string, keyword or number
2050
+ 'generic': [ # decides for variable, string, keyword or number
2035
2051
  include('keyword'),
2036
2052
  include('string'),
2037
2053
  include('number'),
@@ -2051,10 +2067,186 @@ class LiquidLexer(RegexLexer):
2051
2067
  ],
2052
2068
 
2053
2069
  'raw': [
2054
- (r'[^\{]+', Text),
2070
+ (r'[^{]+', Text),
2055
2071
  (r'(\{%)(\s*)(endraw)(\s*)(%\})',
2056
2072
  bygroups(Punctuation, Whitespace, Name.Tag, Whitespace,
2057
2073
  Punctuation), '#pop'),
2058
2074
  (r'\{', Text)
2059
- ]
2075
+ ],
2060
2076
  }
2077
+
2078
+
2079
+ class TwigLexer(RegexLexer):
2080
+ """
2081
+ `Twig <http://twig.sensiolabs.org/>`_ template lexer.
2082
+
2083
+ It just highlights Twig code between the preprocessor directives,
2084
+ other data is left untouched by the lexer.
2085
+
2086
+ .. versionadded:: 2.0
2087
+ """
2088
+
2089
+ name = 'Twig'
2090
+ aliases = ['twig']
2091
+ mimetypes = ['application/x-twig']
2092
+
2093
+ flags = re.M | re.S
2094
+
2095
+ # Note that a backslash is included in the following two patterns
2096
+ # PHP uses a backslash as a namespace separator
2097
+ _ident_char = r'[\\\w-]|[^\x00-\x7f]'
2098
+ _ident_begin = r'(?:[\\_a-z]|[^\x00-\x7f])'
2099
+ _ident_end = r'(?:' + _ident_char + ')*'
2100
+ _ident_inner = _ident_begin + _ident_end
2101
+
2102
+ tokens = {
2103
+ 'root': [
2104
+ (r'[^{]+', Other),
2105
+ (r'\{\{', Comment.Preproc, 'var'),
2106
+ # twig comments
2107
+ (r'\{\#.*?\#\}', Comment),
2108
+ # raw twig blocks
2109
+ (r'(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)'
2110
+ r'(\{%)(-?\s*)(endraw)(\s*-?)(%\})',
2111
+ bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
2112
+ Other, Comment.Preproc, Text, Keyword, Text,
2113
+ Comment.Preproc)),
2114
+ (r'(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)'
2115
+ r'(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})',
2116
+ bygroups(Comment.Preproc, Text, Keyword, Text, Comment.Preproc,
2117
+ Other, Comment.Preproc, Text, Keyword, Text,
2118
+ Comment.Preproc)),
2119
+ # filter blocks
2120
+ (r'(\{%%)(-?\s*)(filter)(\s+)(%s)' % _ident_inner,
2121
+ bygroups(Comment.Preproc, Text, Keyword, Text, Name.Function),
2122
+ 'tag'),
2123
+ (r'(\{%)(-?\s*)([a-zA-Z_]\w*)',
2124
+ bygroups(Comment.Preproc, Text, Keyword), 'tag'),
2125
+ (r'\{', Other),
2126
+ ],
2127
+ 'varnames': [
2128
+ (r'(\|)(\s*)(%s)' % _ident_inner,
2129
+ bygroups(Operator, Text, Name.Function)),
2130
+ (r'(is)(\s+)(not)?(\s*)(%s)' % _ident_inner,
2131
+ bygroups(Keyword, Text, Keyword, Text, Name.Function)),
2132
+ (r'(?i)(true|false|none|null)\b', Keyword.Pseudo),
2133
+ (r'(in|not|and|b-and|or|b-or|b-xor|is'
2134
+ r'if|elseif|else|import'
2135
+ r'constant|defined|divisibleby|empty|even|iterable|odd|sameas'
2136
+ r'matches|starts\s+with|ends\s+with)\b',
2137
+ Keyword),
2138
+ (r'(loop|block|parent)\b', Name.Builtin),
2139
+ (_ident_inner, Name.Variable),
2140
+ (r'\.' + _ident_inner, Name.Variable),
2141
+ (r'\.[0-9]+', Number),
2142
+ (r':?"(\\\\|\\"|[^"])*"', String.Double),
2143
+ (r":?'(\\\\|\\'|[^'])*'", String.Single),
2144
+ (r'([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)', Operator),
2145
+ (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
2146
+ r"0[xX][0-9a-fA-F]+[Ll]?", Number),
2147
+ ],
2148
+ 'var': [
2149
+ (r'\s+', Text),
2150
+ (r'(-?)(\}\})', bygroups(Text, Comment.Preproc), '#pop'),
2151
+ include('varnames')
2152
+ ],
2153
+ 'tag': [
2154
+ (r'\s+', Text),
2155
+ (r'(-?)(%\})', bygroups(Text, Comment.Preproc), '#pop'),
2156
+ include('varnames'),
2157
+ (r'.', Punctuation),
2158
+ ],
2159
+ }
2160
+
2161
+
2162
+ class TwigHtmlLexer(DelegatingLexer):
2163
+ """
2164
+ Subclass of the `TwigLexer` that highlights unlexed data with the
2165
+ `HtmlLexer`.
2166
+
2167
+ .. versionadded:: 2.0
2168
+ """
2169
+
2170
+ name = "HTML+Twig"
2171
+ aliases = ["html+twig"]
2172
+ filenames = ['*.twig']
2173
+ mimetypes = ['text/html+twig']
2174
+
2175
+ def __init__(self, **options):
2176
+ super(TwigHtmlLexer, self).__init__(HtmlLexer, TwigLexer, **options)
2177
+
2178
+
2179
+ class Angular2Lexer(RegexLexer):
2180
+ """
2181
+ Generic `angular2 <http://victorsavkin.com/post/119943127151/angular-2-template-syntax>` template lexer.
2182
+
2183
+ Highlights only the Angular template tags (stuff between `{{` and `}}` and
2184
+ special attributes: '(event)=', '[property]=', '[(twoWayBinding)]=').
2185
+ Everything else is left for a delegating lexer.
2186
+
2187
+ .. versionadded:: 2.1a0
2188
+ """
2189
+
2190
+ name = "Angular2"
2191
+ aliases = ['ng2']
2192
+
2193
+ tokens = {
2194
+ 'root': [
2195
+ (r'[^{([*#]+', Other),
2196
+
2197
+ # {{meal.name}}
2198
+ (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'ngExpression'),
2199
+
2200
+ # (click)="deleteOrder()"; [value]="test"; [(twoWayTest)]="foo.bar"
2201
+ (r'([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)',
2202
+ bygroups(Punctuation, Name.Attribute, Punctuation, Text, Operator, Text), 'attr'),
2203
+ (r'([([]+)([\w:.-]+)([\])]+)(\s*)',
2204
+ bygroups(Punctuation, Name.Attribute, Punctuation, Text)),
2205
+
2206
+ # *ngIf="..."; #f="ngForm"
2207
+ (r'([*#])([\w:.-]+)(\s*)(=)(\s*)',
2208
+ bygroups(Punctuation, Name.Attribute, Punctuation, Operator), 'attr'),
2209
+ (r'([*#])([\w:.-]+)(\s*)',
2210
+ bygroups(Punctuation, Name.Attribute, Punctuation)),
2211
+ ],
2212
+
2213
+ 'ngExpression': [
2214
+ (r'\s+(\|\s+)?', Text),
2215
+ (r'\}\}', Comment.Preproc, '#pop'),
2216
+
2217
+ # Literals
2218
+ (r':?(true|false)', String.Boolean),
2219
+ (r':?"(\\\\|\\"|[^"])*"', String.Double),
2220
+ (r":?'(\\\\|\\'|[^'])*'", String.Single),
2221
+ (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
2222
+ r"0[xX][0-9a-fA-F]+[Ll]?", Number),
2223
+
2224
+ # Variabletext
2225
+ (r'[a-zA-Z][\w-]*(\(.*\))?', Name.Variable),
2226
+ (r'\.[\w-]+(\(.*\))?', Name.Variable),
2227
+
2228
+ # inline If
2229
+ (r'(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)', bygroups(Operator, Text, String, Text, Operator, Text, String, Text)),
2230
+ ],
2231
+ 'attr': [
2232
+ ('".*?"', String, '#pop'),
2233
+ ("'.*?'", String, '#pop'),
2234
+ (r'[^\s>]+', String, '#pop'),
2235
+ ],
2236
+ }
2237
+
2238
+
2239
+ class Angular2HtmlLexer(DelegatingLexer):
2240
+ """
2241
+ Subclass of the `Angular2Lexer` that highlights unlexed data with the
2242
+ `HtmlLexer`.
2243
+
2244
+ .. versionadded:: 2.0
2245
+ """
2246
+
2247
+ name = "HTML + Angular2"
2248
+ aliases = ["html+ng2"]
2249
+ filenames = ['*.ng2']
2250
+
2251
+ def __init__(self, **options):
2252
+ super(Angular2HtmlLexer, self).__init__(HtmlLexer, Angular2Lexer, **options)