rouge 3.21.0 → 4.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -11
  3. data/lib/rouge/cli.rb +55 -22
  4. data/lib/rouge/demos/brainfuck +1 -1
  5. data/lib/rouge/demos/brightscript +1 -1
  6. data/lib/rouge/demos/bsl +1 -1
  7. data/lib/rouge/demos/cfscript +1 -1
  8. data/lib/rouge/demos/cisco_ios +19 -0
  9. data/lib/rouge/demos/coq +4 -1
  10. data/lib/rouge/demos/csvs +1 -1
  11. data/lib/rouge/demos/dafny +16 -0
  12. data/lib/rouge/demos/datastudio +0 -1
  13. data/lib/rouge/demos/ecl +0 -1
  14. data/lib/rouge/demos/email +11 -0
  15. data/lib/rouge/demos/erlang +1 -1
  16. data/lib/rouge/demos/fluent +13 -0
  17. data/lib/rouge/demos/fsharp +1 -1
  18. data/lib/rouge/demos/glsl +1 -1
  19. data/lib/rouge/demos/haxe +0 -1
  20. data/lib/rouge/demos/idris +13 -0
  21. data/lib/rouge/demos/isabelle +16 -0
  22. data/lib/rouge/demos/j +12 -0
  23. data/lib/rouge/demos/lean +8 -0
  24. data/lib/rouge/demos/meson +10 -0
  25. data/lib/rouge/demos/nesasm +1 -1
  26. data/lib/rouge/demos/nial +35 -0
  27. data/lib/rouge/demos/ocl +4 -0
  28. data/lib/rouge/demos/opentype_feature_file +0 -1
  29. data/lib/rouge/demos/plsql +2 -0
  30. data/lib/rouge/demos/postscript +9 -0
  31. data/lib/rouge/demos/rescript +26 -0
  32. data/lib/rouge/demos/rml +33 -0
  33. data/lib/rouge/demos/smarty +0 -1
  34. data/lib/rouge/demos/stan +13 -0
  35. data/lib/rouge/demos/stata +14 -0
  36. data/lib/rouge/demos/systemd +4 -0
  37. data/lib/rouge/demos/syzlang +15 -0
  38. data/lib/rouge/demos/syzprog +8 -0
  39. data/lib/rouge/formatter.rb +2 -2
  40. data/lib/rouge/formatters/html.rb +12 -11
  41. data/lib/rouge/formatters/html_inline.rb +0 -1
  42. data/lib/rouge/formatters/html_line_highlighter.rb +24 -0
  43. data/lib/rouge/formatters/html_line_table.rb +1 -3
  44. data/lib/rouge/formatters/html_linewise.rb +2 -3
  45. data/lib/rouge/guessers/disambiguation.rb +15 -0
  46. data/lib/rouge/lexer.rb +40 -22
  47. data/lib/rouge/lexers/apache/keywords.rb +1 -1
  48. data/lib/rouge/lexers/apex.rb +9 -7
  49. data/lib/rouge/lexers/apple_script.rb +1 -1
  50. data/lib/rouge/lexers/batchfile.rb +2 -1
  51. data/lib/rouge/lexers/c.rb +12 -2
  52. data/lib/rouge/lexers/ceylon.rb +2 -2
  53. data/lib/rouge/lexers/cisco_ios.rb +83 -0
  54. data/lib/rouge/lexers/cmake.rb +10 -0
  55. data/lib/rouge/lexers/console.rb +1 -1
  56. data/lib/rouge/lexers/coq.rb +132 -68
  57. data/lib/rouge/lexers/cpp.rb +13 -6
  58. data/lib/rouge/lexers/crystal.rb +14 -9
  59. data/lib/rouge/lexers/csharp.rb +13 -12
  60. data/lib/rouge/lexers/cypher.rb +8 -0
  61. data/lib/rouge/lexers/dafny.rb +128 -0
  62. data/lib/rouge/lexers/dart.rb +10 -9
  63. data/lib/rouge/lexers/diff.rb +14 -4
  64. data/lib/rouge/lexers/docker.rb +5 -1
  65. data/lib/rouge/lexers/dot.rb +1 -0
  66. data/lib/rouge/lexers/eex.rb +2 -2
  67. data/lib/rouge/lexers/eiffel.rb +0 -1
  68. data/lib/rouge/lexers/elm.rb +5 -5
  69. data/lib/rouge/lexers/email.rb +39 -0
  70. data/lib/rouge/lexers/factor.rb +2 -2
  71. data/lib/rouge/lexers/fluent.rb +74 -0
  72. data/lib/rouge/lexers/ghc_cmm.rb +1 -1
  73. data/lib/rouge/lexers/ghc_core.rb +3 -2
  74. data/lib/rouge/lexers/gherkin/keywords.rb +5 -5
  75. data/lib/rouge/lexers/graphql.rb +1 -1
  76. data/lib/rouge/lexers/groovy.rb +1 -1
  77. data/lib/rouge/lexers/hack.rb +1 -1
  78. data/lib/rouge/lexers/handlebars.rb +1 -1
  79. data/lib/rouge/lexers/haxe.rb +30 -11
  80. data/lib/rouge/lexers/hcl.rb +4 -2
  81. data/lib/rouge/lexers/http.rb +10 -4
  82. data/lib/rouge/lexers/hylang.rb +0 -1
  83. data/lib/rouge/lexers/idris.rb +210 -0
  84. data/lib/rouge/lexers/irb.rb +7 -1
  85. data/lib/rouge/lexers/isabelle.rb +251 -0
  86. data/lib/rouge/lexers/isbl.rb +2 -2
  87. data/lib/rouge/lexers/j.rb +244 -0
  88. data/lib/rouge/lexers/janet.rb +9 -8
  89. data/lib/rouge/lexers/java.rb +1 -0
  90. data/lib/rouge/lexers/javascript.rb +39 -3
  91. data/lib/rouge/lexers/jinja.rb +10 -10
  92. data/lib/rouge/lexers/jsl.rb +25 -14
  93. data/lib/rouge/lexers/jsonnet.rb +4 -3
  94. data/lib/rouge/lexers/jsp.rb +2 -3
  95. data/lib/rouge/lexers/jsx.rb +1 -2
  96. data/lib/rouge/lexers/kotlin.rb +11 -5
  97. data/lib/rouge/lexers/lasso/keywords.rb +1 -1
  98. data/lib/rouge/lexers/lean.rb +164 -0
  99. data/lib/rouge/lexers/liquid.rb +164 -164
  100. data/lib/rouge/lexers/llvm/keywords.rb +3 -3
  101. data/lib/rouge/lexers/lua/keywords.rb +1 -1
  102. data/lib/rouge/lexers/make.rb +25 -16
  103. data/lib/rouge/lexers/mathematica/keywords.rb +1 -1
  104. data/lib/rouge/lexers/matlab/keywords.rb +1 -1
  105. data/lib/rouge/lexers/matlab.rb +3 -2
  106. data/lib/rouge/lexers/meson.rb +159 -0
  107. data/lib/rouge/lexers/mosel.rb +0 -4
  108. data/lib/rouge/lexers/nial.rb +166 -0
  109. data/lib/rouge/lexers/ocaml/common.rb +1 -1
  110. data/lib/rouge/lexers/ocl.rb +84 -0
  111. data/lib/rouge/lexers/openedge.rb +581 -376
  112. data/lib/rouge/lexers/opentype_feature_file.rb +0 -1
  113. data/lib/rouge/lexers/pascal.rb +2 -1
  114. data/lib/rouge/lexers/perl.rb +6 -4
  115. data/lib/rouge/lexers/php/keywords.rb +1 -1
  116. data/lib/rouge/lexers/php.rb +278 -128
  117. data/lib/rouge/lexers/plsql.rb +578 -0
  118. data/lib/rouge/lexers/postscript.rb +93 -0
  119. data/lib/rouge/lexers/powershell.rb +44 -28
  120. data/lib/rouge/lexers/praat.rb +200 -113
  121. data/lib/rouge/lexers/prometheus.rb +0 -1
  122. data/lib/rouge/lexers/python.rb +28 -9
  123. data/lib/rouge/lexers/q.rb +1 -2
  124. data/lib/rouge/lexers/reasonml.rb +6 -5
  125. data/lib/rouge/lexers/rescript.rb +119 -0
  126. data/lib/rouge/lexers/rml.rb +142 -0
  127. data/lib/rouge/lexers/ruby.rb +3 -2
  128. data/lib/rouge/lexers/rust.rb +91 -24
  129. data/lib/rouge/lexers/shell.rb +6 -2
  130. data/lib/rouge/lexers/smarty.rb +1 -1
  131. data/lib/rouge/lexers/sparql.rb +5 -4
  132. data/lib/rouge/lexers/sqf/keywords.rb +1 -1
  133. data/lib/rouge/lexers/sql.rb +7 -7
  134. data/lib/rouge/lexers/stan.rb +451 -0
  135. data/lib/rouge/lexers/stata.rb +165 -0
  136. data/lib/rouge/lexers/supercollider.rb +0 -1
  137. data/lib/rouge/lexers/swift.rb +32 -16
  138. data/lib/rouge/lexers/systemd.rb +34 -0
  139. data/lib/rouge/lexers/syzlang.rb +317 -0
  140. data/lib/rouge/lexers/syzprog.rb +122 -0
  141. data/lib/rouge/lexers/tap.rb +0 -1
  142. data/lib/rouge/lexers/terraform.rb +0 -8
  143. data/lib/rouge/lexers/toml.rb +20 -13
  144. data/lib/rouge/lexers/tsx.rb +7 -1
  145. data/lib/rouge/lexers/tulip.rb +0 -1
  146. data/lib/rouge/lexers/twig.rb +9 -9
  147. data/lib/rouge/lexers/typescript/common.rb +4 -1
  148. data/lib/rouge/lexers/typescript.rb +2 -2
  149. data/lib/rouge/lexers/vala.rb +1 -1
  150. data/lib/rouge/lexers/velocity.rb +1 -1
  151. data/lib/rouge/lexers/viml/keywords.rb +1 -1
  152. data/lib/rouge/lexers/wollok.rb +6 -3
  153. data/lib/rouge/lexers/xquery.rb +1 -1
  154. data/lib/rouge/lexers/yaml.rb +2 -4
  155. data/lib/rouge/regex_lexer.rb +56 -1
  156. data/lib/rouge/themes/base16.rb +1 -0
  157. data/lib/rouge/themes/bw.rb +1 -0
  158. data/lib/rouge/themes/colorful.rb +1 -0
  159. data/lib/rouge/themes/github.rb +137 -61
  160. data/lib/rouge/themes/gruvbox.rb +2 -0
  161. data/lib/rouge/themes/igor_pro.rb +1 -0
  162. data/lib/rouge/themes/magritte.rb +1 -0
  163. data/lib/rouge/themes/monokai.rb +1 -0
  164. data/lib/rouge/themes/pastie.rb +1 -0
  165. data/lib/rouge/themes/thankful_eyes.rb +1 -0
  166. data/lib/rouge/themes/tulip.rb +1 -0
  167. data/lib/rouge/version.rb +1 -1
  168. data/lib/rouge.rb +4 -5
  169. data/rouge.gemspec +1 -1
  170. metadata +48 -9
  171. data/lib/rouge/demos/solidity +0 -13
  172. data/lib/rouge/lexers/solidity.rb +0 -185
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rouge
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.21.0
4
+ version: 4.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeanine Adkisson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-14 00:00:00.000000000 Z
11
+ date: 2023-07-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
14
14
  email:
