class SyntaxSuggest::ExplainSyntax

根据语法错误的来源解释语法错误

示例

source = "def foo; puts 'lol'" # Note missing end
explain ExplainSyntax.new(
  code_lines: CodeLine.from_source(source)
).call
explain.errors.first
# => "Unmatched keyword, missing `end' ?"

当无法通过词法计数确定错误时,将针对输入运行解析器并返回原始错误。

示例

source = "1 * " # Note missing a second number
explain ExplainSyntax.new(
  code_lines: CodeLine.from_source(source)
).call
explain.errors.first
# => "syntax error, unexpected end-of-input"