livetext 0.9.14 → 0.9.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cmdargs.rb +93 -0
- data/lib/formatline.rb +56 -83
- data/lib/helpers.rb +142 -4
- data/lib/livetext.rb +11 -141
- data/lib/parser/file.rb +8 -0
- data/lib/parser/mixin.rb +28 -15
- data/lib/parser/set.rb +35 -26
- data/lib/parser/string.rb +19 -4
- data/lib/processor.rb +1 -4
- data/lib/standard.rb +56 -96
- data/plugin/bookish.rb +26 -22
- data/plugin/calibre.rb +1 -1
- data/plugin/livemagick.rb +10 -10
- data/plugin/markdown.rb +13 -11
- data/plugin/pyggish.rb +94 -84
- data/plugin/tutorial.rb +10 -5
- data/test/all.rb +0 -1
- data/test/snapshots/OMIT.txt +7 -8
- data/test/snapshots/clusion.txt +35 -0
- data/test/snapshots/error_inc_line_num/actual-error.txt +14 -0
- data/test/snapshots/error_inc_line_num/actual-output.txt +7 -0
- data/test/snapshots/error_inc_line_num/match-error.txt +1 -1
- data/test/snapshots/error_inc_line_num/out-sdiff.txt +14 -0
- data/test/snapshots/error_invalid_name/actual-error.txt +10 -0
- data/test/snapshots/error_invalid_name/actual-output.txt +0 -0
- data/test/snapshots/error_invalid_name/match-error.txt +1 -1
- data/test/snapshots/error_invalid_name/out-sdiff.txt +6 -0
- data/test/snapshots/error_line_num/match-error.txt +1 -1
- data/test/snapshots/error_mismatched_end/match-error.txt +1 -1
- data/test/snapshots/error_missing_end/actual-error.txt +10 -0
- data/test/snapshots/error_missing_end/actual-output.txt +0 -0
- data/test/snapshots/error_missing_end/match-error.txt +1 -1
- data/test/snapshots/error_missing_end/out-sdiff.txt +6 -0
- data/test/snapshots/error_no_such_copy/actual-error.txt +10 -0
- data/test/snapshots/error_no_such_copy/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_copy/match-error.txt +1 -1
- data/test/snapshots/error_no_such_copy/out-sdiff.txt +5 -0
- data/test/snapshots/error_no_such_copy/source.lt3 +0 -1
- data/test/snapshots/error_no_such_inc/actual-error.txt +10 -0
- data/test/snapshots/error_no_such_inc/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_inc/match-error.txt +1 -1
- data/test/snapshots/error_no_such_inc/out-sdiff.txt +6 -0
- data/test/snapshots/error_no_such_mixin/actual-error.txt +37 -0
- data/test/snapshots/error_no_such_mixin/actual-output.txt +0 -0
- data/test/snapshots/error_no_such_mixin/out-sdiff.txt +6 -0
- data/test/snapshots/simple_import/actual-error.txt +8 -0
- data/test/snapshots/simple_import/actual-output.txt +3 -0
- data/test/snapshots/simple_import/err-sdiff.txt +9 -0
- data/test/snapshots/simple_import/expected-error.txt +0 -0
- data/test/snapshots/simple_import/expected-output.txt +7 -0
- data/test/snapshots/simple_import/out-sdiff.txt +9 -0
- data/test/snapshots/simple_import/simple_import.rb +5 -0
- data/test/snapshots/simple_import/source.lt3 +7 -0
- data/test/snapshots/simple_include/source.lt3 +0 -1
- data/test/snapshots.rb +3 -2
- data/test/unit/all.rb +1 -0
- data/test/unit/formatline.rb +650 -0
- data/test/unit/parser/importable.rb +1 -1
- data/test/unit/parser/mixin.rb +1 -1
- data/test/unit/parser/set.rb +19 -12
- data/test/unit/parser/string.rb +14 -14
- metadata +32 -5
- data/test/formatting-tests.rb +0 -35
- data/test/formatting.rb +0 -103
- data/test/snapshots/formatting-tests.txt +0 -124
data/plugin/pyggish.rb
CHANGED
@@ -1,58 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
module PygmentFix # Remove CSS for Jutoh
|
4
|
-
Styles = {
|
5
|
-
:c => "#408080-i", # Comment
|
6
|
-
:k => "#008000-b", # Keyword
|
7
|
-
:o => "#666666", # Operator
|
8
|
-
:cm => "#408080-i", # Comment.Multiline
|
9
|
-
:cp => "#BC7A00", # Comment.Preproc
|
10
|
-
:c1 => "#408080-i", # Comment.Single
|
11
|
-
:cs => "#408080-i", # Comment.Special
|
12
|
-
:kc => "#008000-b", # Keyword.Constant
|
13
|
-
:kd => "#008000-b", # Keyword.Declaration
|
14
|
-
:kn => "#008000-b", # Keyword.Namespace
|
15
|
-
:kp => "#008000", # Keyword.Pseudo
|
16
|
-
:kr => "#008000-b", # Keyword.Reserved
|
17
|
-
:kt => "#B00040", # Keyword.Type
|
18
|
-
:m => "#666666", # Literal.Number
|
19
|
-
:s => "#BA2121", # Literal.String
|
20
|
-
:na => "#7D9029", # Name.Attribute
|
21
|
-
:nb => "#008000", # Name.Builtin
|
22
|
-
:nc => "#0000FF-b", # Name.Class
|
23
|
-
:no => "#880000", # Name.Constant
|
24
|
-
:nd => "#AA22FF", # Name.Decorator
|
25
|
-
:ni => "#999999-b", # Name.Entity
|
26
|
-
:ne => "#D2413A-b", # Name.Exception
|
27
|
-
:nf => "#0000FF", # Name.Function
|
28
|
-
:nl => "#A0A000", # Name.Label
|
29
|
-
:nn => "#0000FF-b", # Name.Namespace
|
30
|
-
:nt => "#008000-b", # Name.Tag
|
31
|
-
:nv => "#19177C", # Name.Variable
|
32
|
-
:ow => "#AA22FF-b", # Operator.Word
|
33
|
-
:w => "#bbbbbb", # Text.Whitespace
|
34
|
-
:mb => "#666666", # Literal.Number.Bin
|
35
|
-
:mf => "#666666", # Literal.Number.Float
|
36
|
-
:mh => "#666666", # Literal.Number.Hex
|
37
|
-
:mi => "#666666", # Literal.Number.Integer
|
38
|
-
:mo => "#666666", # Literal.Number.Oct
|
39
|
-
:sb => "#BA2121", # Literal.String.Backtick
|
40
|
-
:sc => "#BA2121", # Literal.String.Char
|
41
|
-
:sd => "#BA2121-i", # Literal.String.Doc
|
42
|
-
:s2 => "#BA2121", # Literal.String.Double
|
43
|
-
:se => "#BB6622-b", # Literal.String.Escape
|
44
|
-
:sh => "#BA2121", # Literal.String.Heredoc
|
45
|
-
:si => "#BB6688-b", # Literal.String.Interpol
|
46
|
-
:sx => "#008000", # Literal.String.Other
|
47
|
-
:sr => "#BB6688", # Literal.String.Regex
|
48
|
-
:s1 => "#BA2121", # Literal.String.Single
|
49
|
-
:ss => "#19177C", # Literal.String.Symbol
|
50
|
-
:bp => "#008000", # Name.Builtin.Pseudo
|
51
|
-
:vc => "#19177C", # Name.Variable.Class
|
52
|
-
:vg => "#19177C", # Name.Variable.Global
|
53
|
-
:vi => "#19177C", # Name.Variable.Instance
|
54
|
-
:il => "#666666" # Literal.Number.Integer.Long
|
55
|
-
}
|
1
|
+
require 'rouge'
|
56
2
|
|
57
3
|
def self.pyg_change(code, klass, style)
|
58
4
|
color = style[0..6]
|
@@ -82,13 +28,17 @@ module PygmentFix # Remove CSS for Jutoh
|
|
82
28
|
|
83
29
|
def self.pyg_finalize(code, lexer=:elixir)
|
84
30
|
Styles.each_pair {|klass, style| pyg_change(code, klass, style) }
|
31
|
+
File.open("debug-pf1", "w") {|f| f.puts code }
|
85
32
|
code.sub!(/<pre>/, "<pre>\n")
|
86
33
|
code.gsub!(/<span class="[np]">/, "")
|
87
34
|
code.gsub!(/<\/span>/, "")
|
88
35
|
color = _codebar_color(lexer)
|
89
|
-
code.sub!(/<td class="linenos"/, "<td width=
|
36
|
+
code.sub!(/<td class="linenos"/, "<td width=2%></td><td width=5% bgcolor=#{color}")
|
37
|
+
code.gsub!(/<td/, "<td valign=top ")
|
90
38
|
code.gsub!(/ class="[^"]*?"/, "") # Get rid of remaining Pygments CSS
|
39
|
+
File.open("debug-pf2", "w") {|f| f.puts code }
|
91
40
|
lines = code.split("\n")
|
41
|
+
# lines.each {|line| line << "\n" }
|
92
42
|
n1 = lines.index {|x| x =~ /<pre>/ }
|
93
43
|
n2 = lines.index {|x| x =~ /<\/pre>/ }
|
94
44
|
# FIXME ?
|
@@ -97,15 +47,13 @@ module PygmentFix # Remove CSS for Jutoh
|
|
97
47
|
lines[n1].sub!(/ 1$/, " 1 ")
|
98
48
|
(n1+1).upto(n2) {|n| lines[n].replace(" " + lines[n] + " ") }
|
99
49
|
code = lines.join("\n")
|
50
|
+
File.open("debug-pf3", "w") {|f| f.puts code }
|
100
51
|
code
|
101
52
|
end
|
102
|
-
end
|
103
|
-
|
104
|
-
# Was in 'bookish':
|
105
53
|
|
106
|
-
# include PygmentFix
|
107
54
|
|
108
55
|
def _process_code(text)
|
56
|
+
File.open("debug-pc1", "w") {|f| f.puts text }
|
109
57
|
lines = text.split("\n")
|
110
58
|
lines = lines.select {|x| x !~ /##~ omit/ }
|
111
59
|
@refs = {}
|
@@ -117,28 +65,32 @@ def _process_code(text)
|
|
117
65
|
end
|
118
66
|
end
|
119
67
|
lines.map! {|line| " " + line }
|
120
|
-
|
68
|
+
text2 = lines.join("\n")
|
69
|
+
File.open("debug-pc2", "w") {|f| f.puts text2 }
|
70
|
+
text.replace(text2)
|
121
71
|
end
|
122
72
|
|
123
73
|
def _colorize(code, lexer=:elixir)
|
124
74
|
text = ::Pygments.highlight(code, lexer: lexer, options: {linenos: "table"})
|
125
75
|
_debug "--- in _colorize: text = #{text.inspect}"
|
126
|
-
PygmentFix.pyg_finalize(text, lexer)
|
127
|
-
|
76
|
+
text2 = PygmentFix.pyg_finalize(text, lexer)
|
77
|
+
result = "<!-- colorized code -->\n" + text2
|
78
|
+
result
|
128
79
|
end
|
129
80
|
|
130
81
|
def _colorize!(code, lexer=:elixir)
|
131
82
|
text = ::Pygments.highlight(code, lexer: lexer, options: {})
|
132
83
|
_debug "--- in _colorize!: text = #{text.inspect}"
|
133
|
-
PygmentFix.pyg_finalize(text, lexer)
|
134
|
-
|
84
|
+
text2 = PygmentFix.pyg_finalize(text, lexer)
|
85
|
+
result = "<!-- colorized code -->\n" + text2
|
86
|
+
result
|
135
87
|
end
|
136
88
|
|
137
|
-
def
|
89
|
+
def OLD_ruby
|
138
90
|
file = @_args.first
|
139
91
|
if file.nil?
|
140
92
|
code = "# Ruby code\n"
|
141
|
-
_body {|line| code << line }
|
93
|
+
_body {|line| code << line + "\n" }
|
142
94
|
else
|
143
95
|
code = "# Ruby code\n\n" + ::File.read(file)
|
144
96
|
end
|
@@ -148,11 +100,11 @@ def ruby
|
|
148
100
|
_out "\n#{html}\n "
|
149
101
|
end
|
150
102
|
|
151
|
-
def
|
103
|
+
def OLD_elixir
|
152
104
|
file = @_args.first
|
153
105
|
if file.nil?
|
154
106
|
code = ""
|
155
|
-
_body {|line| code << line }
|
107
|
+
_body {|line| code << line + "\n" }
|
156
108
|
else
|
157
109
|
code = ::File.read(file)
|
158
110
|
end
|
@@ -163,20 +115,10 @@ def elixir
|
|
163
115
|
end
|
164
116
|
|
165
117
|
def fragment
|
166
|
-
#
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
code << "# Ruby code\n\n" if lexer == :ruby
|
171
|
-
_body(true) {|line| code << " " + line }
|
172
|
-
_debug "code = \n#{code}\n-----"
|
173
|
-
params = "(code, lexer: #{lexer.inspect}, options: {})"
|
174
|
-
_debug "-- pygments params = #{params}"
|
175
|
-
text = _colorize!(code, lexer)
|
176
|
-
text ||= "ERROR IN HIGHLIGHTER"
|
177
|
-
_debug "text = \n#{text.inspect}\n-----"
|
178
|
-
# PygmentFix.pyg_finalize(text, lexer)
|
179
|
-
_out text + "\n<br>"
|
118
|
+
lang = @_args.empty? ? :elixir : @_args.first.to_sym # ruby or elixir
|
119
|
+
@_args = []
|
120
|
+
send(lang)
|
121
|
+
_out "\n"
|
180
122
|
end
|
181
123
|
|
182
124
|
def code # FIXME ?
|
@@ -186,8 +128,76 @@ end
|
|
186
128
|
|
187
129
|
def mono
|
188
130
|
_out "<pre>"
|
189
|
-
_body
|
131
|
+
_body {|line| _out " " + line }
|
190
132
|
_out "</pre>"
|
191
133
|
end
|
192
134
|
|
135
|
+
def create_code_styles
|
136
|
+
dir = @_outdir || "."
|
137
|
+
theme, back = "Github", "white"
|
138
|
+
css = Rouge::Themes.const_get(theme).render(scope: '.rb_highlight')
|
139
|
+
added = <<~CSS
|
140
|
+
.rb_highlight {
|
141
|
+
font-family: 'Monaco', 'Andale Mono', 'Lucida Grande', 'Courier', 'Lucida Console', 'Courier New', monospace;
|
142
|
+
white-space: pre;
|
143
|
+
background-color: #{back}
|
144
|
+
}
|
145
|
+
CSS
|
146
|
+
|
147
|
+
css.gsub!(/{\n/, "{\n font-family: courier;")
|
148
|
+
css = added + "\n" + css
|
149
|
+
# STDERR.puts "Writing #{theme} theme to ruby.css"
|
150
|
+
File.write("#{dir}/ruby.css", css)
|
151
|
+
|
152
|
+
css = Rouge::Themes.const_get(theme).render(scope: '.ex_highlight')
|
153
|
+
added = added.sub(/rb/, "ex")
|
154
|
+
css.gsub!(/{\n/, "{\n font-family: courier;")
|
155
|
+
css = added + "\n" + css
|
156
|
+
# STDERR.puts "Writing #{theme} theme to elixir.css"
|
157
|
+
File.write("#{dir}/elixir.css", css)
|
158
|
+
end
|
159
|
+
|
193
160
|
|
161
|
+
def format_ruby(source, theme = "Github", back = "black")
|
162
|
+
# theme/back not used now
|
163
|
+
formatter = Rouge::Formatters::HTML.new
|
164
|
+
lexer = Rouge::Lexers::Ruby.new
|
165
|
+
body = formatter.format(lexer.lex(source))
|
166
|
+
text = "<div class=rb_highlight>#{body}</div>"
|
167
|
+
text
|
168
|
+
end
|
169
|
+
|
170
|
+
def format_elixir(source, theme = "Github", back = "black")
|
171
|
+
# theme/back not used now
|
172
|
+
formatter = Rouge::Formatters::HTML.new
|
173
|
+
lexer = Rouge::Lexers::Elixir.new
|
174
|
+
body = formatter.format(lexer.lex(source))
|
175
|
+
text = "<div class=ex_highlight>#{body}</div>"
|
176
|
+
text
|
177
|
+
end
|
178
|
+
|
179
|
+
def ruby
|
180
|
+
file = @_args.first
|
181
|
+
if file.nil?
|
182
|
+
code = " # Ruby code\n\n"
|
183
|
+
_body {|line| code << " " + line + "\n" }
|
184
|
+
else
|
185
|
+
code = "# Ruby code\n\n" + ::File.read(file)
|
186
|
+
end
|
187
|
+
|
188
|
+
html = format_ruby(code)
|
189
|
+
_out html
|
190
|
+
end
|
191
|
+
|
192
|
+
def elixir
|
193
|
+
file = @_args.first
|
194
|
+
if file.nil?
|
195
|
+
code = ""
|
196
|
+
_body {|line| code << " " + line + "\n" }
|
197
|
+
else
|
198
|
+
code = ::File.read(file)
|
199
|
+
end
|
200
|
+
|
201
|
+
html = format_elixir(code)
|
202
|
+
_out html
|
203
|
+
end
|
data/plugin/tutorial.rb
CHANGED
@@ -1,27 +1,30 @@
|
|
1
1
|
require 'cgi'
|
2
2
|
|
3
|
-
def title
|
3
|
+
def title(args = nil, body = nil)
|
4
4
|
h1
|
5
|
+
_optional_blank_line
|
5
6
|
end
|
6
7
|
|
7
|
-
def section
|
8
|
+
def section(args = nil, body = nil)
|
8
9
|
h3
|
10
|
+
_optional_blank_line
|
9
11
|
end
|
10
12
|
|
11
|
-
def code
|
13
|
+
def code(args = nil, body = nil)
|
12
14
|
first = true # dumb hack! fixes blank space
|
13
15
|
_body do |line|
|
14
16
|
tag, first = "<pre>", false if first
|
15
17
|
_out "#{tag} #{::CGI.escape_html(line)}" # indentation
|
16
18
|
end
|
17
19
|
_out "</pre>"
|
20
|
+
_optional_blank_line
|
18
21
|
end
|
19
22
|
|
20
23
|
def rx(str)
|
21
24
|
::Regexp.compile(::Regexp.escape(str))
|
22
25
|
end
|
23
26
|
|
24
|
-
def inout
|
27
|
+
def inout(args = nil, body = nil)
|
25
28
|
src, out = _args
|
26
29
|
t1 = ::File.readlines(src) rescue (abort "t1 = #{src}")
|
27
30
|
t2 = ::File.readlines(out) rescue (abort "t2 = #{out}")
|
@@ -45,6 +48,7 @@ def inout
|
|
45
48
|
</tr>
|
46
49
|
</table>
|
47
50
|
HTML
|
51
|
+
_optional_blank_line
|
48
52
|
end
|
49
53
|
|
50
54
|
def put_table(src, exp)
|
@@ -73,11 +77,12 @@ def put_table(src, exp)
|
|
73
77
|
HTML
|
74
78
|
end
|
75
79
|
|
76
|
-
def testcase
|
80
|
+
def testcase(args = nil, body = nil)
|
77
81
|
name = _args.first
|
78
82
|
_out "\n<font size=+1><b>Test: </font><font size=+2><tt>#{name}</tt></font></b></h3><br>"
|
79
83
|
src, exp = "test/data/#{name}/source.lt3", "test/data/#{name}/expected-output.txt"
|
80
84
|
@_args = [src, exp] # Better way to do this??
|
81
85
|
put_table(src, exp)
|
82
86
|
_out "<br>"
|
87
|
+
_optional_blank_line
|
83
88
|
end
|
data/test/all.rb
CHANGED
data/test/snapshots/OMIT.txt
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
# Comments are ignored.
|
2
2
|
# Other lines: name_of_snapshot and any comments here are ignored (no # needed)
|
3
|
-
# fake_test_name
|
4
|
-
error_no_such_inc
|
5
|
-
error_no_such_copy
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
error_invalid_name ^ Same behavior as error_no_such_inc
|
3
|
+
# fake_test_name Use # to un-omit ;)
|
4
|
+
error_no_such_inc Output BEFORE error doesn't get passed through
|
5
|
+
error_no_such_copy ^ Same behavior as error_no_such_inc
|
6
|
+
error_no_such_mixin ^ Same behavior as error_missing_end
|
7
|
+
error_invalid_name ^ Same behavior as error_no_such_inc
|
8
|
+
error_missing_end Output is duplicated somehow. Look for: puts @body or puts @main.body
|
9
|
+
error_inc_line_num Forgot what's wrong here
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Blank lines and comments are ignored.
|
2
|
+
# Other lines: name_of_snapshot and any comments here are ignored (no # needed)
|
3
|
+
|
4
|
+
# i to include, x to exclude
|
5
|
+
|
6
|
+
error_no_such_inc Output BEFORE error doesn't get passed through
|
7
|
+
error_no_such_copy ^ Same behavior as error_no_such_inc
|
8
|
+
error_no_such_mixin ^ Same behavior as error_missing_end
|
9
|
+
error_invalid_name ^ Same behavior as error_no_such_inc
|
10
|
+
error_missing_end Output is duplicated somehow. Look for: puts @body or puts @main.body
|
11
|
+
error_inc_line_num Forgot what's wrong here
|
12
|
+
|
13
|
+
basic_formatting
|
14
|
+
block_comment
|
15
|
+
comments_ignored_1
|
16
|
+
copy_is_raw
|
17
|
+
def_method
|
18
|
+
error_line_num
|
19
|
+
error_mismatched_end
|
20
|
+
error_name_not_permitted
|
21
|
+
example_alpha
|
22
|
+
example_alpha2
|
23
|
+
functions
|
24
|
+
hello_world
|
25
|
+
more_complex_vars
|
26
|
+
predef_vars
|
27
|
+
raw_lines
|
28
|
+
raw_text_block
|
29
|
+
simple_copy
|
30
|
+
simple_import
|
31
|
+
simple_include
|
32
|
+
simple_mixin
|
33
|
+
simple_vars
|
34
|
+
single_raw_line
|
35
|
+
table_with_heredocs
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:64:in `handle_dotcmd': Name 'foobar' is unknown (RuntimeError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:210:in `dot_include'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
8
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
9
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
10
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
11
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
12
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
13
|
+
from ../../../bin/livetext:57:in `loop'
|
14
|
+
from ../../../bin/livetext:57:in `<main>'
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /Name 'foobar' is unknown/
|
@@ -0,0 +1,14 @@
|
|
1
|
+
ACTUAL | EXPECTED
|
2
|
+
This is my This is my
|
3
|
+
source file source file
|
4
|
+
which includes file2 here: which includes file2 here:
|
5
|
+
This is file2 This is file2
|
6
|
+
which has an error which has an error
|
7
|
+
about an unknown command about an unknown command
|
8
|
+
in line 5 in line 5
|
9
|
+
> <p>
|
10
|
+
>
|
11
|
+
> And this is file2 line 7.
|
12
|
+
> And here we are
|
13
|
+
> back in the
|
14
|
+
> original file.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:83:in `check_disallowed': Error: name 'to_s' is invalid (DisallowedName)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:142:in `dot_def'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
8
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
9
|
+
from ../../../bin/livetext:57:in `loop'
|
10
|
+
from ../../../bin/livetext:57:in `<main>'
|
File without changes
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /name 'to_s' is invalid/
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /Name 'foobar' is unknown/
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /found .end with no opening command/
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/userapi.rb:89:in `_body': Expected .end, found end of file (RuntimeError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:48:in `comment'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
8
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
9
|
+
from ../../../bin/livetext:57:in `loop'
|
10
|
+
from ../../../bin/livetext:57:in `<main>'
|
File without changes
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /Expected .end, found end of file/
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:87:in `check_file_exists': Error: file 'nosuchfile.txt' not found (FileNotFound)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:248:in `copy'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
8
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
9
|
+
from ../../../bin/livetext:57:in `loop'
|
10
|
+
from ../../../bin/livetext:57:in `<main>'
|
File without changes
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /file nosuchfile.txt not found/
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:87:in `check_file_exists': Error: file 'nosuchinc.lt3' not found (FileNotFound)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:209:in `dot_include'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
8
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
9
|
+
from ../../../bin/livetext:57:in `loop'
|
10
|
+
from ../../../bin/livetext:57:in `<main>'
|
File without changes
|
@@ -1 +1 @@
|
|
1
|
-
1 /
|
1
|
+
1 /file nosuchinc.lt3 not found/
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:48:in `find_file': No such mixin 'nosuchthing' (RuntimeError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
8
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
9
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
10
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
11
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
12
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
13
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
14
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
15
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
16
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
17
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
18
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
19
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
20
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
21
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
22
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
23
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `block in find_file'
|
24
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `chdir'
|
25
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:49:in `find_file'
|
26
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:16:in `initialize'
|
27
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:20:in `new'
|
28
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/parser/mixin.rb:20:in `get_module'
|
29
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:230:in `mixin'
|
30
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:61:in `handle_dotcmd'
|
31
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
32
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
33
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
34
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
35
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
36
|
+
from ../../../bin/livetext:57:in `loop'
|
37
|
+
from ../../../bin/livetext:57:in `<main>'
|
File without changes
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:64:in `handle_dotcmd': Name 'hello_world' is unknown (RuntimeError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:39:in `process_line'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:27:in `block in process_file'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `loop'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:24:in `process_file'
|
6
|
+
from ../../../bin/livetext:88:in `block in <main>'
|
7
|
+
from ../../../bin/livetext:57:in `loop'
|
8
|
+
from ../../../bin/livetext:57:in `<main>'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
ACTUAL | EXPECTED
|
2
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:64:in ` <
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpe <
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpe <
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpe <
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/helpe <
|
7
|
+
from ../../../bin/livetext:88:in `block in <main>' <
|
8
|
+
from ../../../bin/livetext:57:in `loop' <
|
9
|
+
from ../../../bin/livetext:57:in `<main>' <
|
File without changes
|