rouge 3.3.0 → 3.8.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.
- checksums.yaml +5 -5
- data/Gemfile +15 -3
- data/lib/rouge.rb +49 -41
- data/lib/rouge/cli.rb +64 -15
- data/lib/rouge/demos/ada +26 -0
- data/lib/rouge/demos/armasm +12 -0
- data/lib/rouge/demos/batchfile +3 -0
- data/lib/rouge/demos/bbcbasic +6 -0
- data/lib/rouge/demos/bpf +7 -0
- data/lib/rouge/demos/brainfuck +5 -0
- data/lib/rouge/demos/cmhg +8 -0
- data/lib/rouge/demos/cuda +11 -0
- data/lib/rouge/demos/cython +6 -0
- data/lib/rouge/demos/epp +4 -0
- data/lib/rouge/demos/escape +3 -0
- data/lib/rouge/demos/gdscript +18 -0
- data/lib/rouge/demos/hocon +8 -0
- data/lib/rouge/demos/magik +6 -0
- data/lib/rouge/demos/mason +22 -0
- data/lib/rouge/demos/msgtrans +4 -0
- data/lib/rouge/demos/openedge +4 -0
- data/lib/rouge/demos/opentype_feature_file +6 -0
- data/lib/rouge/demos/plist +1 -132
- data/lib/rouge/demos/powershell +12 -48
- data/lib/rouge/demos/reasonml +12 -0
- data/lib/rouge/demos/sas +13 -0
- data/lib/rouge/demos/supercollider +11 -0
- data/lib/rouge/demos/xojo +14 -0
- data/lib/rouge/demos/xpath +2 -0
- data/lib/rouge/demos/xquery +22 -0
- data/lib/rouge/formatter.rb +37 -1
- data/lib/rouge/formatters/html.rb +20 -2
- data/lib/rouge/formatters/html_line_table.rb +53 -0
- data/lib/rouge/formatters/html_linewise.rb +6 -11
- data/lib/rouge/formatters/html_table.rb +20 -31
- data/lib/rouge/formatters/terminal256.rb +1 -0
- data/lib/rouge/formatters/tex.rb +92 -0
- data/lib/rouge/guessers/disambiguation.rb +25 -0
- data/lib/rouge/guessers/glob_mapping.rb +1 -1
- data/lib/rouge/guessers/modeline.rb +1 -1
- data/lib/rouge/guessers/source.rb +1 -1
- data/lib/rouge/lexer.rb +64 -14
- data/lib/rouge/lexers/abap.rb +11 -11
- data/lib/rouge/lexers/actionscript.rb +34 -34
- data/lib/rouge/lexers/ada.rb +162 -0
- data/lib/rouge/lexers/apache.rb +8 -8
- data/lib/rouge/lexers/apple_script.rb +15 -14
- data/lib/rouge/lexers/armasm.rb +145 -0
- data/lib/rouge/lexers/awk.rb +25 -25
- data/lib/rouge/lexers/batchfile.rb +164 -0
- data/lib/rouge/lexers/bbcbasic.rb +112 -0
- data/lib/rouge/lexers/biml.rb +4 -4
- data/lib/rouge/lexers/bpf.rb +104 -0
- data/lib/rouge/lexers/brainfuck.rb +53 -0
- data/lib/rouge/lexers/bsl.rb +12 -12
- data/lib/rouge/lexers/c.rb +34 -57
- data/lib/rouge/lexers/ceylon.rb +6 -34
- data/lib/rouge/lexers/cfscript.rb +26 -26
- data/lib/rouge/lexers/clojure.rb +14 -14
- data/lib/rouge/lexers/cmake.rb +14 -14
- data/lib/rouge/lexers/cmhg.rb +34 -0
- data/lib/rouge/lexers/coffeescript.rb +43 -35
- data/lib/rouge/lexers/common_lisp.rb +37 -37
- data/lib/rouge/lexers/conf.rb +6 -6
- data/lib/rouge/lexers/console.rb +3 -3
- data/lib/rouge/lexers/coq.rb +18 -18
- data/lib/rouge/lexers/cpp.rb +12 -9
- data/lib/rouge/lexers/crystal.rb +70 -70
- data/lib/rouge/lexers/csharp.rb +28 -29
- data/lib/rouge/lexers/css.rb +23 -23
- data/lib/rouge/lexers/cuda.rb +35 -0
- data/lib/rouge/lexers/cython.rb +151 -0
- data/lib/rouge/lexers/d.rb +59 -59
- data/lib/rouge/lexers/dart.rb +33 -33
- data/lib/rouge/lexers/diff.rb +8 -4
- data/lib/rouge/lexers/digdag.rb +1 -1
- data/lib/rouge/lexers/docker.rb +11 -11
- data/lib/rouge/lexers/dot.rb +16 -16
- data/lib/rouge/lexers/eiffel.rb +20 -20
- data/lib/rouge/lexers/elixir.rb +34 -30
- data/lib/rouge/lexers/elm.rb +29 -29
- data/lib/rouge/lexers/epp.rb +51 -0
- data/lib/rouge/lexers/erb.rb +4 -4
- data/lib/rouge/lexers/escape.rb +58 -0
- data/lib/rouge/lexers/factor.rb +40 -40
- data/lib/rouge/lexers/fortran.rb +32 -32
- data/lib/rouge/lexers/fsharp.rb +30 -30
- data/lib/rouge/lexers/gdscript.rb +171 -0
- data/lib/rouge/lexers/gherkin.rb +16 -14
- data/lib/rouge/lexers/glsl.rb +1 -5
- data/lib/rouge/lexers/go.rb +2 -2
- data/lib/rouge/lexers/graphql.rb +77 -60
- data/lib/rouge/lexers/groovy.rb +23 -25
- data/lib/rouge/lexers/hack.rb +1 -1
- data/lib/rouge/lexers/haml.rb +25 -29
- data/lib/rouge/lexers/handlebars.rb +31 -20
- data/lib/rouge/lexers/haskell.rb +66 -65
- data/lib/rouge/lexers/hcl.rb +25 -25
- data/lib/rouge/lexers/hocon.rb +86 -0
- data/lib/rouge/lexers/html.rb +32 -31
- data/lib/rouge/lexers/http.rb +4 -4
- data/lib/rouge/lexers/hylang.rb +14 -14
- data/lib/rouge/lexers/idlang.rb +32 -32
- data/lib/rouge/lexers/igorpro.rb +31 -31
- data/lib/rouge/lexers/ini.rb +12 -12
- data/lib/rouge/lexers/io.rb +7 -7
- data/lib/rouge/lexers/irb.rb +5 -5
- data/lib/rouge/lexers/java.rb +28 -24
- data/lib/rouge/lexers/javascript.rb +57 -61
- data/lib/rouge/lexers/jinja.rb +34 -20
- data/lib/rouge/lexers/json.rb +50 -11
- data/lib/rouge/lexers/json_doc.rb +2 -2
- data/lib/rouge/lexers/jsonnet.rb +18 -18
- data/lib/rouge/lexers/jsp.rb +30 -30
- data/lib/rouge/lexers/jsx.rb +16 -16
- data/lib/rouge/lexers/julia.rb +181 -58
- data/lib/rouge/lexers/kotlin.rb +14 -7
- data/lib/rouge/lexers/lasso.rb +50 -50
- data/lib/rouge/lexers/liquid.rb +76 -53
- data/lib/rouge/lexers/literate_coffeescript.rb +2 -2
- data/lib/rouge/lexers/literate_haskell.rb +5 -5
- data/lib/rouge/lexers/llvm.rb +23 -16
- data/lib/rouge/lexers/lua.rb +3 -3
- data/lib/rouge/lexers/m68k.rb +18 -19
- data/lib/rouge/lexers/magik.rb +127 -0
- data/lib/rouge/lexers/make.rb +56 -34
- data/lib/rouge/lexers/markdown.rb +55 -38
- data/lib/rouge/lexers/mason.rb +115 -0
- data/lib/rouge/lexers/mathematica.rb +11 -11
- data/lib/rouge/lexers/matlab.rb +23 -16
- data/lib/rouge/lexers/moonscript.rb +3 -3
- data/lib/rouge/lexers/mosel.rb +63 -63
- data/lib/rouge/lexers/msgtrans.rb +26 -0
- data/lib/rouge/lexers/mxml.rb +18 -18
- data/lib/rouge/lexers/nasm.rb +24 -25
- data/lib/rouge/lexers/nginx.rb +14 -14
- data/lib/rouge/lexers/nim.rb +3 -2
- data/lib/rouge/lexers/nix.rb +43 -43
- data/lib/rouge/lexers/objective_c.rb +43 -48
- data/lib/rouge/lexers/ocaml.rb +28 -64
- data/lib/rouge/lexers/ocaml/common.rb +53 -0
- data/lib/rouge/lexers/openedge.rb +429 -0
- data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
- data/lib/rouge/lexers/pascal.rb +4 -4
- data/lib/rouge/lexers/perl.rb +98 -68
- data/lib/rouge/lexers/php.rb +66 -44
- data/lib/rouge/lexers/php/builtins.rb +181 -174
- data/lib/rouge/lexers/plain_text.rb +1 -1
- data/lib/rouge/lexers/plist.rb +14 -14
- data/lib/rouge/lexers/pony.rb +19 -19
- data/lib/rouge/lexers/powershell.rb +184 -638
- data/lib/rouge/lexers/praat.rb +75 -75
- data/lib/rouge/lexers/prolog.rb +26 -20
- data/lib/rouge/lexers/prometheus.rb +30 -30
- data/lib/rouge/lexers/properties.rb +12 -12
- data/lib/rouge/lexers/protobuf.rb +22 -22
- data/lib/rouge/lexers/puppet.rb +32 -32
- data/lib/rouge/lexers/python.rb +52 -52
- data/lib/rouge/lexers/q.rb +12 -12
- data/lib/rouge/lexers/qml.rb +12 -12
- data/lib/rouge/lexers/r.rb +12 -13
- data/lib/rouge/lexers/racket.rb +22 -22
- data/lib/rouge/lexers/reasonml.rb +65 -0
- data/lib/rouge/lexers/ruby.rb +72 -70
- data/lib/rouge/lexers/rust.rb +38 -35
- data/lib/rouge/lexers/sas.rb +563 -0
- data/lib/rouge/lexers/sass.rb +8 -8
- data/lib/rouge/lexers/sass/common.rb +40 -40
- data/lib/rouge/lexers/scala.rb +63 -37
- data/lib/rouge/lexers/scheme.rb +18 -18
- data/lib/rouge/lexers/scss.rb +3 -3
- data/lib/rouge/lexers/sed.rb +30 -30
- data/lib/rouge/lexers/shell.rb +62 -53
- data/lib/rouge/lexers/sieve.rb +8 -8
- data/lib/rouge/lexers/slim.rb +26 -26
- data/lib/rouge/lexers/smalltalk.rb +33 -33
- data/lib/rouge/lexers/smarty.rb +19 -19
- data/lib/rouge/lexers/sml.rb +67 -67
- data/lib/rouge/lexers/sqf.rb +1 -1
- data/lib/rouge/lexers/sql.rb +21 -21
- data/lib/rouge/lexers/supercollider.rb +116 -0
- data/lib/rouge/lexers/swift.rb +46 -43
- data/lib/rouge/lexers/tap.rb +20 -20
- data/lib/rouge/lexers/tcl.rb +27 -27
- data/lib/rouge/lexers/terraform.rb +13 -13
- data/lib/rouge/lexers/tex.rb +19 -19
- data/lib/rouge/lexers/toml.rb +19 -19
- data/lib/rouge/lexers/tulip.rb +36 -36
- data/lib/rouge/lexers/turtle.rb +35 -38
- data/lib/rouge/lexers/vala.rb +18 -18
- data/lib/rouge/lexers/vb.rb +27 -27
- data/lib/rouge/lexers/verilog.rb +25 -27
- data/lib/rouge/lexers/vhdl.rb +11 -11
- data/lib/rouge/lexers/viml.rb +14 -14
- data/lib/rouge/lexers/vue.rb +9 -9
- data/lib/rouge/lexers/wollok.rb +26 -26
- data/lib/rouge/lexers/xml.rb +17 -21
- data/lib/rouge/lexers/xojo.rb +61 -0
- data/lib/rouge/lexers/xpath.rb +332 -0
- data/lib/rouge/lexers/xquery.rb +145 -0
- data/lib/rouge/lexers/yaml.rb +63 -61
- data/lib/rouge/plugins/redcarpet.rb +1 -1
- data/lib/rouge/regex_lexer.rb +26 -25
- data/lib/rouge/tex_theme_renderer.rb +132 -0
- data/lib/rouge/theme.rb +4 -0
- data/lib/rouge/themes/bw.rb +41 -0
- data/lib/rouge/themes/magritte.rb +78 -0
- data/lib/rouge/themes/monokai_sublime.rb +2 -1
- data/lib/rouge/themes/pastie.rb +1 -1
- data/lib/rouge/themes/thankful_eyes.rb +1 -1
- data/lib/rouge/themes/tulip.rb +1 -1
- data/lib/rouge/token.rb +30 -22
- data/lib/rouge/util.rb +2 -2
- data/lib/rouge/version.rb +1 -1
- data/rouge.gemspec +4 -3
- metadata +61 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4041f8ac950b427b35d8d3147b6d9aed3743655daaaf09f57d303932b11259a6
|
|
4
|
+
data.tar.gz: cddd94af18b0f7ba578fa4c57f75415233d5518095b29202a7c12afd2662b804
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68b649f1f965e5cd21fd722263bdff8720ba04119b8fff2245bb9c4178648d255362c3a18129c6724dd56893f777a518d1ff74ade223697530f5a6595d20f2aa
|
|
7
|
+
data.tar.gz: 182df2ef3e868eb95132022309db218e34f2cd19e9e874a7d119f6250db0971e7ba6fd28ddea2ebfa8fdb759504dfe8a8401e085e95386748c7a00de347fc5d9
|
data/Gemfile
CHANGED
|
@@ -4,25 +4,37 @@ source 'http://rubygems.org'
|
|
|
4
4
|
|
|
5
5
|
gemspec
|
|
6
6
|
|
|
7
|
-
gem 'bundler', '~> 1.15'
|
|
8
7
|
gem 'rake'
|
|
9
8
|
|
|
10
9
|
gem 'minitest', '>= 5.0'
|
|
11
10
|
gem 'minitest-power_assert'
|
|
12
11
|
|
|
12
|
+
gem 'parallel', '~> 1.13.0' if RUBY_VERSION < '2.2.0'
|
|
13
13
|
gem 'rubocop', '~> 0.49.1'
|
|
14
14
|
|
|
15
15
|
# don't try to install redcarpet under jruby
|
|
16
16
|
gem 'redcarpet', :platforms => :ruby
|
|
17
17
|
|
|
18
|
+
# Profiling
|
|
19
|
+
if RUBY_VERSION >= '2.3.0'
|
|
20
|
+
gem 'memory_profiler', :require => false
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Needed for a Rake task
|
|
24
|
+
gem 'git'
|
|
25
|
+
gem 'yard'
|
|
26
|
+
|
|
18
27
|
group :development do
|
|
19
28
|
gem 'pry'
|
|
20
29
|
|
|
21
30
|
# docs
|
|
22
|
-
gem 'yard'
|
|
23
31
|
gem 'github-markup'
|
|
24
32
|
|
|
25
33
|
# for visual tests
|
|
26
|
-
|
|
34
|
+
if RUBY_VERSION < '2.2.0'
|
|
35
|
+
gem 'sinatra', '~> 1.4.8'
|
|
36
|
+
else
|
|
37
|
+
gem 'sinatra'
|
|
38
|
+
end
|
|
27
39
|
gem 'shotgun'
|
|
28
40
|
end
|
data/lib/rouge.rb
CHANGED
|
@@ -34,51 +34,59 @@ module Rouge
|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
# mimic Kernel#require_relative API
|
|
38
|
+
def load_relative(path)
|
|
39
|
+
load File.join(__dir__, "#{path}.rb")
|
|
40
|
+
end
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
def lexer_dir(path = '')
|
|
43
|
+
File.join(__dir__, 'rouge', 'lexers', path)
|
|
44
|
+
end
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
load_relative 'rouge/version'
|
|
47
|
+
load_relative 'rouge/util'
|
|
48
|
+
load_relative 'rouge/text_analyzer'
|
|
49
|
+
load_relative 'rouge/token'
|
|
44
50
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
load_relative 'rouge/lexer'
|
|
52
|
+
load_relative 'rouge/regex_lexer'
|
|
53
|
+
load_relative 'rouge/template_lexer'
|
|
48
54
|
|
|
49
|
-
|
|
50
|
-
Dir.glob(lexers_dir.join('*.rb')).each do |f|
|
|
51
|
-
Rouge::Lexers.load_lexer(Pathname.new(f).relative_path_from(lexers_dir).to_s)
|
|
52
|
-
end
|
|
55
|
+
Dir.glob(lexer_dir('*rb')).each { |f| Rouge::Lexers.load_lexer(f.sub(lexer_dir, '')) }
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
load_relative 'rouge/guesser'
|
|
58
|
+
load_relative 'rouge/guessers/util'
|
|
59
|
+
load_relative 'rouge/guessers/glob_mapping'
|
|
60
|
+
load_relative 'rouge/guessers/modeline'
|
|
61
|
+
load_relative 'rouge/guessers/filename'
|
|
62
|
+
load_relative 'rouge/guessers/mimetype'
|
|
63
|
+
load_relative 'rouge/guessers/source'
|
|
64
|
+
load_relative 'rouge/guessers/disambiguation'
|
|
62
65
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
load_relative 'rouge/formatter'
|
|
67
|
+
load_relative 'rouge/formatters/html'
|
|
68
|
+
load_relative 'rouge/formatters/html_table'
|
|
69
|
+
load_relative 'rouge/formatters/html_pygments'
|
|
70
|
+
load_relative 'rouge/formatters/html_legacy'
|
|
71
|
+
load_relative 'rouge/formatters/html_linewise'
|
|
72
|
+
load_relative 'rouge/formatters/html_line_table'
|
|
73
|
+
load_relative 'rouge/formatters/html_inline'
|
|
74
|
+
load_relative 'rouge/formatters/terminal256'
|
|
75
|
+
load_relative 'rouge/formatters/tex'
|
|
76
|
+
load_relative 'rouge/formatters/null'
|
|
72
77
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
load_relative 'rouge/theme'
|
|
79
|
+
load_relative 'rouge/tex_theme_renderer'
|
|
80
|
+
load_relative 'rouge/themes/thankful_eyes'
|
|
81
|
+
load_relative 'rouge/themes/colorful'
|
|
82
|
+
load_relative 'rouge/themes/base16'
|
|
83
|
+
load_relative 'rouge/themes/github'
|
|
84
|
+
load_relative 'rouge/themes/igor_pro'
|
|
85
|
+
load_relative 'rouge/themes/monokai'
|
|
86
|
+
load_relative 'rouge/themes/molokai'
|
|
87
|
+
load_relative 'rouge/themes/monokai_sublime'
|
|
88
|
+
load_relative 'rouge/themes/gruvbox'
|
|
89
|
+
load_relative 'rouge/themes/tulip'
|
|
90
|
+
load_relative 'rouge/themes/pastie'
|
|
91
|
+
load_relative 'rouge/themes/bw'
|
|
92
|
+
load_relative 'rouge/themes/magritte'
|
data/lib/rouge/cli.rb
CHANGED
|
@@ -38,7 +38,7 @@ module Rouge
|
|
|
38
38
|
def self.doc
|
|
39
39
|
return enum_for(:doc) unless block_given?
|
|
40
40
|
|
|
41
|
-
yield %|usage: rougify [command] [args...]|
|
|
41
|
+
yield %|usage: rougify {global options} [command] [args...]|
|
|
42
42
|
yield %||
|
|
43
43
|
yield %|where <command> is one of:|
|
|
44
44
|
yield %| highlight #{Highlight.desc}|
|
|
@@ -48,6 +48,9 @@ module Rouge
|
|
|
48
48
|
yield %| guess #{Guess.desc}|
|
|
49
49
|
yield %| version #{Version.desc}|
|
|
50
50
|
yield %||
|
|
51
|
+
yield %|global options:|
|
|
52
|
+
yield %[ --require|-r <fname> require <fname> after loading rouge]
|
|
53
|
+
yield %||
|
|
51
54
|
yield %|See `rougify help <command>` for more info.|
|
|
52
55
|
end
|
|
53
56
|
|
|
@@ -62,18 +65,22 @@ module Rouge
|
|
|
62
65
|
def self.parse(argv=ARGV)
|
|
63
66
|
argv = normalize_syntax(argv)
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
while (head = argv.shift)
|
|
69
|
+
case head
|
|
70
|
+
when '-h', '--help', 'help', '-help'
|
|
71
|
+
return Help.parse(argv)
|
|
72
|
+
when '--require', '-r'
|
|
73
|
+
require argv.shift
|
|
74
|
+
else
|
|
75
|
+
break
|
|
76
|
+
end
|
|
77
|
+
end
|
|
66
78
|
|
|
67
|
-
klass = class_from_arg(
|
|
79
|
+
klass = class_from_arg(head)
|
|
68
80
|
return klass.parse(argv) if klass
|
|
69
81
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Help.parse(argv)
|
|
73
|
-
else
|
|
74
|
-
argv.unshift(mode) if mode
|
|
75
|
-
Highlight.parse(argv)
|
|
76
|
-
end
|
|
82
|
+
argv.unshift(head) if head
|
|
83
|
+
Highlight.parse(argv)
|
|
77
84
|
end
|
|
78
85
|
|
|
79
86
|
def initialize(options={})
|
|
@@ -91,7 +98,7 @@ module Rouge
|
|
|
91
98
|
case arg
|
|
92
99
|
when 'version', '--version', '-v'
|
|
93
100
|
Version
|
|
94
|
-
when 'help'
|
|
101
|
+
when 'help', nil
|
|
95
102
|
Help
|
|
96
103
|
when 'highlight', 'hi'
|
|
97
104
|
Highlight
|
|
@@ -186,6 +193,11 @@ module Rouge
|
|
|
186
193
|
yield %[]
|
|
187
194
|
yield %[--require|-r <filename> require a filename or library before]
|
|
188
195
|
yield %[ highlighting]
|
|
196
|
+
yield %[]
|
|
197
|
+
yield %[--escape allow the use of escapes between <! and !>]
|
|
198
|
+
yield %[]
|
|
199
|
+
yield %[--escape-with <l> <r> allow the use of escapes between custom]
|
|
200
|
+
yield %[ delimiters. implies --escape]
|
|
189
201
|
end
|
|
190
202
|
|
|
191
203
|
def self.parse(argv)
|
|
@@ -218,6 +230,10 @@ module Rouge
|
|
|
218
230
|
opts[:css_class] = argv.shift
|
|
219
231
|
when '--lexer-opts', '-L'
|
|
220
232
|
opts[:lexer_opts] = parse_cgi(argv.shift)
|
|
233
|
+
when '--escape'
|
|
234
|
+
opts[:escape] = ['<!', '!>']
|
|
235
|
+
when '--escape-with'
|
|
236
|
+
opts[:escape] = [argv.shift, argv.shift]
|
|
221
237
|
when /^--/
|
|
222
238
|
error! "unknown option #{arg.inspect}"
|
|
223
239
|
else
|
|
@@ -244,11 +260,23 @@ module Rouge
|
|
|
244
260
|
)
|
|
245
261
|
end
|
|
246
262
|
|
|
263
|
+
def raw_lexer
|
|
264
|
+
lexer_class.new(@lexer_opts)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
def escape_lexer
|
|
268
|
+
Rouge::Lexers::Escape.new(
|
|
269
|
+
start: @escape[0],
|
|
270
|
+
end: @escape[1],
|
|
271
|
+
lang: raw_lexer,
|
|
272
|
+
)
|
|
273
|
+
end
|
|
274
|
+
|
|
247
275
|
def lexer
|
|
248
|
-
@lexer ||=
|
|
276
|
+
@lexer ||= @escape ? escape_lexer : raw_lexer
|
|
249
277
|
end
|
|
250
278
|
|
|
251
|
-
attr_reader :input_file, :lexer_name, :mimetype, :formatter
|
|
279
|
+
attr_reader :input_file, :lexer_name, :mimetype, :formatter, :escape
|
|
252
280
|
|
|
253
281
|
def initialize(opts={})
|
|
254
282
|
Rouge::Lexer.enable_debug!
|
|
@@ -276,14 +304,19 @@ module Rouge
|
|
|
276
304
|
when 'html' then Formatters::HTML.new
|
|
277
305
|
when 'html-pygments' then Formatters::HTMLPygments.new(Formatters::HTML.new, opts[:css_class])
|
|
278
306
|
when 'html-inline' then Formatters::HTMLInline.new(theme)
|
|
307
|
+
when 'html-line-table' then Formatters::HTMLLineTable.new(Formatters::HTML.new)
|
|
279
308
|
when 'html-table' then Formatters::HTMLTable.new(Formatters::HTML.new)
|
|
280
309
|
when 'null', 'raw', 'tokens' then Formatters::Null.new
|
|
310
|
+
when 'tex' then Formatters::Tex.new
|
|
281
311
|
else
|
|
282
312
|
error! "unknown formatter preset #{opts[:formatter]}"
|
|
283
313
|
end
|
|
314
|
+
|
|
315
|
+
@escape = opts[:escape]
|
|
284
316
|
end
|
|
285
317
|
|
|
286
318
|
def run
|
|
319
|
+
Formatter.enable_escape! if @escape
|
|
287
320
|
formatter.format(lexer.lex(input), &method(:print))
|
|
288
321
|
end
|
|
289
322
|
|
|
@@ -310,18 +343,30 @@ module Rouge
|
|
|
310
343
|
yield %|respectively. Theme defaults to thankful_eyes.|
|
|
311
344
|
yield %||
|
|
312
345
|
yield %|options:|
|
|
313
|
-
yield %| --scope
|
|
346
|
+
yield %| --scope (default: .highlight) a css selector to scope by|
|
|
347
|
+
yield %| --tex (default: false) render as TeX|
|
|
348
|
+
yield %| --tex-prefix (default: RG) a command prefix for TeX|
|
|
349
|
+
yield %| implies --tex if specified|
|
|
314
350
|
yield %||
|
|
315
351
|
yield %|available themes:|
|
|
316
352
|
yield %| #{Theme.registry.keys.sort.join(', ')}|
|
|
317
353
|
end
|
|
318
354
|
|
|
319
355
|
def self.parse(argv)
|
|
320
|
-
opts = {
|
|
356
|
+
opts = {
|
|
357
|
+
:theme_name => 'thankful_eyes',
|
|
358
|
+
:tex => false,
|
|
359
|
+
:tex_prefix => 'RG'
|
|
360
|
+
}
|
|
321
361
|
|
|
322
362
|
until argv.empty?
|
|
323
363
|
arg = argv.shift
|
|
324
364
|
case arg
|
|
365
|
+
when '--tex'
|
|
366
|
+
opts[:tex] = true
|
|
367
|
+
when '--tex-prefix'
|
|
368
|
+
opts[:tex] = true
|
|
369
|
+
opts[:tex_prefix] = argv.shift
|
|
325
370
|
when /--(\w+)/
|
|
326
371
|
opts[$1.tr('-', '_').to_sym] = argv.shift
|
|
327
372
|
else
|
|
@@ -338,6 +383,10 @@ module Rouge
|
|
|
338
383
|
or error! "unknown theme: #{theme_name}"
|
|
339
384
|
|
|
340
385
|
@theme = theme_class.new(opts)
|
|
386
|
+
if opts[:tex]
|
|
387
|
+
tex_prefix = opts[:tex_prefix]
|
|
388
|
+
@theme = TexThemeRenderer.new(@theme, prefix: tex_prefix)
|
|
389
|
+
end
|
|
341
390
|
end
|
|
342
391
|
|
|
343
392
|
def run
|
data/lib/rouge/demos/ada
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
with Ada.Directories;
|
|
2
|
+
with Ada.Direct_IO;
|
|
3
|
+
with Ada.Text_IO;
|
|
4
|
+
|
|
5
|
+
procedure Extra_IO.Read_File (Name : String) is
|
|
6
|
+
|
|
7
|
+
package Dirs renames Ada.Directories;
|
|
8
|
+
package Text_IO renames Ada.Text_IO;
|
|
9
|
+
|
|
10
|
+
-- Get the size of the file for a new string.
|
|
11
|
+
Size : Natural := Natural (Dirs.Size (Name));
|
|
12
|
+
subtype File_String is String (1 .. Size);
|
|
13
|
+
|
|
14
|
+
-- Instantiate Direct_IO for our file type.
|
|
15
|
+
package FIO is new Ada.Direct_IO (File_String);
|
|
16
|
+
|
|
17
|
+
File : FIO.File_Type;
|
|
18
|
+
Contents : File_String;
|
|
19
|
+
|
|
20
|
+
begin
|
|
21
|
+
FIO.Open (File, FIO.In_File, Name);
|
|
22
|
+
FIO.Read (File, Contents);
|
|
23
|
+
FIO.Close (File);
|
|
24
|
+
|
|
25
|
+
Text_IO.Put (Contents);
|
|
26
|
+
end Extra_IO.Read_File;
|
data/lib/rouge/demos/bpf
ADDED
data/lib/rouge/demos/epp
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
extends Node
|
|
2
|
+
|
|
3
|
+
# Variables & Built-in Types
|
|
4
|
+
|
|
5
|
+
var a = 5
|
|
6
|
+
var b = true
|
|
7
|
+
var s = "Hello"
|
|
8
|
+
var arr = [1, 2, 3]
|
|
9
|
+
|
|
10
|
+
# Constants & Enums
|
|
11
|
+
|
|
12
|
+
const ANSWER = 42
|
|
13
|
+
enum { UNIT_NEUTRAL, UNIT_ENEMY, UNIT_ALLY }
|
|
14
|
+
|
|
15
|
+
# Functions
|
|
16
|
+
|
|
17
|
+
func _ready():
|
|
18
|
+
print("Hello, World")
|