@@ -44,6 +44,7 @@ files:
44
44
  - lib/rouge/demos/c
45
45
  - lib/rouge/demos/ceylon
46
46
  - lib/rouge/demos/cfscript
47
+ - lib/rouge/demos/cisco_ios
47
48
  - lib/rouge/demos/clean
48
49
  - lib/rouge/demos/clojure
49
50
  - lib/rouge/demos/cmake
@@ -62,6 +63,7 @@ files:
62
63
  - lib/rouge/demos/cypher
63
64
  - lib/rouge/demos/cython
64
65
  - lib/rouge/demos/d
66
+ - lib/rouge/demos/dafny
65
67
  - lib/rouge/demos/dart
66
68
  - lib/rouge/demos/datastudio
67
69
  - lib/rouge/demos/diff
@@ -73,11 +75,13 @@ files:
73
75
  - lib/rouge/demos/eiffel
74
76
  - lib/rouge/demos/elixir
75
77
  - lib/rouge/demos/elm
78
+ - lib/rouge/demos/email
76
79
  - lib/rouge/demos/epp
77
80
  - lib/rouge/demos/erb
78
81
  - lib/rouge/demos/erlang
79
82
  - lib/rouge/demos/escape
80
83
  - lib/rouge/demos/factor
84
+ - lib/rouge/demos/fluent
81
85
  - lib/rouge/demos/fortran
