gitlab-pygments.rb 0.3.2 → 0.5.4

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 (199) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +71 -0
  4. data/Gemfile +1 -1
  5. data/LICENSE +17 -0
  6. data/README.md +28 -1
  7. data/Rakefile +2 -5
  8. data/lexers +0 -0
  9. data/lib/pygments/mentos.py +19 -12
  10. data/lib/pygments/popen.rb +21 -4
  11. data/lib/pygments/version.rb +1 -1
  12. data/pygments.rb.gemspec +2 -0
  13. data/test/test_pygments.rb +13 -2
  14. data/vendor/custom_lexers/github.py +206 -3
  15. data/vendor/pygments-main/AUTHORS +41 -3
  16. data/vendor/pygments-main/CHANGES +132 -5
  17. data/vendor/pygments-main/LICENSE +1 -1
  18. data/vendor/pygments-main/Makefile +1 -1
  19. data/vendor/pygments-main/REVISION +1 -1
  20. data/vendor/pygments-main/docs/generate.py +1 -1
  21. data/vendor/pygments-main/docs/src/api.txt +1 -1
  22. data/vendor/pygments-main/docs/src/index.txt +1 -1
  23. data/vendor/pygments-main/docs/src/integrate.txt +5 -0
  24. data/vendor/pygments-main/docs/src/java.txt +70 -0
  25. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +52 -0
  26. data/vendor/pygments-main/external/autopygmentize +64 -0
  27. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  28. data/vendor/pygments-main/external/markdown-processor.py +2 -2
  29. data/vendor/pygments-main/external/moin-parser.py +1 -1
  30. data/vendor/pygments-main/external/rst-directive-old.py +1 -1
  31. data/vendor/pygments-main/external/rst-directive.py +1 -1
  32. data/vendor/pygments-main/pygmentize +1 -1
  33. data/vendor/pygments-main/pygments/__init__.py +2 -2
  34. data/vendor/pygments-main/pygments/cmdline.py +14 -6
  35. data/vendor/pygments-main/pygments/console.py +1 -1
  36. data/vendor/pygments-main/pygments/filter.py +1 -1
  37. data/vendor/pygments-main/pygments/filters/__init__.py +3 -4
  38. data/vendor/pygments-main/pygments/formatter.py +4 -1
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +3 -3
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  42. data/vendor/pygments-main/pygments/formatters/html.py +73 -2
  43. data/vendor/pygments-main/pygments/formatters/img.py +2 -2
  44. data/vendor/pygments-main/pygments/formatters/latex.py +9 -9
  45. data/vendor/pygments-main/pygments/formatters/other.py +1 -3
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  47. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  50. data/vendor/pygments-main/pygments/lexer.py +78 -10
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +13 -2
  52. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  55. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_mapping.py +92 -36
  57. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  58. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +2 -2
  59. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +4 -3
  60. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  61. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +11 -0
  62. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  63. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  64. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -3
  65. data/vendor/pygments-main/pygments/lexers/agile.py +525 -38
  66. data/vendor/pygments-main/pygments/lexers/asm.py +45 -7
  67. data/vendor/pygments-main/pygments/lexers/compiled.py +1257 -425
  68. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  69. data/vendor/pygments-main/pygments/lexers/dotnet.py +97 -62
  70. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  71. data/vendor/pygments-main/pygments/lexers/functional.py +931 -32
  72. data/vendor/pygments-main/pygments/lexers/github.py +206 -3
  73. data/vendor/pygments-main/pygments/lexers/hdl.py +3 -3
  74. data/vendor/pygments-main/pygments/lexers/jvm.py +309 -44
  75. data/vendor/pygments-main/pygments/lexers/math.py +876 -30
  76. data/vendor/pygments-main/pygments/lexers/other.py +956 -517
  77. data/vendor/pygments-main/pygments/lexers/parsers.py +85 -2
  78. data/vendor/pygments-main/pygments/lexers/shell.py +81 -18
  79. data/vendor/pygments-main/pygments/lexers/special.py +1 -1
  80. data/vendor/pygments-main/pygments/lexers/sql.py +2 -2
  81. data/vendor/pygments-main/pygments/lexers/templates.py +119 -8
  82. data/vendor/pygments-main/pygments/lexers/text.py +155 -15
  83. data/vendor/pygments-main/pygments/lexers/web.py +1578 -397
  84. data/vendor/pygments-main/pygments/modeline.py +40 -0
  85. data/vendor/pygments-main/pygments/plugin.py +1 -1
  86. data/vendor/pygments-main/pygments/scanner.py +1 -1
  87. data/vendor/pygments-main/pygments/style.py +1 -1
  88. data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
  89. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  90. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  91. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  92. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  93. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  94. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  95. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  96. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  97. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  98. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  99. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  100. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  101. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  102. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  103. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  104. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  105. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  106. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  107. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  108. data/vendor/pygments-main/pygments/token.py +1 -1
  109. data/vendor/pygments-main/pygments/unistring.py +36 -26
  110. data/vendor/pygments-main/pygments/util.py +46 -1
  111. data/vendor/pygments-main/scripts/check_sources.py +2 -2
  112. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +2 -0
  113. data/vendor/pygments-main/scripts/find_codetags.py +1 -1
  114. data/vendor/pygments-main/scripts/find_error.py +5 -6
  115. data/vendor/pygments-main/setup.cfg +1 -0
  116. data/vendor/pygments-main/setup.py +6 -4
  117. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  118. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  119. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  120. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  121. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  122. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  123. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  124. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  125. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  126. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  127. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  128. data/vendor/pygments-main/tests/examplefiles/classes.dylan +89 -4
  129. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  130. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  131. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  132. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  133. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  134. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  135. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  136. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  137. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  138. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  139. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  140. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  141. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  142. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  143. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  144. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  145. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  146. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  147. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  148. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  149. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  150. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  151. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  152. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  153. data/vendor/pygments-main/tests/examplefiles/http_request_example +2 -1
  154. data/vendor/pygments-main/tests/examplefiles/http_response_example +4 -2
  155. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  156. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  157. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  158. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  159. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  160. data/vendor/pygments-main/tests/examplefiles/matlab_sample +5 -2
  161. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  162. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  163. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  164. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  165. data/vendor/pygments-main/tests/examplefiles/objc_example.m +7 -0
  166. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  167. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  168. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  169. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  170. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  171. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  172. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  173. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  174. data/vendor/pygments-main/tests/examplefiles/test.R +149 -115
  175. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  176. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  177. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  178. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  179. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  180. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  181. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  182. data/vendor/pygments-main/tests/examplefiles/type.lisp +16 -0
  183. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  184. data/vendor/pygments-main/tests/old_run.py +1 -1
  185. data/vendor/pygments-main/tests/run.py +3 -2
  186. data/vendor/pygments-main/tests/support/tags +36 -0
  187. data/vendor/pygments-main/tests/test_basic_api.py +4 -3
  188. data/vendor/pygments-main/tests/test_clexer.py +1 -1
  189. data/vendor/pygments-main/tests/test_cmdline.py +1 -1
  190. data/vendor/pygments-main/tests/test_examplefiles.py +3 -1
  191. data/vendor/pygments-main/tests/test_html_formatter.py +17 -1
  192. data/vendor/pygments-main/tests/test_latex_formatter.py +1 -1
  193. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  194. data/vendor/pygments-main/tests/test_perllexer.py +1 -1
  195. data/vendor/pygments-main/tests/test_regexlexer.py +1 -1
  196. data/vendor/pygments-main/tests/test_token.py +1 -1
  197. data/vendor/pygments-main/tests/test_using_api.py +1 -1
  198. data/vendor/pygments-main/tests/test_util.py +22 -3
  199. metadata +84 -16
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c9e666c39dc7808836454fedca53b08cebb0b2c1
4
+ data.tar.gz: 1f3aa26080fdf52b1c7a310b2ad907441ace89cb
5
+ SHA512:
6
+ metadata.gz: acb7ac600833fc8367fa96691172d62fb5f123701f82dfdb5e2e32c296b2ca047c211d580bfd9c5d3781f8f90152f53cc4acc8ebe28c8ece1cbc135cfa8f53ca
7
+ data.tar.gz: ac813b3fcd1e709a8d07d2a957e8717aafaebdae7dca6fc505d47fac5ab640e64d0ef4ca7ece56106256ebe3f83a2c4d678def8f2380f47f8ccc8bd38efdc48d
data/.gitignore CHANGED
@@ -4,3 +4,4 @@ lib/pygments_ext.*
4
4
  tmp
