Used for formatting invalid blocks
Attributes
Read
No documentation available
Class Methods
lib/syntax_suggest/display_invalid_blocks.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/syntax_suggest/display_invalid_blocks.rb, line 11
def initialize(code_lines:, blocks:, io: $stderr, filename: nil, terminal: DEFAULT_VALUE)
@io = io
@blocks = Array(blocks)
@filename = filename
@code_lines = code_lines
@terminal = (terminal == DEFAULT_VALUE) ? io.isatty : terminal
end
No documentation available
Instance Methods
#
lib/syntax_suggest/display_invalid_blocks.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/syntax_suggest/display_invalid_blocks.rb, line 24
def call
if document_ok?
return self
end
if filename
@io.puts("--> #{filename}")
@io.puts
end
@blocks.each do |block|
display_block(block)
end
self
end
No documentation available
lib/syntax_suggest/display_invalid_blocks.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/syntax_suggest/display_invalid_blocks.rb, line 70
def code_with_context
lines = CaptureCodeContext.new(
blocks: @blocks,
code_lines: @code_lines
).call
DisplayCodeWithLineNumbers.new(
lines: lines,
terminal: @terminal,
highlight_lines: @invalid_lines
).call
end
No documentation available
lib/syntax_suggest/display_invalid_blocks.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/syntax_suggest/display_invalid_blocks.rb, line 40
def display_block(block)
# Build explanation
explain = ExplainSyntax.new(
code_lines: block.lines
).call
# Enhance code output
# Also handles several ambiguious cases
lines = CaptureCodeContext.new(
blocks: block,
code_lines: @code_lines
).call
# Build code output
document = DisplayCodeWithLineNumbers.new(
lines: lines,
terminal: @terminal,
highlight_lines: block.lines
).call
# Output syntax error explanation
explain.errors.each do |e|
@io.puts e
end
@io.puts
# Output code
@io.puts(document)
end
No documentation available
lib/syntax_suggest/display_invalid_blocks.rb
View on GitHub
# File tmp/rubies/ruby-3.3.0/lib/syntax_suggest/display_invalid_blocks.rb, line 20
def document_ok?
@blocks.none? { |b| !b.hidden? }
end
No documentation available