82
86
  - lib/rouge/demos/freefem
83
87
  - lib/rouge/demos/fsharp
@@ -103,12 +107,15 @@ files:
103
107
  - lib/rouge/demos/http
104
108
  - lib/rouge/demos/hylang
105
109
  - lib/rouge/demos/idlang
110
+ - lib/rouge/demos/idris
106
111
  - lib/rouge/demos/igorpro
107
112
  - lib/rouge/demos/ini
108
113
  - lib/rouge/demos/io
109
114
  - lib/rouge/demos/irb
110
115
  - lib/rouge/demos/irb_output
116
+ - lib/rouge/demos/isabelle
111
117
  - lib/rouge/demos/isbl
118
+ - lib/rouge/demos/j
112
119
  - lib/rouge/demos/janet
113
120
  - lib/rouge/demos/java
114
121
  - lib/rouge/demos/javascript
@@ -122,6 +129,7 @@ files:
122
129
  - lib/rouge/demos/julia
123
130
  - lib/rouge/demos/kotlin
124
131
  - lib/rouge/demos/lasso
132
+ - lib/rouge/demos/lean
125
133
  - lib/rouge/demos/liquid
126
134
  - lib/rouge/demos/literate_coffeescript
127
135
  - lib/rouge/demos/literate_haskell
