rouge 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/lexers/erlang.rb +124 -0
- data/lib/rouge/lexers/http.rb +68 -0
- data/lib/rouge/lexers/javascript.rb +1 -0
- data/lib/rouge/version.rb +1 -1
- metadata +6 -2
@@ -0,0 +1,14 @@
|
|
1
|
+
POST /demo/submit/ HTTP/1.1
|
2
|
+
Host: rouge.jayferd.us
|
3
|
+
Cache-Control: max-age=0
|
4
|
+
Origin: http://rouge.jayferd.us
|
5
|
+
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2)
|
6
|
+
AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
|
7
|
+
Content-Type: application/json
|
8
|
+
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
9
|
+
Referer: http://pygments.org/
|
10
|
+
Accept-Encoding: gzip,deflate,sdch
|
11
|
+
Accept-Language: en-US,en;q=0.8
|
12
|
+
Accept-Charset: windows-949,utf-8;q=0.7,*;q=0.3
|
13
|
+
|
14
|
+
{"name":"test","lang":"text","boring":true}
|
@@ -0,0 +1,124 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
class Erlang < RegexLexer
|
4
|
+
desc "The Erlang programming language (erlang.org)"
|
5
|
+
tag 'erlang'
|
6
|
+
aliases 'erl'
|
7
|
+
filenames '*.erl', '*.hrl'
|
8
|
+
|
9
|
+
mimetypes 'text/x-erlang', 'application/x-erlang'
|
10
|
+
|
11
|
+
def self.analyze_text(text)
|
12
|
+
return 0.3 if text =~ /^-module[(]\w+[)][.]/
|
13
|
+
end
|
14
|
+
|
15
|
+
keywords = %w(
|
16
|
+
after begin case catch cond end fun if
|
17
|
+
let of query receive try when
|
18
|
+
)
|
19
|
+
|
20
|
+
builtins = %w(
|
21
|
+
abs append_element apply atom_to_list binary_to_list
|
22
|
+
bitstring_to_list binary_to_term bit_size bump_reductions
|
23
|
+
byte_size cancel_timer check_process_code delete_module
|
24
|
+
demonitor disconnect_node display element erase exit
|
25
|
+
float float_to_list fun_info fun_to_list
|
26
|
+
function_exported garbage_collect get get_keys
|
27
|
+
group_leader hash hd integer_to_list iolist_to_binary
|
28
|
+
iolist_size is_atom is_binary is_bitstring is_boolean
|
29
|
+
is_builtin is_float is_function is_integer is_list
|
30
|
+
is_number is_pid is_port is_process_alive is_record
|
31
|
+
is_reference is_tuple length link list_to_atom
|
32
|
+
list_to_binary list_to_bitstring list_to_existing_atom
|
33
|
+
list_to_float list_to_integer list_to_pid list_to_tuple
|
34
|
+
load_module localtime_to_universaltime make_tuple md5
|
35
|
+
md5_final md5_update memory module_loaded monitor
|
36
|
+
monitor_node node nodes open_port phash phash2
|
37
|
+
pid_to_list port_close port_command port_connect
|
38
|
+
port_control port_call port_info port_to_list
|
39
|
+
process_display process_flag process_info purge_module
|
40
|
+
put read_timer ref_to_list register resume_process
|
41
|
+
round send send_after send_nosuspend set_cookie
|
42
|
+
setelement size spawn spawn_link spawn_monitor
|
43
|
+
spawn_opt split_binary start_timer statistics
|
44
|
+
suspend_process system_flag system_info system_monitor
|
45
|
+
system_profile term_to_binary tl trace trace_delivered
|
46
|
+
trace_info trace_pattern trunc tuple_size tuple_to_list
|
47
|
+
universaltime_to_localtime unlink unregister whereis
|
48
|
+
)
|
49
|
+
|
50
|
+
operators = %r{(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)}
|
51
|
+
word_operators = %w(
|
52
|
+
and andalso band bnot bor bsl bsr bxor
|
53
|
+
div not or orelse rem xor
|
54
|
+
)
|
55
|
+
|
56
|
+
atom_re = %r{(?:[a-z][a-zA-Z0-9_]*|'[^\n']*[^\\]')}
|
57
|
+
|
58
|
+
variable_re = %r{(?:[A-Z_][a-zA-Z0-9_]*)}
|
59
|
+
|
60
|
+
escape_re = %r{(?:\\(?:[bdefnrstv\'"\\/]|[0-7][0-7]?[0-7]?|\^[a-zA-Z]))}
|
61
|
+
|
62
|
+
macro_re = %r{(?:#{variable_re}|#{atom_re})}
|
63
|
+
|
64
|
+
base_re = %r{(?:[2-9]|[12][0-9]|3[0-6])}
|
65
|
+
|
66
|
+
state :root do
|
67
|
+
rule(/\s+/, "Text")
|
68
|
+
rule(/%.*\n/, "Comment")
|
69
|
+
rule(%r{(#{keywords.join('|')})\b}, "Keyword")
|
70
|
+
rule(%r{(#{builtins.join('|')})\b}, "Name.Builtin")
|
71
|
+
rule(%r{(#{word_operators.join('|')})\b}, "Operator.Word")
|
72
|
+
rule(/^-/, "Punctuation", :directive)
|
73
|
+
rule(operators, "Operator")
|
74
|
+
rule(/"/, "Literal.String", :string)
|
75
|
+
rule(/<</, "Name.Label")
|
76
|
+
rule(/>>/, "Name.Label")
|
77
|
+
rule %r{(#{atom_re})(:)} do
|
78
|
+
group "Name.Namespace"
|
79
|
+
group "Punctuation"
|
80
|
+
end
|
81
|
+
rule %r{(?:^|(?<=:))(#{atom_re})(\s*)(\()} do
|
82
|
+
group "Name.Function"
|
83
|
+
group "Text"
|
84
|
+
group "Punctuation"
|
85
|
+
end
|
86
|
+
rule(%r{[+-]?#{base_re}#[0-9a-zA-Z]+}, "Literal.Number.Integer")
|
87
|
+
rule(/[+-]?\d+/, "Literal.Number.Integer")
|
88
|
+
rule(/[+-]?\d+.\d+/, "Literal.Number.Float")
|
89
|
+
rule(%r{[\]\[:_@\".{}()|;,]}, "Punctuation")
|
90
|
+
rule(variable_re, "Name.Variable")
|
91
|
+
rule(atom_re, "Name")
|
92
|
+
rule(%r{\?#{macro_re}}, "Name.Constant")
|
93
|
+
rule(%r{\$(?:#{escape_re}|\\[ %]|[^\\])}, "Literal.String.Char")
|
94
|
+
rule(%r{##{atom_re}(:?\.#{atom_re})?}, "Name.Label")
|
95
|
+
end
|
96
|
+
|
97
|
+
state :string do
|
98
|
+
rule(escape_re, "Literal.String.Escape")
|
99
|
+
rule(/"/, "Literal.String", :pop!)
|
100
|
+
rule(%r{~[0-9.*]*[~#+bBcdefginpPswWxX]}, "Literal.String.Interpol")
|
101
|
+
rule(%r{[^"\\~]+}, "Literal.String")
|
102
|
+
rule(/~/, "Literal.String")
|
103
|
+
end
|
104
|
+
|
105
|
+
state :directive do
|
106
|
+
rule %r{(define)(\s*)(\()(#{macro_re})} do
|
107
|
+
group "Name.Entity"
|
108
|
+
group "Text"
|
109
|
+
group "Punctuation"
|
110
|
+
group "Name.Constant"
|
111
|
+
pop!
|
112
|
+
end
|
113
|
+
rule %r{(record)(\s*)(\()(#{macro_re})} do
|
114
|
+
group "Name.Entity"
|
115
|
+
group "Text"
|
116
|
+
group "Punctuation"
|
117
|
+
group "Name.Label"
|
118
|
+
pop!
|
119
|
+
end
|
120
|
+
rule(atom_re, "Name.Entity", :pop!)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
class HTTP < RegexLexer
|
4
|
+
tag 'http'
|
5
|
+
desc 'http requests and responses'
|
6
|
+
|
7
|
+
def self.methods
|
8
|
+
@methods ||= %w(GET POST PUT DELETE HEAD OPTIONS TRACE)
|
9
|
+
end
|
10
|
+
|
11
|
+
start { @content_type = 'text/plain' }
|
12
|
+
|
13
|
+
state :root do
|
14
|
+
# request
|
15
|
+
rule %r(
|
16
|
+
(#{HTTP.methods.join('|')})([ ]+) # method
|
17
|
+
([^ ]+)([ ]+) # path
|
18
|
+
(HTTPS?)(/)(1[.][01])(\r?\n|$) # http version
|
19
|
+
)ox do
|
20
|
+
group 'Name.Function'; group 'Text'
|
21
|
+
group 'Name.Namespace'; group 'Text'
|
22
|
+
group 'Keyword'; group 'Operator'
|
23
|
+
group 'Literal.Number'; group 'Text'
|
24
|
+
push :headers
|
25
|
+
end
|
26
|
+
|
27
|
+
# response
|
28
|
+
rule %r(
|
29
|
+
(HTTPS?)(/)(1[.][01])([ ]+) # http version
|
30
|
+
(\d{3})([ ]+) # status
|
31
|
+
([^\r\n]+)(\r?\n|$) # status message
|
32
|
+
)x do
|
33
|
+
group 'Keyword'; group 'Operator'
|
34
|
+
group 'Literal.Number'; group 'Text'
|
35
|
+
group 'Literal.Number'; group 'Text'
|
36
|
+
group 'Name.Exception'; group 'Text'
|
37
|
+
push :headers
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
state :headers do
|
42
|
+
rule /([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)/ do |m|
|
43
|
+
key = m[1]
|
44
|
+
value = m[5]
|
45
|
+
if key.strip.downcase == 'content-type'
|
46
|
+
@content_type = value.split(';')[0].downcase
|
47
|
+
end
|
48
|
+
|
49
|
+
group 'Name.Attribute'; group 'Text'
|
50
|
+
group 'Punctuation'; group 'Text'
|
51
|
+
group 'Literal.String'; group 'Text'
|
52
|
+
end
|
53
|
+
|
54
|
+
rule /([^\r\n]+)(\r?\n|$)/ do
|
55
|
+
group 'Literal.String'; group 'Text'
|
56
|
+
end
|
57
|
+
|
58
|
+
rule /\r?\n/, 'Text', :content
|
59
|
+
end
|
60
|
+
|
61
|
+
state :content do
|
62
|
+
rule /.+/ do |m|
|
63
|
+
delegate Lexer.guess_by_mimetype(@content_type)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -182,6 +182,7 @@ module Rouge
|
|
182
182
|
group 'Text.Whitespace'
|
183
183
|
group 'Punctuation'
|
184
184
|
end
|
185
|
+
rule /true|false/, 'Keyword.Constant'
|
185
186
|
rule /{/, 'Punctuation', :object_key
|
186
187
|
rule /\[/, 'Punctuation', :array
|
187
188
|
rule /-?(?:0|[1-9]\d*)\.\d+(?:e[+-]\d+)?/i, 'Literal.Number.Float'
|
data/lib/rouge/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
type: :runtime
|
@@ -76,6 +76,7 @@ files:
|
|
76
76
|
- lib/rouge/lexers/toml.rb
|
77
77
|
- lib/rouge/lexers/puppet.rb
|
78
78
|
- lib/rouge/lexers/ruby.rb
|
79
|
+
- lib/rouge/lexers/http.rb
|
79
80
|
- lib/rouge/lexers/xml.rb
|
80
81
|
- lib/rouge/lexers/handlebars.rb
|
81
82
|
- lib/rouge/lexers/php.rb
|
@@ -87,6 +88,7 @@ files:
|
|
87
88
|
- lib/rouge/lexers/scss.rb
|
88
89
|
- lib/rouge/lexers/javascript.rb
|
89
90
|
- lib/rouge/lexers/shell.rb
|
91
|
+
- lib/rouge/lexers/erlang.rb
|
90
92
|
- lib/rouge/lexers/yaml.rb
|
91
93
|
- lib/rouge/lexers/make.rb
|
92
94
|
- lib/rouge/lexers/lua.rb
|
@@ -111,6 +113,7 @@ files:
|
|
111
113
|
- lib/rouge/lexers/conf.rb
|
112
114
|
- lib/rouge.rb
|
113
115
|
- bin/rougify
|
116
|
+
- lib/rouge/demos/erlang
|
114
117
|
- lib/rouge/demos/sass
|
115
118
|
- lib/rouge/demos/ruby
|
116
119
|
- lib/rouge/demos/factor
|
@@ -149,6 +152,7 @@ files:
|
|
149
152
|
- lib/rouge/demos/nginx
|
150
153
|
- lib/rouge/demos/toml
|
151
154
|
- lib/rouge/demos/gherkin
|
155
|
+
- lib/rouge/demos/http
|
152
156
|
- lib/rouge/demos/rust
|
153
157
|
- lib/rouge/demos/json
|
154
158
|
- lib/rouge/demos/markdown
|