diff options
Diffstat (limited to 'lib/syntax_suggest/explain_syntax.rb')
-rw-r--r-- | lib/syntax_suggest/explain_syntax.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/syntax_suggest/explain_syntax.rb b/lib/syntax_suggest/explain_syntax.rb index 142ed2e269..8de962c157 100644 --- a/lib/syntax_suggest/explain_syntax.rb +++ b/lib/syntax_suggest/explain_syntax.rb @@ -3,6 +3,16 @@ require_relative "left_right_lex_count" module SyntaxSuggest + class GetParseErrors + def self.errors(source) + if SyntaxSuggest.use_prism_parser? + Prism.parse(source).errors.map(&:message) + else + RipperErrors.new(source).call.errors + end + end + end + # Explains syntax errors based on their source # # example: @@ -94,7 +104,7 @@ module SyntaxSuggest # on the original ripper error messages def errors if missing.empty? - return RipperErrors.new(@code_lines.map(&:original).join).call.errors + return GetParseErrors.errors(@code_lines.map(&:original).join) end missing.map { |miss| why(miss) } |