@@ -137,6 +145,7 @@ files:
137
145
  - lib/rouge/demos/mason
138
146
  - lib/rouge/demos/mathematica
139
147
  - lib/rouge/demos/matlab
148
+ - lib/rouge/demos/meson
140
149
  - lib/rouge/demos/minizinc
141
150
  - lib/rouge/demos/moonscript
142
151
  - lib/rouge/demos/mosel
@@ -145,11 +154,13 @@ files:
145
154
  - lib/rouge/demos/nasm
146
155
  - lib/rouge/demos/nesasm
147
156
  - lib/rouge/demos/nginx
157
+ - lib/rouge/demos/nial
148
158
  - lib/rouge/demos/nim
149
159
  - lib/rouge/demos/nix
150
160
  - lib/rouge/demos/objective_c
151
161
  - lib/rouge/demos/objective_cpp
152
162
  - lib/rouge/demos/ocaml
163
+ - lib/rouge/demos/ocl
153
164
  - lib/rouge/demos/openedge
154
165
  - lib/rouge/demos/opentype_feature_file
155
166
  - lib/rouge/demos/pascal
@@ -157,7 +168,9 @@ files:
157
168
  - lib/rouge/demos/php
158
169
  - lib/rouge/demos/plaintext
159
170
  - lib/rouge/demos/plist
171
+ - lib/rouge/demos/plsql
160
172
  - lib/rouge/demos/pony
173
+ - lib/rouge/demos/postscript
161
174
  - lib/rouge/demos/powershell
162
175
  - lib/rouge/demos/praat
163
176
  - lib/rouge/demos/prolog
@@ -172,6 +185,8 @@ files:
172
185
  - lib/rouge/demos/racket
173
186
  - lib/rouge/demos/reasonml
174
187
  - lib/rouge/demos/rego
188
+ - lib/rouge/demos/rescript
189
+ - lib/rouge/demos/rml
175
190
  - lib/rouge/demos/robot_framework
176
191
  - lib/rouge/demos/ruby
