coderay_bash 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/coderay_bash.gemspec +1 -1
- data/lib/coderay/scanners/bash.rb +32 -4
- metadata +7 -7
data/coderay_bash.gemspec
CHANGED
@@ -13,7 +13,7 @@ spec = Gem::Specification.new do |s|
|
|
13
13
|
s.email = "pejuko@gmail.com"
|
14
14
|
s.authors = ["Petr Kovar"]
|
15
15
|
s.name = 'coderay_bash'
|
16
|
-
s.version = '1.0.
|
16
|
+
s.version = '1.0.2'
|
17
17
|
s.date = Time.now.strftime("%Y-%m-%d")
|
18
18
|
s.add_dependency('coderay', '>= 1.0')
|
19
19
|
s.require_path = 'lib'
|
@@ -66,6 +66,8 @@ module CodeRay module Scanners
|
|
66
66
|
@state = :initial
|
67
67
|
@quote = nil
|
68
68
|
@shell = false
|
69
|
+
@brace_shell = 0
|
70
|
+
@quote_brace_shell = 0
|
69
71
|
end
|
70
72
|
|
71
73
|
def scan_tokens encoder, options
|
@@ -106,12 +108,13 @@ module CodeRay module Scanners
|
|
106
108
|
next
|
107
109
|
elsif match = scan(/`/)
|
108
110
|
if @shell
|
111
|
+
encoder.text_token(match, :delimiter)
|
109
112
|
encoder.end_group :shell
|
110
113
|
else
|
111
114
|
encoder.begin_group :shell
|
115
|
+
encoder.text_token(match, :delimiter)
|
112
116
|
end
|
113
117
|
@shell = (not @shell)
|
114
|
-
encoder.text_token(match, :delimiter)
|
115
118
|
next
|
116
119
|
elsif match = scan(/'[^']*'?/)
|
117
120
|
kind = :string
|
@@ -137,8 +140,19 @@ module CodeRay module Scanners
|
|
137
140
|
end
|
138
141
|
kind = IDENT_KIND[var]
|
139
142
|
kind = :instance_variable if kind == :ident
|
140
|
-
elsif match = scan(/ \$\( [^\)]+ \) /ox)
|
141
|
-
|
143
|
+
#elsif match = scan(/ \$\( [^\)]+ \) /ox)
|
144
|
+
elsif match = scan(/ \$\( /ox)
|
145
|
+
@brace_shell += 1
|
146
|
+
encoder.begin_group :shell
|
147
|
+
encoder.text_token(match, :delimiter)
|
148
|
+
next
|
149
|
+
elsif match = scan(/ \) /ox)
|
150
|
+
if @brace_shell > 0
|
151
|
+
encoder.text_token(match, :delimiter)
|
152
|
+
encoder.end_group :shell
|
153
|
+
@brace_shell -= 1
|
154
|
+
next
|
155
|
+
end
|
142
156
|
elsif match = scan(PRE_CONSTANTS)
|
143
157
|
kind = :predefined_constant
|
144
158
|
elsif match = scan(/[^\s'"]*[A-Za-z_][A-Za-z_0-9]*\+?=/)
|
@@ -202,6 +216,20 @@ module CodeRay module Scanners
|
|
202
216
|
kind = :predefined_constant
|
203
217
|
elsif match = scan(/ (?: \$\(\(.*?\)\) ) /x)
|
204
218
|
kind = :global_variable
|
219
|
+
elsif match = scan(/ \$\( /ox)
|
220
|
+
encoder.begin_group :shell
|
221
|
+
encoder.text_token(match, :delimiter)
|
222
|
+
@quote_brace_shell += 1
|
223
|
+
next
|
224
|
+
elsif match = scan(/\)/)
|
225
|
+
if @quote_brace_shell > 0
|
226
|
+
encoder.text_token(match, :delimiter)
|
227
|
+
encoder.end_group :shell
|
228
|
+
@quote_brace_shell -= 1
|
229
|
+
next
|
230
|
+
else
|
231
|
+
kind = :content
|
232
|
+
end
|
205
233
|
elsif match = scan(/ \$ (?: (?: \{ [^\}]* \}) | (?: [A-Za-z_0-9]+ ) ) /x)
|
206
234
|
match =~ /(\$\{?)([^\}]*)(\}?)/
|
207
235
|
pre=$1
|
@@ -215,7 +243,7 @@ module CodeRay module Scanners
|
|
215
243
|
end
|
216
244
|
kind = IDENT_KIND[match]
|
217
245
|
kind = :instance_variable if kind == :ident
|
218
|
-
elsif match = scan(/[
|
246
|
+
elsif match = scan(/[^\)\$#{@quote}\\]+/)
|
219
247
|
kind = :content
|
220
248
|
else match = scan(/.+/)
|
221
249
|
# this shouldn't be
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coderay_bash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-14 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: coderay
|
16
|
-
requirement: &
|
16
|
+
requirement: &14542400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14542400
|
25
25
|
description: ! 'Bash highlighting for coderay. This gem was tested with coderay 1.0
|
26
26
|
and won''t work with coderay < 1.0.
|
27
27
|
|
@@ -34,9 +34,9 @@ files:
|
|
34
34
|
- README.md
|
35
35
|
- coderay_bash.gemspec
|
36
36
|
- Rakefile
|
37
|
-
- lib/coderay/scanners/erb_bash.rb
|
38
|
-
- lib/coderay/scanners/bash.rb
|
39
37
|
- lib/coderay_bash.rb
|
38
|
+
- lib/coderay/scanners/bash.rb
|
39
|
+
- lib/coderay/scanners/erb_bash.rb
|
40
40
|
homepage: http://github.com/pejuko/coderay_bash
|
41
41
|
licenses: []
|
42
42
|
post_install_message: ! 'This gem was tested with coderay 1.0 and won''t work with
|
@@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
60
|
version: '0'
|
61
61
|
requirements: []
|
62
62
|
rubyforge_project:
|
63
|
-
rubygems_version: 1.8.
|
63
|
+
rubygems_version: 1.8.10
|
64
64
|
signing_key:
|
65
65
|
specification_version: 3
|
66
66
|
summary: Simple bash scanner for highlighting with coderay.
|