5
5
  pkg
6
6
  *.pyc
7
+ *.gem
@@ -0,0 +1,71 @@
1
+ changelog
2
+ ===========
3
+
4
+ Version 0.5.4 (Nov 3, 2013)
5
+ -----------------------------
6
+
7
+ * Update lexers file
8
+
9
+ Version 0.5.3 (Sep 17, 2013)
10
+ -----------------------------
11
+
12
+ * Fixes for Slash lexer
13
+ * Improve highlighting for Slash lexer
14
+ * Upgrade to latest pygments (1.7, changes summary follows. See pygments changelog for details)
15
+ * Add Clay lexer
16
+ * Add Perl 6 lexer
17
+ * Add Swig lexer
18
+ * Add nesC lexer
19
+ * Add BlitzBasic lexer
20
+ * Add EBNF lexer
21
+ * Add Igor Pro lexer
22
+ * Add Rexx lexer
23
+ * Add Agda lexer
24
+ * Recognize vim modelines
25
+ * Improve Python 3 lexer
26
+ * Improve Opa lexer
27
+ * Improve Julia lexer
28
+ * Improve Lasso lexer
29
+ * Improve Objective C/C++ lexer
30
+ * Improve Ruby lexer
31
+ * Improve Stan lexer
32
+ * Improve JavaScript lexer
33
+ * Improve HTTP lexer
34
+ * Improve Koka lexer
35
+ * Improve Haxe lexer
36
+ * Improve Prolog lexer
37
+ * Improve F# lexer
38
+
39
+ Version 0.5.2 (July 17, 2013)
40
+ -----------------------------
41
+
42
+ * Add Slash lexer
43
+
44
+ Version 0.5.1 (June 25, 2013)
45
+ -----------------------------
46
+
47
+ * Ensure compatability across distros by detecting if `python2` is available
48
+
49
+ Version 0.5.0 (Apr 13, 2013)
50
+ -----------------------------
51
+
52
+ * Use #rstrip to fix table mode bug
53
+
54
+ Version 0.4.2 (Feb 25, 2013)
55
+ -----------------------------
56
+
57
+ * Add new lexers, including custom lexers
58
+
59
+ Version 0.3.7 (Jan 2, 2013)
60
+ -----------------------------
61
+
62
+ * Fixed missing custom lexers
63
+ * Added syntax highlighting for Hxml
64
+
65
+ Version 0.3.4 (Dec 28, 2012)
66
+ -----------------------------
67
+
68
+ * Add support for Windows
69
+ * Add MIT license
70
+
71
+
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
  gemspec