177
192
  - lib/rouge/demos/rust
@@ -188,13 +203,17 @@ files:
188
203
  - lib/rouge/demos/smalltalk
189
204
  - lib/rouge/demos/smarty
190
205
  - lib/rouge/demos/sml
191
- - lib/rouge/demos/solidity
192
206
  - lib/rouge/demos/sparql
193
207
  - lib/rouge/demos/sqf
194
208
  - lib/rouge/demos/sql
195
209
  - lib/rouge/demos/ssh
210
+ - lib/rouge/demos/stan
211
+ - lib/rouge/demos/stata
196
212
  - lib/rouge/demos/supercollider
197
213
  - lib/rouge/demos/swift
214
+ - lib/rouge/demos/systemd
215
+ - lib/rouge/demos/syzlang
216
+ - lib/rouge/demos/syzprog
198
217
  - lib/rouge/demos/tap
199
218
  - lib/rouge/demos/tcl
200
219
  - lib/rouge/demos/terraform
@@ -226,6 +245,7 @@ files:
226
245
  - lib/rouge/formatters/html.rb
227
246
  - lib/rouge/formatters/html_inline.rb
228
247
  - lib/rouge/formatters/html_legacy.rb
248
+ - lib/rouge/formatters/html_line_highlighter.rb
229
249
  - lib/rouge/formatters/html_line_table.rb
230
250
  - lib/rouge/formatters/html_linewise.rb
231
251
  - lib/rouge/formatters/html_pygments.rb
@@ -265,6 +285,7 @@ files:
265
285
  - lib/rouge/lexers/c.rb
266
286
  - lib/rouge/lexers/ceylon.rb
267
287
  - lib/rouge/lexers/cfscript.rb
288
+ - lib/rouge/lexers/cisco_ios.rb
268
289
  - lib/rouge/lexers/clean.rb
269
290
  - lib/rouge/lexers/clojure.rb
270
291
  - lib/rouge/lexers/cmake.rb
@@ -283,6 +304,7 @@ files:
283
304
  - lib/rouge/lexers/cypher.rb
284
305
  - lib/rouge/lexers/cython.rb
285
306
  - lib/rouge/lexers/d.rb
307
+ - lib/rouge/lexers/dafny.rb
286
308
  - lib/rouge/lexers/dart.rb
287
309
  - lib/rouge/lexers/datastudio.rb
288
310
  - lib/rouge/lexers/diff.rb
@@ -294,11 +316,13 @@ files:
294
316
  - lib/rouge/lexers/eiffel.rb
295
317
  - lib/rouge/lexers/elixir.rb
296
318
  - lib/rouge/lexers/elm.rb
319
+ - lib/rouge/lexers/email.rb
297
320
  - lib/rouge/lexers/epp.rb
298
321
  - lib/rouge/lexers/erb.rb
299
322
  - lib/rouge/lexers/erlang.rb
300
323
  - lib/rouge/lexers/escape.rb
301
324
  - lib/rouge/lexers/factor.rb
325
+ - lib/rouge/lexers/fluent.rb
302
326
  - lib/rouge/lexers/fortran.rb
303
327
  - lib/rouge/lexers/freefem.rb
304
328
  - lib/rouge/lexers/fsharp.rb
@@ -325,12 +349,15 @@ files:
325
349
  - lib/rouge/lexers/http.rb
326
350
  - lib/rouge/lexers/hylang.rb
327
351
  - lib/rouge/lexers/idlang.rb
352
+ - lib/rouge/lexers/idris.rb
328
353
  - lib/rouge/lexers/igorpro.rb
329
354
  - lib/rouge/lexers/ini.rb
330
355
  - lib/rouge/lexers/io.rb
331
356
  - lib/rouge/lexers/irb.rb
357
+ - lib/rouge/lexers/isabelle.rb
332
358
  - lib/rouge/lexers/isbl.rb
333
359
  - lib/rouge/lexers/isbl/builtins.rb
360
+ - lib/rouge/lexers/j.rb
334
361
  - lib/rouge/lexers/janet.rb
335
362
  - lib/rouge/lexers/java.rb
