pygments.rb 1.1.2 → 1.2.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/Rakefile +1 -0
  4. data/lib/pygments/version.rb +1 -1
  5. data/pygments.rb.gemspec +1 -2
  6. data/vendor/pygments-main/AUTHORS +2 -0
  7. data/vendor/pygments-main/CHANGES +27 -4
  8. data/vendor/pygments-main/LICENSE +1 -1
  9. data/vendor/pygments-main/MANIFEST.in +1 -1
  10. data/vendor/pygments-main/Makefile +1 -1
  11. data/vendor/pygments-main/REVISION +1 -1
  12. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +1 -1
  13. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +1 -1
  14. data/vendor/pygments-main/doc/docs/api.rst +23 -0
  15. data/vendor/pygments-main/doc/docs/cmdline.rst +17 -0
  16. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +42 -3
  17. data/vendor/pygments-main/external/autopygmentize +28 -11
  18. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  19. data/vendor/pygments-main/external/moin-parser.py +1 -1
  20. data/vendor/pygments-main/external/rst-directive.py +1 -1
  21. data/vendor/pygments-main/pygments/__init__.py +2 -2
  22. data/vendor/pygments-main/pygments/cmdline.py +61 -17
  23. data/vendor/pygments-main/pygments/console.py +1 -1
  24. data/vendor/pygments-main/pygments/filter.py +1 -1
  25. data/vendor/pygments-main/pygments/filters/__init__.py +1 -1
  26. data/vendor/pygments-main/pygments/formatter.py +1 -1
  27. data/vendor/pygments-main/pygments/formatters/__init__.py +37 -2
  28. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -1
  29. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  30. data/vendor/pygments-main/pygments/formatters/html.py +1 -1
  31. data/vendor/pygments-main/pygments/formatters/img.py +38 -1
  32. data/vendor/pygments-main/pygments/formatters/irc.py +1 -1
  33. data/vendor/pygments-main/pygments/formatters/latex.py +1 -1
  34. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  35. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  36. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  37. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  38. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  39. data/vendor/pygments-main/pygments/lexer.py +1 -1
  40. data/vendor/pygments-main/pygments/lexers/__init__.py +39 -5
  41. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  42. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1 -1
  45. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
  46. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/_mapping.py +6 -5
  48. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -1
  51. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
  52. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  58. data/vendor/pygments-main/pygments/lexers/actionscript.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  60. data/vendor/pygments-main/pygments/lexers/algebra.py +1 -1
  61. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/apl.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/archetype.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/asm.py +21 -10
  66. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  67. data/vendor/pygments-main/pygments/lexers/basic.py +1 -1
  68. data/vendor/pygments-main/pygments/lexers/bibtex.py +9 -5
  69. data/vendor/pygments-main/pygments/lexers/business.py +53 -35
  70. data/vendor/pygments-main/pygments/lexers/c_cpp.py +1 -1
  71. data/vendor/pygments-main/pygments/lexers/c_like.py +2 -2
  72. data/vendor/pygments-main/pygments/lexers/capnproto.py +14 -15
  73. data/vendor/pygments-main/pygments/lexers/chapel.py +4 -3
  74. data/vendor/pygments-main/pygments/lexers/clean.py +11 -11
  75. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/configs.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  78. data/vendor/pygments-main/pygments/lexers/crystal.py +29 -20
  79. data/vendor/pygments-main/pygments/lexers/csound.py +1 -1
  80. data/vendor/pygments-main/pygments/lexers/css.py +1 -1
  81. data/vendor/pygments-main/pygments/lexers/d.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  83. data/vendor/pygments-main/pygments/lexers/data.py +1 -1
  84. data/vendor/pygments-main/pygments/lexers/diff.py +1 -1
  85. data/vendor/pygments-main/pygments/lexers/dotnet.py +1 -1
  86. data/vendor/pygments-main/pygments/lexers/dsls.py +4 -4
  87. data/vendor/pygments-main/pygments/lexers/dylan.py +1 -1
  88. data/vendor/pygments-main/pygments/lexers/ecl.py +1 -1
  89. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  90. data/vendor/pygments-main/pygments/lexers/elm.py +1 -1
  91. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
  92. data/vendor/pygments-main/pygments/lexers/esoteric.py +9 -7
  93. data/vendor/pygments-main/pygments/lexers/ezhil.py +4 -3
  94. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  96. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  97. data/vendor/pygments-main/pygments/lexers/forth.py +1 -1
  98. data/vendor/pygments-main/pygments/lexers/fortran.py +1 -1
  99. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  101. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  102. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +2 -2
  103. data/vendor/pygments-main/pygments/lexers/graph.py +1 -1
  104. data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
  105. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -2
  106. data/vendor/pygments-main/pygments/lexers/haxe.py +1 -1
  107. data/vendor/pygments-main/pygments/lexers/hdl.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
  109. data/vendor/pygments-main/pygments/lexers/html.py +1 -1
  110. data/vendor/pygments-main/pygments/lexers/idl.py +2 -2
  111. data/vendor/pygments-main/pygments/lexers/igor.py +1 -1
  112. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -1
  113. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/iolang.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/j.py +1 -1
  117. data/vendor/pygments-main/pygments/lexers/javascript.py +56 -37
  118. data/vendor/pygments-main/pygments/lexers/julia.py +3 -3
  119. data/vendor/pygments-main/pygments/lexers/jvm.py +1 -1
  120. data/vendor/pygments-main/pygments/lexers/lisp.py +1 -1
  121. data/vendor/pygments-main/pygments/lexers/make.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/markup.py +1 -1
  123. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/matlab.py +1 -1
  125. data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
  126. data/vendor/pygments-main/pygments/lexers/modeling.py +1 -1
  127. data/vendor/pygments-main/pygments/lexers/modula2.py +1 -1
  128. data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
  129. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  130. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  133. data/vendor/pygments-main/pygments/lexers/oberon.py +1 -1
  134. data/vendor/pygments-main/pygments/lexers/objective.py +1 -1
  135. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  137. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  138. data/vendor/pygments-main/pygments/lexers/parsers.py +1 -1
  139. data/vendor/pygments-main/pygments/lexers/pascal.py +2 -2
  140. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  141. data/vendor/pygments-main/pygments/lexers/perl.py +17 -13
  142. data/vendor/pygments-main/pygments/lexers/php.py +1 -1
  143. data/vendor/pygments-main/pygments/lexers/praat.py +1 -1
  144. data/vendor/pygments-main/pygments/lexers/prolog.py +1 -1
  145. data/vendor/pygments-main/pygments/lexers/python.py +2 -1
  146. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  147. data/vendor/pygments-main/pygments/lexers/r.py +1 -1
  148. data/vendor/pygments-main/pygments/lexers/rdf.py +1 -1
  149. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -1
  150. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  151. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  152. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  153. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -1
  154. data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
  155. data/vendor/pygments-main/pygments/lexers/rust.py +41 -30
  156. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  157. data/vendor/pygments-main/pygments/lexers/scripting.py +1 -1
  158. data/vendor/pygments-main/pygments/lexers/shell.py +14 -10
  159. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/smv.py +28 -24
  161. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/special.py +1 -1
  163. data/vendor/pygments-main/pygments/lexers/sql.py +1 -1
  164. data/vendor/pygments-main/pygments/lexers/stata.py +9 -7
  165. data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
  166. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  167. data/vendor/pygments-main/pygments/lexers/templates.py +48 -17
  168. data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
  169. data/vendor/pygments-main/pygments/lexers/text.py +1 -1
  170. data/vendor/pygments-main/pygments/lexers/textedit.py +1 -1
  171. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -1
  172. data/vendor/pygments-main/pygments/lexers/theorem.py +1 -1
  173. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  174. data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -7
  175. data/vendor/pygments-main/pygments/lexers/urbi.py +1 -1
  176. data/vendor/pygments-main/pygments/lexers/varnish.py +3 -3
  177. data/vendor/pygments-main/pygments/lexers/verification.py +3 -3
  178. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  179. data/vendor/pygments-main/pygments/lexers/webmisc.py +20 -11
  180. data/vendor/pygments-main/pygments/lexers/whiley.py +7 -8
  181. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  182. data/vendor/pygments-main/pygments/lexers/xorg.py +36 -0
  183. data/vendor/pygments-main/pygments/modeline.py +6 -5
  184. data/vendor/pygments-main/pygments/plugin.py +12 -18
  185. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  186. data/vendor/pygments-main/pygments/scanner.py +1 -1
  187. data/vendor/pygments-main/pygments/sphinxext.py +1 -1
  188. data/vendor/pygments-main/pygments/style.py +1 -1
  189. data/vendor/pygments-main/pygments/styles/__init__.py +4 -2
  190. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  191. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  192. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  193. data/vendor/pygments-main/pygments/styles/arduino.py +1 -1
  194. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  195. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  196. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  197. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  198. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  199. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  200. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  201. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  202. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  203. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  204. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  205. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  206. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  207. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  208. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  209. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  210. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  211. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  212. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
  213. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  214. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  215. data/vendor/pygments-main/pygments/styles/stata.py +3 -0
  216. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  217. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  218. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  219. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  220. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  221. data/vendor/pygments-main/pygments/token.py +1 -1
  222. data/vendor/pygments-main/pygments/unistring.py +1 -1
  223. data/vendor/pygments-main/pygments/util.py +5 -4
  224. data/vendor/pygments-main/scripts/check_sources.py +2 -2
  225. data/vendor/pygments-main/scripts/debug_lexer.py +1 -1
  226. data/vendor/pygments-main/scripts/get_vimkw.py +1 -1
  227. data/vendor/pygments-main/setup.cfg +2 -2
  228. data/vendor/pygments-main/setup.py +3 -3
  229. metadata +6 -4
  230. data/vendor/pygments-main/scripts/find_error.py +0 -1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for C/C++ languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for other C-like languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -105,7 +105,7 @@ class ClayLexer(RegexLexer):
