textpow1x 1.2.4 → 1.2.5
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.
- data/.travis.yml +1 -1
- data/Gemfile.lock +1 -1
- data/README.rdoc +1 -0
- data/lib/textpow/syntax.rb +22 -12
- data/lib/textpow/version.rb +1 -1
- data/spec/fixtures/utf8.txt +1 -0
- data/spec/textpow/syntax_files_spec.rb +5 -1
- metadata +49 -53
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -76,6 +76,7 @@ having <tt>name="text.string", position=10</tt> and the second having
|
|
76
76
|
<tt>"markup.string"</tt> tag is inside the <tt>"text.string"</tt> tag.
|
77
77
|
|
78
78
|
== TODO
|
79
|
+
* smart + mel + applescript have some invalid utf8 characters that are currently ignored (search for INVALID_UTF8))
|
79
80
|
* fix markdown and php syntax
|
80
81
|
* parse text plist files {example}[https://raw.github.com/kangax/textmate-js-language-syntax-file/master/JavaScript.plist]
|
81
82
|
* update more languages via github urls
|
data/lib/textpow/syntax.rb
CHANGED
@@ -90,17 +90,7 @@ module Textpow
|
|
90
90
|
table.each do |key, value|
|
91
91
|
case key
|
92
92
|
when "firstLineMatch", "foldingStartMarker", "foldingStopMarker", "match", "begin"
|
93
|
-
|
94
|
-
regex = if Textpow::RUBY_19
|
95
|
-
value.force_encoding("ASCII-8BIT")
|
96
|
-
Regexp.new(value)
|
97
|
-
else
|
98
|
-
Oniguruma::ORegexp.new(value, :options => Oniguruma::OPTION_CAPTURE_GROUP)
|
99
|
-
end
|
100
|
-
instance_variable_set("@#{key}", regex)
|
101
|
-
rescue RegexpError, ArgumentError => e
|
102
|
-
raise ParsingError, "Parsing error in #{value}: #{e.to_s}"
|
103
|
-
end
|
93
|
+
instance_variable_set("@#{key}", parse_regex(value))
|
104
94
|
when "content", "fileTypes", "name", "contentName", "end", "scopeName", "keyEquivalent"
|
105
95
|
instance_variable_set("@#{key}", value)
|
106
96
|
when "captures", "beginCaptures", "endCaptures"
|
@@ -116,6 +106,27 @@ module Textpow
|
|
116
106
|
end
|
117
107
|
end
|
118
108
|
|
109
|
+
def parse_regex(value)
|
110
|
+
if Textpow::RUBY_19
|
111
|
+
parse_regex_with_invalid_chars(value)
|
112
|
+
else
|
113
|
+
Oniguruma::ORegexp.new(value, :options => Oniguruma::OPTION_CAPTURE_GROUP)
|
114
|
+
end
|
115
|
+
rescue RegexpError, ArgumentError => e
|
116
|
+
raise ParsingError, "Parsing error in #{value}: #{e.to_s}"
|
117
|
+
end
|
118
|
+
|
119
|
+
def parse_regex_with_invalid_chars(value)
|
120
|
+
Regexp.new(value.force_encoding('UTF-8'))
|
121
|
+
rescue RegexpError => e
|
122
|
+
if e.message =~ /UTF-8/ or e.message =~ /invalid multibyte escape/
|
123
|
+
puts "Ignored utf8 regex error #{$!}"
|
124
|
+
/INVALID_UTF8/
|
125
|
+
else
|
126
|
+
raise e
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
119
130
|
# register in global syntax list -> can be found by include
|
120
131
|
def register_in_syntaxes(scope)
|
121
132
|
@@syntaxes[@name_space] ||= {}
|
@@ -124,7 +135,6 @@ module Textpow
|
|
124
135
|
|
125
136
|
def self.convert_file_to_table(file)
|
126
137
|
raise "File not found: #{file}" unless File.exist?(file)
|
127
|
-
|
128
138
|
case file
|
129
139
|
when /(\.tmSyntax|\.plist)$/
|
130
140
|
require 'plist'
|
data/lib/textpow/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
ü
|
@@ -10,9 +10,13 @@ describe "syntax files" do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
Dir["#{Textpow.syntax_path}/*.syntax"].each do |syntax|
|
13
|
-
it "#{syntax}
|
13
|
+
it "can parse with #{syntax}" do
|
14
14
|
Textpow.syntax(syntax).parse("xxx\n1 + 1\n### xxx")
|
15
15
|
end
|
16
|
+
|
17
|
+
it "can parse UTF-8 with #{syntax}" do
|
18
|
+
Textpow.syntax(syntax).parse(File.read("spec/fixtures/utf8.txt"))
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
22
|
xit "parses markdown" do
|
metadata
CHANGED
@@ -1,15 +1,10 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: textpow1x
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.5
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 4
|
10
|
-
version: 1.2.4
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Dizan Vasquez
|
14
9
|
- Spox
|
15
10
|
- Chris Hoffman
|
@@ -17,37 +12,33 @@ authors:
|
|
17
12
|
autorequire:
|
18
13
|
bindir: bin
|
19
14
|
cert_chain: []
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
type: :runtime
|
26
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
15
|
+
date: 2012-05-05 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: plist
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
27
20
|
none: false
|
28
|
-
requirements:
|
29
|
-
- -
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
hash: 5
|
32
|
-
segments:
|
33
|
-
- 3
|
34
|
-
- 0
|
35
|
-
- 1
|
21
|
+
requirements:
|
22
|
+
- - ! '>='
|
23
|
+
- !ruby/object:Gem::Version
|
36
24
|
version: 3.0.1
|
37
|
-
|
38
|
-
version_requirements: *id001
|
25
|
+
type: :runtime
|
39
26
|
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.1
|
40
33
|
description: A library for parsing TextMate bundles on ruby 1.x
|
41
|
-
email:
|
34
|
+
email:
|
42
35
|
- michael@grosser.it
|
43
|
-
executables:
|
36
|
+
executables:
|
44
37
|
- plist2yaml
|
45
38
|
- plist2syntax
|
46
39
|
extensions: []
|
47
|
-
|
48
40
|
extra_rdoc_files: []
|
49
|
-
|
50
|
-
files:
|
41
|
+
files:
|
51
42
|
- .travis.yml
|
52
43
|
- Gemfile
|
53
44
|
- Gemfile.lock
|
@@ -231,46 +222,51 @@ files:
|
|
231
222
|
- lib/textpow/syntax/text.xml.xsl.syntax
|
232
223
|
- lib/textpow/version.rb
|
233
224
|
- spec/fixtures/objeck.plist
|
225
|
+
- spec/fixtures/utf8.txt
|
234
226
|
- spec/spec_helper.rb
|
235
227
|
- spec/textpow/score_manager_spec.rb
|
236
228
|
- spec/textpow/syntax_files_spec.rb
|
237
229
|
- spec/textpow/syntax_spec.rb
|
238
230
|
- spec/textpow_spec.rb
|
239
231
|
- textpow1x.gemspec
|
240
|
-
has_rdoc: true
|
241
232
|
homepage: http://github.com/grosser/textpow
|
242
|
-
licenses:
|
233
|
+
licenses:
|
243
234
|
- MIT
|
244
235
|
post_install_message:
|
245
|
-
rdoc_options:
|
236
|
+
rdoc_options:
|
246
237
|
- --main
|
247
238
|
- README.rdoc
|
248
|
-
require_paths:
|
239
|
+
require_paths:
|
249
240
|
- lib
|
250
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
241
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
251
242
|
none: false
|
252
|
-
requirements:
|
253
|
-
- -
|
254
|
-
- !ruby/object:Gem::Version
|
255
|
-
|
256
|
-
segments:
|
243
|
+
requirements:
|
244
|
+
- - ! '>='
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '0'
|
247
|
+
segments:
|
257
248
|
- 0
|
258
|
-
|
259
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
|
+
hash: -742741068401622208
|
250
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
251
|
none: false
|
261
|
-
requirements:
|
262
|
-
- -
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
|
265
|
-
segments:
|
252
|
+
requirements:
|
253
|
+
- - ! '>='
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
segments:
|
266
257
|
- 0
|
267
|
-
|
258
|
+
hash: -742741068401622208
|
268
259
|
requirements: []
|
269
|
-
|
270
260
|
rubyforge_project:
|
271
|
-
rubygems_version: 1.
|
261
|
+
rubygems_version: 1.8.24
|
272
262
|
signing_key:
|
273
263
|
specification_version: 3
|
274
264
|
summary: A library for parsing TextMate bundles on ruby 1.x
|
275
|
-
test_files:
|
276
|
-
|
265
|
+
test_files:
|
266
|
+
- spec/fixtures/objeck.plist
|
267
|
+
- spec/fixtures/utf8.txt
|
268
|
+
- spec/spec_helper.rb
|
269
|
+
- spec/textpow/score_manager_spec.rb
|
270
|
+
- spec/textpow/syntax_files_spec.rb
|
271
|
+
- spec/textpow/syntax_spec.rb
|
272
|
+
- spec/textpow_spec.rb
|