336
363
  - lib/rouge/lexers/javascript.rb
@@ -345,6 +372,7 @@ files:
345
372
  - lib/rouge/lexers/kotlin.rb
346
373
  - lib/rouge/lexers/lasso.rb
347
374
  - lib/rouge/lexers/lasso/keywords.rb
375
+ - lib/rouge/lexers/lean.rb
348
376
  - lib/rouge/lexers/liquid.rb
349
377
  - lib/rouge/lexers/literate_coffeescript.rb
350
378
  - lib/rouge/lexers/literate_haskell.rb
@@ -365,6 +393,7 @@ files:
365
393
  - lib/rouge/lexers/matlab.rb
366
394
  - lib/rouge/lexers/matlab/builtins.rb
367
395
  - lib/rouge/lexers/matlab/keywords.rb
396
+ - lib/rouge/lexers/meson.rb
368
397
  - lib/rouge/lexers/minizinc.rb
369
398
  - lib/rouge/lexers/moonscript.rb
370
399
  - lib/rouge/lexers/mosel.rb
@@ -373,6 +402,7 @@ files:
373
402
  - lib/rouge/lexers/nasm.rb
374
403
  - lib/rouge/lexers/nesasm.rb
375
404
  - lib/rouge/lexers/nginx.rb
405
+ - lib/rouge/lexers/nial.rb
376
406
  - lib/rouge/lexers/nim.rb
377
407
  - lib/rouge/lexers/nix.rb
378
408
  - lib/rouge/lexers/objective_c.rb
@@ -380,6 +410,7 @@ files:
380
410
  - lib/rouge/lexers/objective_cpp.rb
381
411
  - lib/rouge/lexers/ocaml.rb
382
412
  - lib/rouge/lexers/ocaml/common.rb
413
+ - lib/rouge/lexers/ocl.rb
383
414
  - lib/rouge/lexers/openedge.rb
384
415
  - lib/rouge/lexers/opentype_feature_file.rb
385
416
  - lib/rouge/lexers/pascal.rb
@@ -388,7 +419,9 @@ files:
388
419
  - lib/rouge/lexers/php/keywords.rb
389
420
  - lib/rouge/lexers/plain_text.rb
390
421
  - lib/rouge/lexers/plist.rb
422
+ - lib/rouge/lexers/plsql.rb
391
423
  - lib/rouge/lexers/pony.rb
424
+ - lib/rouge/lexers/postscript.rb
392
425
  - lib/rouge/lexers/powershell.rb
393
426
  - lib/rouge/lexers/praat.rb
394
427
  - lib/rouge/lexers/prolog.rb
@@ -403,6 +436,8 @@ files:
403
436
  - lib/rouge/lexers/racket.rb
404
437
  - lib/rouge/lexers/reasonml.rb
405
438
  - lib/rouge/lexers/rego.rb
439
+ - lib/rouge/lexers/rescript.rb
440
+ - lib/rouge/lexers/rml.rb
406
441
  - lib/rouge/lexers/robot_framework.rb
407
442
  - lib/rouge/lexers/ruby.rb
408
443
  - lib/rouge/lexers/rust.rb
@@ -420,14 +455,18 @@ files:
420
455
  - lib/rouge/lexers/smalltalk.rb
421
456
  - lib/rouge/lexers/smarty.rb
422
457
  - lib/rouge/lexers/sml.rb
423
- - lib/rouge/lexers/solidity.rb
424
458
  - lib/rouge/lexers/sparql.rb
425
459
  - lib/rouge/lexers/sqf.rb
426
460
  - lib/rouge/lexers/sqf/keywords.rb
427
461
  - lib/rouge/lexers/sql.rb
428
462
  - lib/rouge/lexers/ssh.rb
463
+ - lib/rouge/lexers/stan.rb
464
+ - lib/rouge/lexers/stata.rb
429
465
  - lib/rouge/lexers/supercollider.rb
430
466
  - lib/rouge/lexers/swift.rb
467
+ - lib/rouge/lexers/systemd.rb
468
+ - lib/rouge/lexers/syzlang.rb
469
+ - lib/rouge/lexers/syzprog.rb
431
470
  - lib/rouge/lexers/tap.rb
