summaryrefslogtreecommitdiff
path: root/spec/syntax_suggest/unit/capture_code_context_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/syntax_suggest/unit/capture_code_context_spec.rb')
-rw-r--r--spec/syntax_suggest/unit/capture_code_context_spec.rb59
1 files changed, 43 insertions, 16 deletions
diff --git a/spec/syntax_suggest/unit/capture_code_context_spec.rb b/spec/syntax_suggest/unit/capture_code_context_spec.rb
index e1bc281c13..d9379d0ce7 100644
--- a/spec/syntax_suggest/unit/capture_code_context_spec.rb
+++ b/spec/syntax_suggest/unit/capture_code_context_spec.rb
@@ -4,8 +4,34 @@ require_relative "../spec_helper"
module SyntaxSuggest
RSpec.describe CaptureCodeContext do
+ it "capture_before_after_kws two" do
+ source = <<~EOM
+ class OH
+
+ def hello
+
+ def hai
+ end
+ end
+ EOM
+
+ code_lines = CleanDocument.new(source: source).call.lines
+ block = CodeBlock.new(lines: code_lines[2])
+
+ display = CaptureCodeContext.new(
+ blocks: [block],
+ code_lines: code_lines
+ )
+ display.capture_before_after_kws(block)
+ expect(display.sorted_lines.join).to eq(<<~EOM.indent(2))
+ def hello
+ def hai
+ end
+ EOM
+ end
+
it "capture_before_after_kws" do
- source = <<~'EOM'
+ source = <<~EOM
def sit
end
@@ -16,14 +42,15 @@ module SyntaxSuggest
EOM
code_lines = CleanDocument.new(source: source).call.lines
- block = CodeBlock.new(lines: code_lines[0])
+ block = CodeBlock.new(lines: code_lines[3])
display = CaptureCodeContext.new(
blocks: [block],
code_lines: code_lines
)
- lines = display.call
- expect(lines.join).to eq(<<~'EOM')
+
+ lines = display.capture_before_after_kws(block).sort
+ expect(lines.join).to eq(<<~EOM)
def sit
end
def bark
@@ -33,7 +60,7 @@ module SyntaxSuggest
end
it "handles ambiguous end" do
- source = <<~'EOM'
+ source = <<~EOM
def call # 0
print "lol" # 1
end # one # 2
@@ -52,7 +79,7 @@ module SyntaxSuggest
lines = lines.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
def call # 0
end # one # 2
end # two # 3
@@ -67,7 +94,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
code_lines[0..75].each(&:mark_invisible)
- code_lines[77..-1].each(&:mark_invisible)
+ code_lines[77..].each(&:mark_invisible)
expect(code_lines.join.strip).to eq("class Lookups")
block = CodeBlock.new(lines: code_lines[76..149])
@@ -79,7 +106,7 @@ module SyntaxSuggest
lines = display.call
lines = lines.sort.map(&:original)
- expect(lines.join).to include(<<~'EOM'.indent(2))
+ expect(lines.join).to include(<<~EOM.indent(2))
class Lookups
def format_requires
end
@@ -87,7 +114,7 @@ module SyntaxSuggest
end
it "shows ends of captured block" do
- source = <<~'EOM'
+ source = <<~EOM
class Dog
def bark
puts "woof"
@@ -96,7 +123,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
block = CodeBlock.new(lines: code_lines)
- code_lines[1..-1].each(&:mark_invisible)
+ code_lines[1..].each(&:mark_invisible)
expect(block.to_s.strip).to eq("class Dog")
@@ -105,7 +132,7 @@ module SyntaxSuggest
code_lines: code_lines
)
lines = display.call.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
class Dog
def bark
end
@@ -113,7 +140,7 @@ module SyntaxSuggest
end
it "captures surrounding context on falling indent" do
- source = <<~'EOM'
+ source = <<~EOM
class Blerg
end
@@ -137,7 +164,7 @@ module SyntaxSuggest
code_lines: code_lines
)
lines = display.call.sort.map(&:original)
- expect(lines.join).to eq(<<~'EOM')
+ expect(lines.join).to eq(<<~EOM)
class OH
def hello
it "foo" do
@@ -147,7 +174,7 @@ module SyntaxSuggest
end
it "captures surrounding context on same indent" do
- source = <<~'EOM'
+ source = <<~EOM
class Blerg
end
class OH
@@ -173,7 +200,7 @@ module SyntaxSuggest
code_lines = CleanDocument.new(source: source).call.lines
block = CodeBlock.new(lines: code_lines[7..10])
- expect(block.to_s).to eq(<<~'EOM'.indent(2))
+ expect(block.to_s).to eq(<<~EOM.indent(2))
def lol
end
@@ -190,7 +217,7 @@ module SyntaxSuggest
lines: lines
).call
- expect(out).to eq(<<~'EOM'.indent(2))
+ expect(out).to eq(<<~EOM.indent(2))
3 class OH
8 def lol
9 end