data/LICENSE ADDED
@@ -0,0 +1,17 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) Ted Nyman and Aman Gupta, 2012-2013
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
5
+ associated documentation files (the "Software"), to deal in the Software without restriction,
6
+ including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
7
+ and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
8
+ subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all copies or substantial
11
+ portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
14
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
15
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
16
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
17
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -14,7 +14,8 @@ pygments.rb request.
14
14
 
15
15
  ## system requirements
16
16
 
17
- - Python 2.5+
17
+ - Python 2.5, Python 2.6, or Python 2.7. You can always use Python 2.x from a `virtualenv` if
18
+ your default Python install is 3.x.
18
19
 
19
20
  ## usage
20
21
 
@@ -49,6 +50,12 @@ Pygments.css
49
50
  Pygments.css('.highlight')
50
51
  ```
51
52
 
53
+ To use a specific pygments style, pass the `:style` option to the `#css` method:
54
+
55
+ ``` ruby
56
+ Pygments.css(:style => "monokai")
57
+ ```
58
+
52
59
  Other Pygments high-level API methods are also available.
53
60
  These methods return arrays detailing all the available lexers, formatters,
54
61
  and styles.
@@ -66,6 +73,8 @@ To use a custom pygments installation, specify the path to
66
73
  Pygments.start("/path/to/pygments")