432
471
  - lib/rouge/lexers/tcl.rb
433
472
  - lib/rouge/lexers/terraform.rb
@@ -489,7 +528,7 @@ metadata:
489
528
  changelog_uri: https://github.com/rouge-ruby/rouge/blob/master/CHANGELOG.md
490
529
  documentation_uri: https://rouge-ruby.github.io/docs/
491
530
  source_code_uri: https://github.com/rouge-ruby/rouge
492
- post_install_message:
531
+ post_install_message:
493
532
  rdoc_options: []
494
533
  require_paths:
495
534
  - lib
@@ -497,15 +536,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
497
536
  requirements:
498
537
  - - ">="
499
538
  - !ruby/object:Gem::Version
500
- version: '2.0'
539
+ version: '2.7'
501
540
  required_rubygems_version: !ruby/object:Gem::Requirement
502
541
  requirements:
503
542
  - - ">="
504
543
  - !ruby/object:Gem::Version
505
544
  version: '0'
506
545
  requirements: []
507
- rubygems_version: 3.1.2
508
- signing_key:
546
+ rubygems_version: 3.4.13
547
+ signing_key:
509
548
  specification_version: 4
510
549
  summary: A pure-ruby colorizer based on pygments
511
550
  test_files: []
@@ -1,13 +0,0 @@
1
- pragma solidity ~0.4.15;
2
-
3
- interface IMirror {
4
- function reflect() external payable returns(bool /* ain't I pretty?.. */);
5
- }
6
-
7
- contract Mirror is IMirror {
8
- event logMessage(address indexed sender, uint256 value, uint256 gas, bytes data);
9
-
10
- function () { // no funny stuff
11
- revert();
12
- }
13
- }
@@ -1,185 +0,0 @@
1
- # -*- coding: utf-8 -*- #
2
-
3
- module Rouge
4
- module Lexers
5
- class Solidity < RegexLexer
6
- title "Solidity"
7
- desc "Solidity, an Ethereum smart contract programming language"
8
- tag 'solidity'
9
- filenames '*.sol', '*.solidity'
10
- mimetypes 'text/x-solidity'
11
-
12
- # optional comment or whitespace
13
- ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
14
- id = /[a-zA-Z$_][\w$_]*/
15
-
16
- def self.detect?(text)
17
- return true if text.start_with? 'pragma solidity'
18
- end
19
-
20
- # TODO: seperate by "type"
21
- def self.keywords
22
- @keywords ||= Set.new %w(
23
- abstract anonymous as assembly break catch calldata constant
24
- constructor continue contract do delete else emit enum event
25
- external fallback for function hex if indexed interface
26
- internal import is library mapping memory modifier new
27
- override payable public pure pragma private receive return
28
- returns storage struct throw try type using var view virtual
29
- while
30
- )
31
- end
32
-
33
- def self.builtins
34
- return @builtins if @builtins
35
-
36
- @builtins = Set.new %w(
37
- now
38
- false true
39
- balance now selector super this
40
- blockhash gasleft
41
- assert require revert
42
- selfdestruct suicide
43
- call callcode delegatecall
44
- send transfer
45
- addmod ecrecover keccak256 mulmod sha256 sha3 ripemd160
46
- )
47
-
48
- # TODO: use (currently shadowed by catch-all in :statements)
49
- abi = %w(decode encode encodePacked encodeWithSelector encodeWithSignature)
50
- @builtins.merge( abi.map { |i| "abi.#{i}" } )
51
- block = %w(coinbase difficulty gaslimit hash number timestamp)
52
- @builtins.merge( block.map { |i| "block.#{i}" } )
53
- msg = %w(data gas sender sig value)
54
- @builtins.merge( msg.map { |i| "msg.#{i}" } )
55
- tx = %w(gasprice origin)
56
- @builtins.merge( tx.map { |i| "tx.#{i}" } )
57
- end
58
-
59
- def self.constants
60
- @constants ||= Set.new %w(
61
- wei finney szabo ether
62
- seconds minutes hours days weeks years
63
- )
64
- end
65
-
66
- def self.keywords_type
67
- @keywords_type ||= Set.new %w(
68
- address bool byte bytes int string uint
69
- )
70
- end
71
-
72
- def self.reserved
73
- @reserved ||= Set.new %w(
74
- alias after apply auto case copyof default define final fixed
75
- immutable implements in inline let macro match mutable null of
76
- partial promise reference relocatable sealed sizeof static
77
- supports switch typedef typeof ufixed unchecked
78
- )
79
- end
80
-
81
- start { push :bol }
82
-
83
- state :expr_bol do
84
- mixin :inline_whitespace
85
-
86
- rule(//) { pop! }
87
- end
88
-
89
- # :expr_bol is the same as :bol but without labels, since
90
- # labels can only appear at the beginning of a statement.
91
- state :bol do
92
- mixin :expr_bol
93
- end
94
-
95
- # TODO: natspec in comments
96
- state :inline_whitespace do
97
- rule %r/[ \t\r]+/, Text
98
- rule %r/\\\n/, Text # line continuation
99
- rule %r(/\*), Comment::Multiline, :comment_multi
100
- end
101
-
102
- state :whitespace do
103
- rule %r/\n+/m, Text, :bol
104
- rule %r(//(\\.|.)*?\n), Comment::Single, :bol
105
- mixin :inline_whitespace
106
- end
107
-
108
- state :expr_whitespace do
109
- rule %r/\n+/m, Text, :expr_bol
110
- mixin :whitespace
111
- end
112
-
113
- state :statements do
114
- mixin :whitespace
115
- rule %r/(hex)?\"/, Str, :string_double
116
- rule %r/(hex)?\'/, Str, :string_single
117
- rule %r('(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
118
- rule %r/\d\d*\.\d+([eE]\d+)?/i, Num::Float
119
- rule %r/0x[0-9a-f]+/i, Num::Hex
120
- rule %r/\d+([eE]\d+)?/i, Num::Integer
121
- rule %r(\*/), Error
122
- rule %r([~!%^&*+=\|?:<>/-]), Operator
123
- rule %r/[()\[\],.]/, Punctuation
124
- rule %r/u?fixed\d+x\d+/, Keyword::Reserved
125
- rule %r/bytes\d+/, Keyword::Type
126
- rule %r/u?int\d+/, Keyword::Type
127
- rule id do |m|
128
- name = m[0]
129
-
130
- if self.class.keywords.include? name
131
- token Keyword
132
- elsif self.class.builtins.include? name
133
- token Name::Builtin
134
- elsif self.class.constants.include? name
135
- token Keyword::Constant
136
- elsif self.class.keywords_type.include? name
137
- token Keyword::Type
138
- elsif self.class.reserved.include? name
139
- token Keyword::Reserved
140
- else
141
- token Name
142
- end
143
- end
144
- end
145
-
146
- state :root do
147
- mixin :expr_whitespace
148
- rule(//) { push :statement }
149
- # TODO: function declarations
150
- end
151
-
152
- state :statement do
153
- rule %r/;/, Punctuation, :pop!
154
- mixin :expr_whitespace
155
- mixin :statements
156
- rule %r/[{}]/, Punctuation
157
- end
158
-
159
- state :string_common do
160
- rule %r/\\(u[a-fA-F0-9]{4}|x..|[^x])/, Str::Escape
161
- rule %r/[^\\\"\'\n]+/, Str
162
- rule %r/\\\n/, Str # line continuation
163
- rule %r/\\/, Str # stray backslash
164
- end
165
-
166
- state :string_double do
167
- mixin :string_common
168
- rule %r/\"/, Str, :pop!
169
- rule %r/\'/, Str
170
- end
171
-
172
- state :string_single do
173
- mixin :string_common
174
- rule %r/\'/, Str, :pop!
175
- rule %r/\"/, Str
176
- end
177
-
178
- state :comment_multi do
179
- rule %r(\*/), Comment::Multiline, :pop!
180
- rule %r([^*/]+), Comment::Multiline
181
- rule %r([*/]), Comment::Multiline
182
- end
183
- end
184
- end
185
- end