dead_end 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +1 -1
- data/lib/dead_end/around_block_scan.rb +5 -8
- data/lib/dead_end/capture_code_context.rb +123 -16
- data/lib/dead_end/clean_document.rb +313 -0
- data/lib/dead_end/code_frontier.rb +24 -13
- data/lib/dead_end/code_line.rb +159 -76
- data/lib/dead_end/code_search.rb +18 -32
- data/lib/dead_end/display_code_with_line_numbers.rb +0 -1
- data/lib/dead_end/display_invalid_blocks.rb +4 -2
- data/lib/dead_end/fyi.rb +2 -0
- data/lib/dead_end/internals.rb +9 -13
- data/lib/dead_end/lex_all.rb +10 -26
- data/lib/dead_end/lex_value.rb +62 -0
- data/lib/dead_end/parse_blocks_from_indent_line.rb +1 -1
- data/lib/dead_end/version.rb +1 -1
- data/lib/dead_end/who_dis_syntax_error.rb +1 -1
- metadata +4 -4
- data/lib/dead_end/heredoc_block_parse.rb +0 -34
- data/lib/dead_end/trailing_slash_join.rb +0 -53
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module DeadEnd
|
4
|
-
# Handles code that contains trailing slashes
|
5
|
-
# by turning multiple lines with trailing slash(es) into
|
6
|
-
# a single code line
|
7
|
-
#
|
8
|
-
# expect(code_lines.join).to eq(<<~EOM)
|
9
|
-
# it "trailing \
|
10
|
-
# "slash" do
|
11
|
-
# end
|
12
|
-
# EOM
|
13
|
-
#
|
14
|
-
# lines = TrailngSlashJoin(code_lines: code_lines).call
|
15
|
-
# expect(lines.first.to_s).to eq(<<~EOM)
|
16
|
-
# it "trailing \
|
17
|
-
# "slash" do
|
18
|
-
# EOM
|
19
|
-
#
|
20
|
-
class TrailingSlashJoin
|
21
|
-
def initialize(code_lines:)
|
22
|
-
@code_lines = code_lines
|
23
|
-
@code_lines_dup = code_lines.dup
|
24
|
-
end
|
25
|
-
|
26
|
-
def call
|
27
|
-
@trailing_lines = []
|
28
|
-
@code_lines.select(&:trailing_slash?).each do |trailing|
|
29
|
-
stop_next = false
|
30
|
-
lines = @code_lines[trailing.index..].take_while do |line|
|
31
|
-
next false if stop_next
|
32
|
-
|
33
|
-
if !line.trailing_slash?
|
34
|
-
stop_next = true
|
35
|
-
end
|
36
|
-
|
37
|
-
true
|
38
|
-
end
|
39
|
-
|
40
|
-
joined_line = CodeLine.new(line: lines.map(&:original_line).join, index: trailing.index)
|
41
|
-
|
42
|
-
@code_lines_dup[trailing.index] = joined_line
|
43
|
-
|
44
|
-
@trailing_lines << joined_line
|
45
|
-
|
46
|
-
lines.shift # Don't hide first trailing slash line
|
47
|
-
lines.each(&:mark_invisible)
|
48
|
-
end
|
49
|
-
|
50
|
-
@code_lines_dup
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|