class SyntaxSuggest::Capture::FallingIndentLines
Zeigt den Kontext um Code an, der durch „fallende“ Einrückung bereitgestellt wird
Wenn dies die ursprünglichen Codezeilen sind
class OH
def hello
it "foo" do
end
end
Und dies ist die erfasste Zeile
it "foo" do
Sie wird ihren umgebenden Kontext liefern
class OH def hello end end
Beispiel
FallingIndentLines.new( block: block, code_lines: @code_lines ).call do |line| @lines_to_output << line end
Öffentliche Klassenmethoden
Source
# File lib/syntax_suggest/capture/falling_indent_lines.rb, line 36 def initialize(code_lines:, block:) @lines = nil @scanner = ScanHistory.new(code_lines: code_lines, block: block) @original_indent = block.current_indent end
Öffentliche Instanzmethoden
Source
# File lib/syntax_suggest/capture/falling_indent_lines.rb, line 42 def call(&yieldable) last_indent_up = @original_indent last_indent_down = @original_indent @scanner.commit_if_changed @scanner.scan( up: ->(line, _, _) { next true if line.empty? if line.indent < last_indent_up yieldable.call(line) last_indent_up = line.indent end true }, down: ->(line, _, _) { next true if line.empty? if line.indent < last_indent_down yieldable.call(line) last_indent_down = line.indent end true } ) @scanner.stash_changes end