105
105
  tokens = {
106
106
  'root': [
107
107
  (r'\s', Text),
108
- (r'//.*?$', Comment.Singleline),
108
+ (r'//.*?$', Comment.Single),
109
109
  (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
110
110
  (r'\b(public|private|import|as|record|variant|instance'
111
111
  r'|define|overload|default|external|alias'
@@ -5,15 +5,14 @@
5
5
 
6
6
  Lexers for the Cap'n Proto schema language.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 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.lexer import RegexLexer, bygroups, words
15
- from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
- Number, Punctuation, Literal
14
+ from pygments.lexer import RegexLexer, default
15
+ from pygments.token import Text, Comment, Keyword, Name, Literal
17
16
 
18
17
  __all__ = ['CapnProtoLexer']
19
18
 
@@ -30,7 +29,6 @@ class CapnProtoLexer(RegexLexer):
30
29
 
31
30
  flags = re.MULTILINE | re.UNICODE
32
31
 
33
-
34
32
  tokens = {
35
33
  'root': [
36
34
  (r'#.*?$', Comment.Single),
@@ -38,42 +36,43 @@ class CapnProtoLexer(RegexLexer):
38
36
  (r'=', Literal, 'expression'),
39
37
  (r':', Name.Class, 'type'),
40
38
  (r'\$', Name.Attribute, 'annotation'),
41
- (r'(struct|enum|interface|union|import|using|const|annotation|extends|in|of|on|as|with|from|fixed)\b',
42
- Keyword),
43
- (r'[a-zA-Z0-9_.]+', Name),
44
- (r'[^#@=:$a-zA-Z0-9_]+', Text),
39
+ (r'(struct|enum|interface|union|import|using|const|annotation|'
40
+ r'extends|in|of|on|as|with|from|fixed)\b',
41
+ Keyword),
42
+ (r'[\w.]+', Name),
43
+ (r'[^#@=:$\w]+', Text),
45
44
  ],
46
45
  'type': [
47
46
  (r'[^][=;,(){}$]+', Name.Class),
48
47
  (r'[[(]', Name.Class, 'parentype'),
49
- (r'', Name.Class, '#pop')
48
+ default('#pop'),
50
49
  ],
51
50
  'parentype': [
52
51
  (r'[^][;()]+', Name.Class),
53
52
  (r'[[(]', Name.Class, '#push'),
54
53
  (r'[])]', Name.Class, '#pop'),
55
- (r'', Name.Class, '#pop')
54
+ default('#pop'),
56
55
  ],
57
56
  'expression': [
58
57
  (r'[^][;,(){}$]+', Literal),
59
58
  (r'[[(]', Literal, 'parenexp'),
60
- (r'', Literal, '#pop')
59
+ default('#pop'),
61
60
  ],
62
61
  'parenexp': [
63
62
  (r'[^][;()]+', Literal),
64
63
  (r'[[(]', Literal, '#push'),
65
64
  (r'[])]', Literal, '#pop'),
66
- (r'', Literal, '#pop')
65
+ default('#pop'),
67
66
  ],
68
67
  'annotation': [
69
68
  (r'[^][;,(){}=:]+', Name.Attribute),
70
69
  (r'[[(]', Name.Attribute, 'annexp'),
71
- (r'', Name.Attribute, '#pop')
70
+ default('#pop'),
72
71
  ],
73
72
  'annexp': [
74
73
  (r'[^][;()]+', Name.Attribute),
75
74
  (r'[[(]', Name.Attribute, '#push'),
76
75
  (r'[])]', Name.Attribute, '#pop'),
77
- (r'', Name.Attribute, '#pop')
76
+ default('#pop'),
78
77
  ],
79
78
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the Chapel language.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -52,7 +52,7 @@ class ChapelLexer(RegexLexer):
52
52
  'then', 'use', 'when', 'where', 'while', 'with', 'yield',
53
53
  'zip'), suffix=r'\b'),
54
54
  Keyword),
55
- (r'(proc)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'procname'),
55
+ (r'(proc)((?:\s)+)', bygroups(Keyword, Text), 'procname'),
56
56
  (r'(class|module|record|union)(\s+)', bygroups(Keyword, Text),
57
57
  'classname'),
58
58
 
@@ -96,6 +96,7 @@ class ChapelLexer(RegexLexer):
96
96
  (r'[a-zA-Z_][\w$]*', Name.Class, '#pop'),
97
97
  ],
98
98
  'procname': [
99
- (r'[a-zA-Z_][\w$]*', Name.Function, '#pop'),
99
+ (r'([a-zA-Z_][\w$]+|\~[a-zA-Z_][\w$]+|[+*/!~%<>=&^|\-]{1,2})',
100
+ Name.Function, '#pop'),
100
101
  ],
101
102
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the Clean language.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -116,7 +116,7 @@ class CleanLexer(ExtendedRegexLexer):
116
116
  (r'(?s)/\*.*?\*/', Comment.Multi),
117
117
 
118
118
  # Modules, imports, etc.
119
- (r'\b((?:implementation|definition|system)\s+)?(module)(\s+)([\w`\.]+)',
119
+ (r'\b((?:implementation|definition|system)\s+)?(module)(\s+)([\w`.]+)',
120
120
  bygroups(Keyword.Namespace, Keyword.Namespace, Text, Name.Class)),
121
121
  (r'(?<=\n)import(?=\s)', Keyword.Namespace, 'import'),
122
122
  (r'(?<=\n)from(?=\s)', Keyword.Namespace, 'fromimport'),
@@ -140,7 +140,7 @@ class CleanLexer(ExtendedRegexLexer):
140
140
  # Literals
141
141
  (r'\'\\?.(?<!\\)\'', String.Char),
142
142
  (r'\'\\\d+\'', String.Char),
143
- (r'\'\\\\\'', String.Char), # (special case for '\\')
143
+ (r'\'\\\\\'', String.Char), # (special case for '\\')
144
144
  (r'[+\-~]?\s*\d+\.\d+(E[+\-~]?\d+)?\b', Number.Float),
145
145
  (r'[+\-~]?\s*0[0-7]\b', Number.Oct),
146
146
  (r'[+\-~]?\s*0x[0-9a-fA-F]\b', Number.Hex),
@@ -150,11 +150,11 @@ class CleanLexer(ExtendedRegexLexer):
150
150
  Literal),
151
151
 
152
152
  # Qualified names
153
- (r'(\')([\w\.]+)(\'\.)',
153
+ (r'(\')([\w.]+)(\'\.)',
154
154
  bygroups(Punctuation, Name.Namespace, Punctuation)),
155
155
 
156
156
  # Everything else is some name
157
- (r'([\w`$%\/\?@]+\.?)*[\w`$%\/\?@]+', Name),
157
+ (r'([\w`$%/?@]+\.?)*[\w`$%/?@]+', Name),
158
158
 
159
159
  # Punctuation
160
160
  (r'[{}()\[\],:;.#]', Punctuation),
@@ -171,14 +171,14 @@ class CleanLexer(ExtendedRegexLexer):
171
171
  ],
172
172
  'fromimport': [
173
173
  include('common'),
174
- (r'([\w`\.]+)', check_class_not_import),
174
+ (r'([\w`.]+)', check_class_not_import),
175
175
  (r'\n', Whitespace, '#pop'),
176
176
  (r'\s', Whitespace),
177
177
  ],
178
178
  'fromimportfunc': [
179
179
  include('common'),
180
- (r'(::)\s+([^,\s]+)', bygroups(Punctuation, Keyword.Type)),
181
- (r'([\w`$()=\-<>~*\^|+&%\/]+)', check_instance_class),
180
+ (r'(::)(\s+)([^,\s]+)', bygroups(Punctuation, Text, Keyword.Type)),
181
+ (r'([\w`$()=\-<>~*\^|+&%/]+)', check_instance_class),
182
182
  (r',', Punctuation),
183
183
  (r'\n', Whitespace, '#pop'),
184
184
  (r'\s', Whitespace),
@@ -204,7 +204,7 @@ class CleanLexer(ExtendedRegexLexer):
204
204
  include('common'),
205
205
  (words(('from', 'import', 'as', 'qualified'),
206
206
  prefix='(?<=\s)', suffix='(?=\s)'), Keyword.Namespace),
207
- (r'[\w`\.]+', Name.Class),
207
+ (r'[\w`.]+', Name.Class),
208
208
  (r'\n', Whitespace, '#pop'),
209
209
  (r',', Punctuation),
210
210
  (r'[^\S\n]+', Whitespace),
@@ -269,7 +269,7 @@ class CleanLexer(ExtendedRegexLexer):
269
269
  (r'^(?=\S)', Whitespace, '#pop:3'),
270
270
  (r'[,&]', Punctuation),
271
271
  (r'\[', Punctuation, 'functiondefuniquneq'),
272
- (r'[\w`$()=\-<>~*\^|+&%\/{}\[\]@]', Name.Function, 'functionname'),
272
+ (r'[\w`$()=\-<>~*\^|+&%/{}\[\]@]', Name.Function, 'functionname'),
273
273
  (r'\s+', Whitespace),
274
274
  ],
275
275
  'functiondefuniquneq': [
@@ -281,7 +281,7 @@ class CleanLexer(ExtendedRegexLexer):
281
281
  ],
282
282
  'functionname': [
283
283
  include('common'),
284
- (r'[\w`$()=\-<>~*\^|+&%\/]+', Name.Function),
284
+ (r'[\w`$()=\-<>~*\^|+&%/]+', Name.Function),
285
285
  (r'(?=\{\|)', Punctuation, 'genericfunction'),
286
286
  default('#pop'),
287
287
  ]
@@ -5,7 +5,7 @@
5
5
 
6
6
  Just export lexer classes previously contained in this module.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for configuration file formats.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -462,7 +462,7 @@ class NginxConfLexer(RegexLexer):
462
462
  """
463
463
  name = 'Nginx configuration file'
464
464
  aliases = ['nginx']
465
- filenames = []
465
+ filenames = ['nginx.conf']
466
466
  mimetypes = ['text/x-nginx-conf']
467
467
 
468
468
  tokens = {
@@ -584,7 +584,7 @@ class TerraformLexer(RegexLexer):
584
584
  (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
585
585
  (words(('variable', 'resource', 'provider', 'provisioner', 'module'),
586
586
  prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'),
587
- (words(('ingress', 'egress', 'listener', 'default', 'connection'),
587
+ (words(('ingress', 'egress', 'listener', 'default', 'connection', 'alias'),
588
588
  prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
589
589
  ('\$\{', String.Interpol, 'var_builtin'),
590
590
  ],
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for misc console output.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,25 +5,22 @@
5
5
 
6
6
  Lexer for Crystal.
7
7
 
8
- :copyright: Copyright 2006-2016 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 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.lexer import Lexer, RegexLexer, ExtendedRegexLexer, include, \
15
- bygroups, default, LexerContext, do_insertions, words
14
+ from pygments.lexer import ExtendedRegexLexer, include, \
15
+ bygroups, default, LexerContext, words
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
- Number, Punctuation, Error, Generic
18
- from pygments.util import shebang_matches
17
+ Number, Punctuation, Error
19
18
 
20
19
  __all__ = ['CrystalLexer']
21
20
 
22
21
  line_re = re.compile('.*?\n')
23
22
 
24
23
 
25
-
26
-
27
24
  CRYSTAL_OPERATORS = [
28
25
  '!=', '!~', '!', '%', '&&', '&', '**', '*', '+', '-', '/', '<=>', '<<', '<=', '<',
29
26
  '===', '==', '=~', '=', '>=', '>>', '>', '[]=', '[]?', '[]', '^', '||', '|', '~'
@@ -33,6 +30,8 @@ CRYSTAL_OPERATORS = [
33
30
  class CrystalLexer(ExtendedRegexLexer):
34
31
  """
35
32
  For `Crystal <http://crystal-lang.org>`_ source code.
33
+
34
+ .. versionadded:: 2.2
36
35
  """
37
36
 
38
37
  name = 'Crystal'
@@ -48,9 +47,9 @@ class CrystalLexer(ExtendedRegexLexer):
48
47
 
49
48
  start = match.start(1)
50
49
  yield start, Operator, match.group(1) # <<-?
51
- yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
52
- yield match.start(3), String.Delimiter, match.group(3) # heredoc name
53
- yield match.start(4), String.Heredoc, match.group(4) # quote again
50
+ yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
51
+ yield match.start(3), String.Delimiter, match.group(3) # heredoc name
52
+ yield match.start(4), String.Heredoc, match.group(4) # quote again
54
53
 
55
54
  heredocstack = ctx.__dict__.setdefault('heredocstack', [])
56
55
  outermost = not bool(heredocstack)
@@ -211,17 +210,21 @@ class CrystalLexer(ExtendedRegexLexer):
211
210
  # macros
212
211
  (words('''
213
212
  debugger record pp assert_responds_to spawn parallel
214
- getter setter property delegate def_hash def_equals def_equals_and_hash forward_missing_to
213
+ getter setter property delegate def_hash def_equals def_equals_and_hash
214
+ forward_missing_to
215
215
  '''.split(), suffix=r'\b'), Name.Builtin.Pseudo),
216
216
  (r'getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b', Name.Builtin.Pseudo),
217
217
  # builtins
218
218
  # http://crystal-lang.org/api/toplevel.html
219
219
  (words('''
220
220
  Object Value Struct Reference Proc Class Nil Symbol Enum Void
221
- Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float Float32 Float64 Char String
221
+ Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64
222
+ Float Float32 Float64 Char String
222
223
  Pointer Slice Range Exception Regex
223
- Mutex StaticArray Array Hash Set Tuple Deque Box Process File Dir Time Channel Concurrent Scheduler
224
- abort at_exit caller delay exit fork future get_stack_top gets lazy loop main p print printf puts
224
+ Mutex StaticArray Array Hash Set Tuple Deque Box Process File
225
+ Dir Time Channel Concurrent Scheduler
226
+ abort at_exit caller delay exit fork future get_stack_top gets
227
+ lazy loop main p print printf puts
225
228
  raise rand read_line sleep sprintf system with_color
226
229
  '''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Name.Builtin),
227
230
  # normal heredocs
@@ -274,12 +277,16 @@ class CrystalLexer(ExtendedRegexLexer):
274
277
  bygroups(Number.Hex, Text, Operator)),
275
278
  (r'(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
276
279
  bygroups(Number.Bin, Text, Operator)),
277
- # 3 separate expressions for floats because any of the 3 optional parts makes it a float
278
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?[f][0-9]+)?)(\s*)([/?])?',
280
+ # 3 separate expressions for floats because any of the 3 optional
281
+ # parts makes it a float
282
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?'
283
+ r'(?:_?f[0-9]+)?)(\s*)([/?])?',
279
284
  bygroups(Number.Float, Text, Operator)),
280
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?[f][0-9]+)?)(\s*)([/?])?',
285
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)'
286
+ r'(?:_?f[0-9]+)?)(\s*)([/?])?',
281
287
  bygroups(Number.Float, Text, Operator)),
282
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?[f][0-9]+))(\s*)([/?])?',
288
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?'
289
+ r'(?:_?f[0-9]+))(\s*)([/?])?',
283
290
  bygroups(Number.Float, Text, Operator)),
284
291
  (r'(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
285
292
  bygroups(Number.Integer, Text, Operator)),
@@ -301,7 +308,8 @@ class CrystalLexer(ExtendedRegexLexer):
301
308
  (r'\{%', String.Interpol, 'in-macro-control'),
302
309
  (r'\{\{', String.Interpol, 'in-macro-expr'),
303
310
  # attributes
304
- (r'(@\[)(\s*)([A-Z]\w*)', bygroups(Operator, Text, Name.Decorator), 'in-attr'),
311
+ (r'(@\[)(\s*)([A-Z]\w*)',
312
+ bygroups(Operator, Text, Name.Decorator), 'in-attr'),
305
313
  # this is needed because Crystal attributes can look
306
314
  # like keywords (class) or like this: ` ?!?
307
315
  (words(CRYSTAL_OPERATORS, prefix=r'(\.|::)'),
@@ -325,7 +333,8 @@ class CrystalLexer(ExtendedRegexLexer):
325
333
  ],
326
334
  'classname': [
327
335
  (r'[A-Z_]\w*', Name.Class),
328
- (r'(\()(\s*)([A-Z_]\w*)(\s*)(\))', bygroups(Punctuation, Text, Name.Class, Text, Punctuation)),
336
+ (r'(\()(\s*)([A-Z_]\w*)(\s*)(\))',
337
+ bygroups(Punctuation, Text, Name.Class, Text, Punctuation)),
329
338
  default('#pop')
330
339
  ],
331
340
  'in-intp': [
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for CSound languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for CSS and related stylesheet formats.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for D languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Pygments lexers for Dalvik VM-related languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for data file format.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for diff/patch formats.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for .net languages.
7
7
 
8
- :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
  import re