67
74
  ```
68
75
 
76
+ If you'd like logging, set the environmental variable `MENTOS_LOG` to a file path for your logfile.
77
+
69
78
  ## benchmarks
70
79
 
71
80
 
@@ -87,5 +96,23 @@ Pygments.start("/path/to/pygments")
87
96
  pygments popen (process already started) 0.010000 0.000000 0.010000 ( 0.676515)
88
97
  pygments popen (process already started 2) 0.000000 0.010000 0.010000 ( 0.674189)
89
98
 
99
+ ## license
100
+
101
+ The MIT License (MIT)
102
+
103
+ Copyright (c) Ted Nyman and Aman Gupta, 2012-2013
104
+
105
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
106
+ associated documentation files (the "Software"), to deal in the Software without restriction,
107
+ including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
108
+ and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
109
+ subject to the following conditions:
90
110
 
111
+ The above copyright notice and this permission notice shall be included in all copies or substantial
112
+ portions of the Software.
91
113
 
114
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
115
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
116
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
117
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
118
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -9,9 +9,7 @@ task :default => :test
9
9
 
10
10
  GEMSPEC = eval(File.read('pygments.rb.gemspec'))
11
11
 
12
- require 'rake/gempackagetask'
13
- Rake::GemPackageTask.new(GEMSPEC) do |pkg|
14
- end
12
+ require 'rubygems/package_task'
15
13
 
16
14
  # ==========================================================
17
15
  # Testing
@@ -33,14 +31,13 @@ end
33
31
 
34
32
  # ==========================================================
35
33
  # Cache lexers
36
- # # ==========================================================
34
+ # ==========================================================
37
35
 
38
36
  # Write all the lexers to a file for easy lookup
39
37
  task :lexers do
40
38
  sh "ruby cache-lexers.rb"
41
39
  end
42
40
 
43
-
44
41
  # ==========================================================
45
42
  # Vendor
46
43
  # ==========================================================
data/lexers CHANGED
Binary file
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python2
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- import sys, re, os, signal, resource
4
+ import sys, re, os, signal
5
5
  import traceback
6
6
  if 'PYGMENTS_PATH' in os.environ:
7
7
  sys.path.insert(0, os.environ['PYGMENTS_PATH'])
@@ -320,20 +320,27 @@ def main():
320
320
  # Signal handlers to trap signals.
321
321
  signal.signal(signal.SIGINT, _signal_handler)
322
322
  signal.signal(signal.SIGTERM, _signal_handler)
323
- signal.signal(signal.SIGHUP, _signal_handler)
323
+ if sys.platform != "win32":
324
+ signal.signal(signal.SIGHUP, _signal_handler)
324
325
 
325
326
  mentos = Mentos()
326
327
 
327
- # close fd's inherited from the ruby parent
328
- maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
329
- if maxfd == resource.RLIM_INFINITY:
330
- maxfd = 65536
331
-
332
- for fd in range(3, maxfd):
333
- try:
334
- os.close(fd)
335
- except:
336
- pass
328
+ if sys.platform == "win32":
329
+ # disable CRLF
330
+ import msvcrt
331
+ msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
332
+ else:
333
+ # close fd's inherited from the ruby parent
334
+ import resource
335
+ maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
336
+ if maxfd == resource.RLIM_INFINITY:
337
+ maxfd = 65536
338
+
339
+ for fd in range(3, maxfd):
340
+ try:
341
+ os.close(fd)
342
+ except:
343
+ pass
337
344
 
338
345
  mentos.start()
339
346
 
@@ -20,12 +20,13 @@ module Pygments
20
20
  # Python process that talks to the Pygments library. We'll talk back and
21
21
  # forth across this pipe.
22
22
  def start(pygments_path = File.expand_path('../../../vendor/pygments-main/', __FILE__))
23
+ is_windows = RUBY_PLATFORM =~ /mswin|mingw/
23
24
  begin
24
- @log = Logger.new(ENV['MENTOS_LOG'] ||= '/dev/null')
25
+ @log = Logger.new(ENV['MENTOS_LOG'] ||= is_windows ? 'NUL:' : '/dev/null')
25
26
  @log.level = Logger::INFO
26
27
  @log.datetime_format = "%Y-%m-%d %H:%M "
27
28
  rescue
28
- @log = Logger.new('/dev/null')
29
+ @log = Logger.new(is_windows ? 'NUL:' : '/dev/null')
29
30
  end
30
31
 
31
32
  ENV['PYGMENTS_PATH'] = pygments_path
@@ -35,10 +36,21 @@ module Pygments
35
36
 
36
37
  # A pipe to the mentos python process. #popen4 gives us
37
38
  # the pid and three IO objects to write and read.
38
- @pid, @in, @out, @err = popen4(File.expand_path('../mentos.py', __FILE__))
39
+ script = "#{python_binary} #{File.expand_path('../mentos.py', __FILE__)}"
40
+ @pid, @in, @out, @err = popen4(script)
39
41
  @log.info "[#{Time.now.iso8601}] Starting pid #{@pid.to_s} with fd #{@out.to_i.to_s}."
40
42
  end
41
43
 
44
+ # Detect a suitable Python binary to use. We can't just use `python2`
45
+ # because apparently some old versions of Debian only have `python` or
46
+ # something like that.
47
+ def python_binary
48
+ @python_binary ||= begin
49
+ `which python2`
50
+ $?.success? ? "python2" : "python"
51
+ end
52
+ end
53
+
42
54
  # Stop the child process by issuing a kill -9.
43
55
  #
44
56
  # We then call waitpid() with the pid, which waits for that particular
@@ -126,6 +138,10 @@ module Pygments
126
138
  :filenames => lxr[2],
127
139
  :mimetypes => lxr[3]
128
140
  }
141
+ hash["Augeas"] = {:name=>"Augeas", :aliases=>["augeas"], :filenames=>["*.aug"], :mimetypes=>[]}
142
+ hash["dasm16"] = {:name=>"dasm16", :aliases=>["DASM16"], :filenames=>["*.dasm16", "*.dasm"], :mimetypes=>['text/x-dasm16']}
143
+ hash["Puppet"] = {:name=>"Puppet", :aliases=>["puppet"], :filenames=>["*.pp"], :mimetypes=>[]}
144
+ hash["Slash"] = {:name=>"Slash", :aliases=>["slash"], :filenames=>["*.sl"], :mimetypes=>[]}
129
145
  hash
130
146
  end
131
147
  end
@@ -358,7 +374,8 @@ module Pygments
358
374
  unless method == :lexer_name_for || method == :highlight || method == :css
359
375
  res = Yajl.load(res, :symbolize_keys => true)
360
376
  end
361
- res = res[0..-2]
377
+ res = res.rstrip if res.class == String
378
+ res
362
379
  end
363
380
 
364
381
  # Convert a text header into JSON for easy access.
@@ -1,3 +1,3 @@
1
1
  module Pygments
2
- VERSION = '0.3.2'
2
+ VERSION = '0.5.4'
3
3
  end
@@ -9,6 +9,8 @@ Gem::Specification.new do |s|
9
9
 
10
10
  s.homepage = 'http://github.com/gitlabhq/pygments.rb'
11
11
  s.has_rdoc = false
12
+ s.license = 'MIT'
13
+
12
14
 
13
15
  s.authors = ['Aman Gupta', 'Ted Nyman']
14
16
  s.email = ['aman@tmm1.net']
@@ -17,10 +17,22 @@ class PygmentsHighlightTest < Test::Unit::TestCase
17
17
  assert_equal '<div class', code[0..9]
18
18
  end
19
19
 
20
+ def test_full_html_highlight
21
+ code = P.highlight(RUBY_CODE)
22
+ assert_match '<span class="c1">#!/usr/bin/ruby</span>', code
23
+ assert_equal "<div class=\"highlight\"><pre><span class=\"c1\">#!/usr/bin/ruby</span>\n<span class=\"nb\">puts</span> <span class=\"s1\">&#39;foo&#39;</span>\n</pre></div>", code
24
+ end
25
+
26
+ def test_full_table_highlight
27
+ code = P.highlight(RUBY_CODE, :options => {:linenos => true})
28
+ assert_match '<span class="c1">#!/usr/bin/ruby</span>', code
29
+ assert_equal "<table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre>1\n2</pre></div></td><td class=\"code\"><div class=\"highlight\"><pre><span class=\"c1\">#!/usr/bin/ruby</span>\n<span class=\"nb\">puts</span> <span class=\"s1\">&#39;foo&#39;</span>\n</pre></div>\n</td></tr></table>", code
30
+ end
31
+
20
32
  def test_highlight_works_with_larger_files
21
33
  code = P.highlight(REDIS_CODE)
22
34
  assert_match 'used_memory_peak_human', code
23
- assert_equal 454107, code.bytesize.to_i
35
+ assert_equal 455203, code.bytesize.to_i
24
36
  end
25
37
 
26
38
  def test_returns_nil_on_timeout
@@ -210,7 +222,6 @@ class PygmentsLexerClassTest < Test::Unit::TestCase
210
222
  assert_equal P::Lexer['Groff'], P::Lexer.find_by_extname('.1')
211
223
  assert_equal P::Lexer['Groff'], P::Lexer.find_by_extname('.3')
212
224
  assert_equal P::Lexer['C'], P::Lexer.find_by_extname('.c')
213
- assert_equal P::Lexer['C'], P::Lexer.find_by_extname('.h')
214
225
  assert_equal P::Lexer['Python'], P::Lexer.find_by_extname('.py')
215
226
  assert_equal P::Lexer['Java'], P::Lexer.find_by_extname('.java')
216
227
  end
@@ -10,11 +10,12 @@
10
10
  """
11
11
  import re
12
12
 
13
- from pygments.lexer import RegexLexer, include, bygroups, using, DelegatingLexer
13
+ from pygments.lexer import RegexLexer, ExtendedRegexLexer, include, bygroups, \
14
+ using, DelegatingLexer
14
15
  from pygments.token import Text, Name, Number, String, Comment, Punctuation, \
15
- Other, Keyword, Operator, Literal
16
+ Other, Keyword, Operator, Literal, Whitespace
16
17
 
17
- __all__ = ['Dasm16Lexer', 'PuppetLexer', 'AugeasLexer']
18
+ __all__ = ['Dasm16Lexer', 'PuppetLexer', 'AugeasLexer', "TOMLLexer", "SlashLexer"]
18
19
 
19
20
  class Dasm16Lexer(RegexLexer):
20
21
  """
@@ -360,3 +361,205 @@ class AugeasLexer(RegexLexer):
360
361
  (r'[\*\)]', Comment.Multiline)
361
362
  ],
362
363
  }
364
+
365
+ class TOMLLexer(RegexLexer):
366
+ """
367
+ Lexer for TOML, a simple language for config files
368
+ """
369
+
370
+ name = 'TOML'
371
+ aliases = ['toml']
372
+ filenames = ['*.toml']
373
+
374
+ tokens = {
375
+ 'root': [
376
+
377
+ # Basics, comments, strings
378
+ (r'\s+', Text),
379
+ (r'#.*?$', Comment.Single),
380
+ (r'"(\\\\|\\"|[^"])*"', String),
381
+ (r'(true|false)$', Keyword.Constant),
382
+ ('[a-zA-Z_][a-zA-Z0-9_\-]*', Name),
383
+
384
+ # Datetime
385
+ (r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z', Number.Integer),
386
+
387
+ # Numbers
388
+ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
389
+ (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
390
+ (r'\-?\d+', Number.Integer),
391
+
392
+ # Punctuation
393
+ (r'[]{}:(),;[]', Punctuation),
394
+ (r'\.', Punctuation),
395
+
396
+ # Operators
397
+ (r'=', Operator)
398
+
399
+ ]
400
+ }
401
+
402
+ class SlashLanguageLexer(ExtendedRegexLexer):
403
+ _nkw = r'(?=[^a-zA-Z_0-9])'
404
+
405
+ def move_state(new_state):
406
+ return ("#pop", new_state)
407
+
408
+ def right_angle_bracket(lexer, match, ctx):
409
+ if len(ctx.stack) > 1 and ctx.stack[-2] == "string":
410
+ ctx.stack.pop()
411
+ yield match.start(), String.Interpol, u"}"
412
+ ctx.pos = match.end()
413
+ pass
414
+
415
+ tokens = {
416
+ "root": [
417
+ (r"<%=", Comment.Preproc, move_state("slash")),
418
+ (r"<%!!", Comment.Preproc, move_state("slash")),
419
+ (r"<%#.*?%>", Comment.Multiline),
420
+ (r"<%", Comment.Preproc, move_state("slash")),
421
+ (r".|\n", Other),
422
+ ],
423
+ "string": [
424
+ (r"\\", String.Escape, move_state("string_e")),
425
+ (r"\"", String, move_state("slash")),
426
+ (r"#\{", String.Interpol, "slash"),
427
+ (r'.|\n', String),
428
+ ],
429
+ "string_e": [
430
+ (r'n', String.Escape, move_state("string")),
431
+ (r't', String.Escape, move_state("string")),
432
+ (r'r', String.Escape, move_state("string")),
433
+ (r'e', String.Escape, move_state("string")),
434
+ (r'x[a-fA-F0-9]{2}', String.Escape, move_state("string")),
435
+ (r'.', String.Escape, move_state("string")),
436
+ ],
437
+ "regexp": [
438
+ (r'}[a-z]*', String.Regex, move_state("slash")),
439
+ (r'\\(.|\n)', String.Regex),
440
+ (r'{', String.Regex, "regexp_r"),
441
+ (r'.|\n', String.Regex),
442
+ ],
443
+ "regexp_r": [
444
+ (r'}[a-z]*', String.Regex, "#pop"),
445
+ (r'\\(.|\n)', String.Regex),
446
+ (r'{', String.Regex, "regexp_r"),
447
+ ],
448
+ "slash": [
449
+ (r"%>", Comment.Preproc, move_state("root")),
450
+ (r"\"", String, move_state("string")),
451
+ (r"'[a-zA-Z0-9_]+", String),
452
+ (r'%r{', String.Regex, move_state("regexp")),
453
+ (r'/\*.*?\*/', Comment.Multiline),
454
+ (r"(#|//).*?\n", Comment.Single),
455
+ (r'-?[0-9]+e[+-]?[0-9]+', Number.Float),
456
+ (r'-?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?', Number.Float),
457
+ (r'-?[0-9]+', Number.Integer),
458
+ (r'nil'+_nkw, Name.Builtin),
459
+ (r'true'+_nkw, Name.Builtin),
460
+ (r'false'+_nkw, Name.Builtin),
461
+ (r'self'+_nkw, Name.Builtin),
462
+ (r'(class)(\s+)([A-Z][a-zA-Z0-9_\']*)',
463
+ bygroups(Keyword, Whitespace, Name.Class)),
464
+ (r'class'+_nkw, Keyword),
465
+ (r'extends'+_nkw, Keyword),
466
+ (r'(def)(\s+)(self)(\s*)(\.)(\s*)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
467
+ bygroups(Keyword, Whitespace, Name.Builtin, Whitespace, Punctuation, Whitespace, Name.Function)),
468
+ (r'(def)(\s+)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)',
469
+ bygroups(Keyword, Whitespace, Name.Function)),
470
+ (r'def'+_nkw, Keyword),
471
+ (r'if'+_nkw, Keyword),
472
+ (r'elsif'+_nkw, Keyword),
473
+ (r'else'+_nkw, Keyword),
474
+ (r'unless'+_nkw, Keyword),
475
+ (r'for'+_nkw, Keyword),
476
+ (r'in'+_nkw, Keyword),
477
+ (r'while'+_nkw, Keyword),
478
+ (r'until'+_nkw, Keyword),
479
+ (r'and'+_nkw, Keyword),
480
+ (r'or'+_nkw, Keyword),
481
+ (r'not'+_nkw, Keyword),
482
+ (r'lambda'+_nkw, Keyword),
483
+ (r'try'+_nkw, Keyword),
484
+ (r'catch'+_nkw, Keyword),
485
+ (r'return'+_nkw, Keyword),
486
+ (r'next'+_nkw, Keyword),
487
+ (r'last'+_nkw, Keyword),
488
+ (r'throw'+_nkw, Keyword),
489
+ (r'use'+_nkw, Keyword),
490
+ (r'switch'+_nkw, Keyword),
491
+ (r'\\', Keyword),
492
+ (r'λ', Keyword),
493
+ (r'__FILE__'+_nkw, Name.Builtin.Pseudo),
494
+ (r'__LINE__'+_nkw, Name.Builtin.Pseudo),
495
+ (r'[A-Z][a-zA-Z0-9_\']*'+_nkw, Name.Constant),
496
+ (r'[a-z_][a-zA-Z0-9_\']*'+_nkw, Name),
497
+ (r'@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Instance),
498
+ (r'@@[a-z_][a-zA-Z0-9_\']*'+_nkw, Name.Variable.Class),
499
+ (r'\(', Punctuation),
500
+ (r'\)', Punctuation),
501
+ (r'\[', Punctuation),
502
+ (r'\]', Punctuation),
503
+ (r'\{', Punctuation),
504
+ (r'\}', right_angle_bracket),
505
+ (r';', Punctuation),
506
+ (r',', Punctuation),
507
+ (r'<<=', Operator),
508
+ (r'>>=', Operator),
509
+ (r'<<', Operator),
510
+ (r'>>', Operator),
511
+ (r'==', Operator),
512
+ (r'!=', Operator),
513
+ (r'=>', Operator),
514
+ (r'=', Operator),
515
+ (r'<=>', Operator),
516
+ (r'<=', Operator),
517
+ (r'>=', Operator),
518
+ (r'<', Operator),
519
+ (r'>', Operator),
520
+ (r'\+\+', Operator),
521
+ (r'\+=', Operator),
522
+ (r'-=', Operator),
523
+ (r'\*\*=', Operator),
524
+ (r'\*=', Operator),
525
+ (r'\*\*', Operator),
526
+ (r'\*', Operator),
527
+ (r'/=', Operator),
528
+ (r'\+', Operator),
529
+ (r'-', Operator),
530
+ (r'/', Operator),
531
+ (r'%=', Operator),
532
+ (r'%', Operator),
533
+ (r'^=', Operator),
534
+ (r'&&=', Operator),
535
+ (r'&=', Operator),
536
+ (r'&&', Operator),
537
+ (r'&', Operator),
538
+ (r'\|\|=', Operator),
539
+ (r'\|=', Operator),
540
+ (r'\|\|', Operator),
541
+ (r'\|', Operator),
542
+ (r'!', Operator),
543
+ (r'\.\.\.', Operator),
544
+ (r'\.\.', Operator),
545
+ (r'\.', Operator),
546
+ (r'::', Operator),
547
+ (r':', Operator),
548
+ (r'(\s|\n)+', Whitespace),
549
+ (r'[a-z_][a-zA-Z0-9_\']*', Name.Variable),
550
+ ],
551
+ }
552
+
553
+ class SlashLexer(DelegatingLexer):
554
+ """
555
+ Lexer for the Slash programming language.
556
+ """
557
+
558
+ name = 'Slash'
559
+ aliases = ['slash']
560
+ filenames = ['*.sl']
561
+
562
+ def __init__(self, **options):
563
+ from pygments.lexers.web import HtmlLexer
564
+ super(SlashLexer, self).__init__(HtmlLexer, SlashLanguageLexer, **options)
565
+